Ukuran kecepatan pengembangan

10

Saya telah melihat banyak tes yang mengukur kecepatan eksekusi bahasa pemrograman, tetapi saya tidak pernah menemukan tes yang mengukur kecepatan pengembangan.

Saya pernah mendengar kecepatan pengembangan meningkat ketika bekerja dengan bahasa yang dinamis, tetapi apakah ada buktinya? Saya tidak mencoba mengatakan bahasa dinamis tidak efisien, tetapi saya ingin melihat hasil studi ilmiah, jika hal seperti itu ada.

Yang lebih baik adalah informasi tentang fasilitas pemeliharaan. Apakah beberapa bahasa lebih mudah di-debug daripada yang lain?

EDIT: Saya sebagian besar tertarik pada perbedaan antara dua bahasa yang dekat dalam sintaksis. Sebagai contoh, saya kira pemrograman dalam C biasanya akan lebih lambat daripada pemrograman di Jawa; tetapi pemrograman di Java lebih cepat dari pemrograman di C #?

DistantEcho
sumber
Lihat programmers.stackexchange.com/questions/10032 (tetapi perhatikan bahwa saya tidak mengklaim ini adalah duplikat).
Frank Shearar
Ini sangat menarik, terima kasih! Beberapa tautan sebenarnya persis seperti yang saya cari.
DistantEcho
Lihatlah utas ini: stackoverflow.com/questions/1894453/…
ChristopheD

Jawaban:

6

Tentu saja bahasa pemrograman membuat perbedaan. Namun, saya pikir perbedaannya jauh lebih tentang seberapa akrab programmer dengan setiap bahasa daripada aspek tertentu dari bahasa tersebut, terutama mengingat kendala bahasa Anda dengan sintaksis yang sama.

JohnFx
sumber
2

Bagi saya ini adalah analog dengan jenis kuas cat yang memungkinkan Anda melukis lebih cepat.

Jika Anda mempertimbangkan apa yang Anda cat komoditas, maka semakin besar kuas semakin cepat Anda akan melukis.

Jika Anda melihat kode yang baik sebagai bentuk seni, maka itu kurang berbatasan dengan ukuran kuas, dan lebih tepatnya apa yang Anda lakukan dengan kuas.

Maaf, ini bukan jawaban untuk pertanyaan sebenarnya.

DanSingerman
sumber
Sebenarnya, saya lebih tertarik pada perbedaan antara dua kuas besar. Misalnya, bagaimana kita tahu apakah Python akan memiliki kecepatan pengembangan yang lebih baik daripada Lua - atau sebaliknya?
DistantEcho
1
@Niphra, kamu tidak tahu. Ada terlalu banyak hal yang tidak dapat dibedakan dalam perbandingan sedemikian hingga menjadikannya sebagai metrik yang valid untuk itu.
Adam Crossland
jawaban yang bagus, tetapi hanya jika Anda mengabaikan keterampilan pelukis
Steven A. Lowe
1

Saya tidak yakin ini relevan, tetapi menarik

Dalam The Mythical Man Month, Fred Brooks menyebutkan studi yang membandingkan bahasa assembly dan bahasa tingkat tinggi. Mereka menemukan bahwa programmer menghasilkan jumlah instruksi yang sama per tahun di keduanya, tetapi instruksi untuk bahasa tingkat tinggi sama dengan beberapa instruksi bahasa assembly. Jadi dengan beralih ke bahasa tingkat tinggi, programmer mencapai peningkatan berapa pun kelipatan rata-rata instruksi perakitan ke pengajaran bahasa dalam produktivitas.

Hal yang sama berlaku untuk C vs Java / C #, saya tidak tahu perbedaan nyata antara C # dan Java. Tetapi setiap kali Anda meningkatkan level abstraksi, Anda akan meningkatkan produktivitas. Namun saya juga berpikir bahwa itu akan mengurangi kontrol atas apa yang sebenarnya dilakukan mesin. Anda harus percaya bahwa bahasa tersebut melakukan apa yang Anda inginkan. Misalnya dalam perangkat lunak kinerja tinggi, pengumpulan sampah tidak dapat diterima, kecuali jika Anda memiliki kontrol penuh atas kapan dijalankan, dan berapa lama itu berjalan.

Dominique McDonnell
sumber
Akan menarik jika ada penelitian hari ini yang akan melakukan ini lagi ketika membandingkan bahasa tingkat tinggi seperti node.js dan python.
SomeGuyOnAComputer
1

Apa itu produktivitas? Apa itu produk , bahkan? Tidak ada yang tahu, secara matematis.

KLoC?

Kompleksitas siklus?

Poin fungsi?

Saya percaya bahwa Anda harus melihat tingkat bisnis dan menjalankan perbandingan persentil dengan programmer lain yang melakukan pekerjaan serupa, lalu mengukur fitur yang diberikan per programmer. Itu adalah hal-hal yang sangat canggih dan halus untuk dapat secara statistik mengukur dan mempertahankan makna.

Paul Nathan
sumber
0

Bayangkan bagaimana ini akan diuji: Anda perlu memiliki beberapa proyek dunia nyata yang dikembangkan secara independen baik berulang kali dengan bahasa yang sama (untuk menghilangkan variabilitas pengalaman dan pengetahuan programmer) dan dengan bahasa yang berbeda (untuk mendapatkan beberapa data untuk membandingkan bahasa). Menurut saya, eksperimen itu dengan cepat berkembang ke ukuran yang tidak terkendali.

Saya ingin mendengar tentang cara "mengecilkan" percobaan, atau tentang upaya untuk benar-benar melakukan percobaan sebagaimana dinyatakan.

kasterma
sumber
Pengalaman memang masalah, jadi saya akan bekerja dengan seorang pemula, atau bahkan lebih baik, seseorang yang berpengetahuan dalam bahasa pemrograman yang sama sekali berbeda. Adapun ukuran proyek, saya kira proyek yang sangat kecil akan cukup untuk mendapatkan hasil, bahkan jika mereka tidak sempurna.
DistantEcho
Kadang-kadang meskipun, ceritanya, "kemenangan" bahasa hanya terjadi melewati ukuran / kompleksitas tertentu. Untuk masalah yang lebih kecil / sederhana dari itu, kehebatan bahasa itu tidak terbukti. Begitulah katanya.
Frank Shearar
Saya berharap bahwa "kemenangan" tertentu hanya melewati tingkat kompleksitas dan pengalaman tertentu dari programmer. Mengukur hanya dengan pemula sebagian besar melewatkan poin. Benar-benar menggunakan bahasa dengan baik membutuhkan pengalaman khusus bahasa.
kasterma