การวัดความเร็วในการพัฒนา


10

ฉันเคยเห็นการทดสอบจำนวนมากที่วัดความเร็วการประมวลผลของภาษาการเขียนโปรแกรม แต่ฉันไม่เคยพบการทดสอบที่วัดความเร็วในการพัฒนา

ฉันได้ยินมาว่าความเร็วในการพัฒนาเพิ่มขึ้นเมื่อทำงานกับภาษาแบบไดนามิก แต่มีข้อพิสูจน์อะไรบ้าง? ฉันไม่ได้พยายามที่จะพูดภาษาไดนามิกไม่ได้มีประสิทธิภาพ แต่ฉันอยากจะเห็นผลของการศึกษาทางวิทยาศาสตร์ถ้าสิ่งนั้นมีอยู่

ยิ่งไปกว่านั้นจะเป็นข้อมูลเกี่ยวกับสิ่งอำนวยความสะดวกการบำรุงรักษา การดีบักภาษาง่ายกว่าภาษาอื่นหรือไม่?

แก้ไข: ฉันส่วนใหญ่สนใจในความแตกต่างระหว่างสองภาษาที่ใกล้เคียงกับไวยากรณ์ ตัวอย่างเช่นฉันเดาว่าการเขียนโปรแกรมใน C มักจะช้ากว่าการเขียนโปรแกรมใน Java แต่การเขียนโปรแกรมใน Java เร็วกว่าการเขียนโปรแกรมใน C # หรือไม่


ดูprogrammers.stackexchange.com/questions/10032 (แต่โปรดทราบว่าฉันไม่ได้อ้างว่าซ้ำกัน)
Frank Shearar

นี่เป็นเรื่องที่น่าสนใจจริงๆขอบคุณ! ลิงก์บางอันเป็นสิ่งที่ฉันต้องการจริงๆ
DistantEcho

ดูที่หัวข้อนี้: stackoverflow.com/questions/1894453/…
ChristopheD

คำตอบ:


6

ภาษาการเขียนโปรแกรมสร้างความแตกต่างอย่างแน่นอน อย่างไรก็ตามฉันคิดว่าความแตกต่างนั้นสำคัญกว่าความคุ้นเคยของโปรแกรมเมอร์กับแต่ละภาษามากกว่าแง่มุมใด ๆ ของภาษาโดยเฉพาะอย่างยิ่งเนื่องจากข้อ จำกัด ของภาษาที่มีไวยากรณ์คล้ายกัน


2

สำหรับฉันมันคล้ายกับชนิดของแปรงทาสีที่ช่วยให้คุณวาดได้เร็วขึ้น

หากคุณพิจารณาสิ่งที่คุณวาดสีของสินค้าแล้วแปรงที่ใหญ่กว่าที่คุณจะวาดเร็ว

หากคุณเห็นรหัสที่ดีว่าเป็นรูปแบบศิลปะแสดงว่ามันมีขนาดแปรงที่น้อยลงและสิ่งที่คุณทำกับแปรงของคุณ

ขออภัยนี่ไม่ใช่คำตอบสำหรับคำถามจริง


ที่จริงฉันสนใจมากขึ้นในความแตกต่างระหว่างแปรงขนาดใหญ่สองอัน ตัวอย่างเช่นเราจะทราบได้อย่างไรว่า Python จะมีความเร็วในการพัฒนาที่ดีกว่า Lua - หรือตรงกันข้าม
DistantEcho

1
@ นิภาคุณไม่รู้ มีสิ่งที่ไม่สามารถเปรียบเทียบได้มากมายในการเปรียบเทียบเพื่อให้มันเป็นตัวชี้วัดที่ถูกต้องสำหรับมัน
Adam Crossland

คำตอบที่ดี แต่ถ้าคุณไม่สนใจทักษะของจิตรกร
สตีเวนเอ. โลว์

1

ฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้อง แต่น่าสนใจ

ในเดือนแห่งตำนานมนุษย์ Fred Brooks กล่าวถึงการศึกษาเปรียบเทียบการประกอบและภาษาระดับสูงกว่า พวกเขาพบว่าโปรแกรมเมอร์เขียนคำสั่งในปริมาณเท่ากันทั้งสองปี แต่คำแนะนำสำหรับภาษาระดับสูงนั้นเท่ากับคำสั่งภาษาแอสเซมบลีหลายตัว ดังนั้นเมื่อเปลี่ยนไปใช้ภาษาระดับสูงโปรแกรมเมอร์จึงสามารถเพิ่มการเรียนการสอนได้หลากหลายตามการสอนภาษาในการเพิ่มผลผลิต

สิ่งเดียวกันควรเป็นจริงของ C vs Java / C # ฉันไม่ทราบความแตกต่างที่แท้จริงระหว่าง C # และ Java แต่ทุกครั้งที่คุณเพิ่มระดับของนามธรรมคุณจะเพิ่มผลผลิต อย่างไรก็ตามฉันคิดว่ามันจะลดการควบคุมสิ่งที่เครื่องกำลังทำอยู่ คุณต้องเชื่อมั่นว่าภาษากำลังทำสิ่งที่คุณต้องการ ตัวอย่างเช่นในซอฟต์แวร์ที่มีประสิทธิภาพสูงการรวบรวมขยะไม่สามารถยอมรับได้ยกเว้นหากคุณมีการควบคุมอย่างสมบูรณ์เมื่อเรียกใช้และระยะเวลาที่เรียกใช้


มันจะน่าสนใจถ้ามีการศึกษาในวันนี้ที่จะทำอีกครั้งเมื่อเปรียบเทียบภาษาระดับสูงเช่น node.js และ python
SomeGuyOnAComputer

1

ผลผลิตคืออะไร ผลิตภัณฑ์คืออะไร ไม่มีใครรู้ว่าพูดทางคณิตศาสตร์

KLoC?

ความซับซ้อนของวัฏจักร

คะแนนฟังก์ชั่น?

ฉันเชื่อว่าคุณจะต้องดูที่ระดับธุรกิจและดำเนินการเปรียบเทียบเปอร์เซ็นไทล์กับโปรแกรมเมอร์คนอื่น ๆ ที่ทำงานคล้าย ๆ กัน สิ่งเหล่านี้เป็นจุดที่ซับซ้อนและละเอียดอ่อนมากเพื่อให้สามารถวัดและรักษาความหมายทางสถิติได้


0

ลองนึกภาพว่าจะมีการทดสอบอย่างไร: คุณต้องมีโครงการในโลกแห่งความเป็นจริงที่พัฒนาขึ้นอย่างอิสระทั้งสองอย่างซ้ำ ๆ กันด้วยภาษาเดียวกัน (เพื่อลดความแปรปรวนของประสบการณ์โปรแกรมเมอร์และความรู้) และภาษาอื่น (เพื่อรับข้อมูลเพื่อเปรียบเทียบภาษา) ดูเหมือนว่าสำหรับฉันแล้วการทดสอบจะเติบโตอย่างรวดเร็วจนมีขนาดที่ไม่สามารถจัดการได้

ฉันชอบที่จะได้ยินเกี่ยวกับวิธีการ "ลดขนาด" การทดสอบหรือเกี่ยวกับความพยายามที่จะทำการทดสอบจริงตามที่ระบุไว้


ประสบการณ์เป็นปัญหาแน่นอนดังนั้นฉันจะทำงานกับผู้เริ่มต้นหรือดีกว่านั้นบางคนมีความรู้ในภาษาการเขียนโปรแกรมที่แตกต่างอย่างสิ้นเชิง สำหรับขนาดโครงการฉันคิดว่าโครงการขนาดเล็กมากจะเพียงพอที่จะได้รับผลลัพธ์แม้ว่าจะไม่สมบูรณ์แบบ
DistantEcho

บางครั้งเรื่องราวก็เกิดขึ้น "ชนะ" ของภาษาจะเกิดขึ้นเมื่อผ่านขนาด / ความซับซ้อนที่แน่นอน สำหรับปัญหาที่เล็กลง / ง่ายกว่านั้นความน่าอัศจรรย์ของภาษานั้นไม่ปรากฏชัดเจน ดังนั้นจึงกล่าวว่า
Frank Shearar

ฉันคาดหวังว่า "การชนะ" บางอย่างจะผ่านความซับซ้อนและประสบการณ์ระดับหนึ่งของโปรแกรมเมอร์เท่านั้น การวัดด้วยผู้เริ่มต้นเพิ่งพลาดจุดมากที่สุด การใช้ภาษาอย่างดีต้องมีประสบการณ์เฉพาะด้านภาษา
kasterma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.