Geliştirme hızının bir ölçüsü


10

Programlama dillerinin yürütme hızını ölçen birçok test gördüm, ancak geliştirme hızını ölçen testler bulamadım.

Dinamik dillerle çalışırken geliştirme hızının arttığını duydum, ancak bunun bir kanıtı var mı? Dinamik dillerin etkili olmadığını söylemeye çalışmıyorum, ancak böyle bir şey varsa bilimsel bir çalışmanın sonuçlarını görmek isterim.

Daha da iyisi bakım tesisi hakkında bilgi olacaktır. Bazı diller hata ayıklamak diğerlerinden daha mı kolay?

EDIT: Ben çoğunlukla sözdizimine yakın iki dil arasındaki farklarla ilgileniyorum. Örneğin, C dilinde programlama genellikle Java'da programlamadan daha yavaş olacaktır; Java programlama C # programlama daha hızlı?


Bkz. Programmers.stackexchange.com/questions/10032 (ancak bunun bir kopya olduğunu iddia etmiyorum).
Frank Shearar

Bu gerçekten ilginç, teşekkürler! Bağlantılardan bazıları aslında tam olarak aradığım şeydi.
DistantEcho

Yanıtlar:


6

Kesinlikle programlama dili bir fark yaratır. Ancak, farkın, özellikle benzer sözdizimine sahip diller kısıtlamanız göz önüne alındığında, programcının her bir dile ne kadar aşina olduğu konusunda dilin herhangi bir özelliğinden çok daha fazla olduğunu düşünüyorum.


2

Benim için bu, hangi tür boya fırçasının daha hızlı boyamanıza izin verdiğine benzer.

Bir ürünü ne boyadığınızı düşünüyorsanız, fırça ne kadar büyük olursa o kadar hızlı boyayacaktır.

İyi kodu bir sanat formu olarak görürseniz, o zaman fırça boyutuna daha az ve fırçalarınızla tam olarak ne yaptığınıza daha fazla dayanır.

Maalesef, bu asıl sorunun cevabı değil.


Aslında, iki büyük fırça arasındaki farkla daha çok ilgileniyorum. Örneğin, Python'un Lua'dan daha iyi bir geliştirme hızına sahip olup olmayacağını nereden bileceğiz?
DistantEcho

1
@Niphra, bilmiyorsun. Böyle bir karşılaştırmada, bunun için geçerli bir metrik olması için çok fazla taşınmaz var.
Adam Crossland

iyi cevap, ama sadece ressamın becerisini görmezden gelirseniz
Steven A. Lowe

1

Bunun alakalı olduğundan emin değilim, ama ilginç

Efsanevi Adam Ayında Fred Brooks, meclis ve üst düzey dilleri karşılaştıran çalışmalardan bahseder. Programcıların her ikisinde de aynı miktarda talimat ürettiğini, ancak üst düzey bir dilin talimatlarının çoklu montaj dili talimatlarına eşit olduğunu buldular. Böylece, yüksek seviyeli dile geçerek programcılar, montaj talimatının üretkenlikteki dil öğretimine ortalama katları ne olursa olsun bir artış elde ettiler.

Aynı şey C / Java / C # için de geçerli olmalı, C # ve Java arasındaki gerçek farkı bilmiyorum. Ancak soyutlama düzeyini her artırdığınızda, verimliliği artıracaksınız. Bununla birlikte, makinenin gerçekte ne yaptığının kontrolünü de azaltacağını düşünüyorum. Dilin istediğinizi yaptığına güvenmelisiniz. Örneğin, yüksek performanslı yazılımlarda, ne zaman çalıştırılacağı ve ne kadar süreyle çalışacağı konusunda tam bir kontrole sahip olmanız haricinde çöp toplama kabul edilemez.


Bugün node.js ve python gibi üst düzey dilleri karşılaştırırken bunu tekrar yapacak herhangi bir çalışma olması ilginç olurdu.
SomeGuyOnAComputer

1

Verimlilik nedir? Ürün nedir , hatta? Matematiksel olarak kimse bilmiyor.

Kloc?

Cyclomatic karmaşıklık?

Fonksiyon noktaları?

İş seviyesine bakmanız ve benzer işler yapan diğer programcılarla yüzdelik karşılaştırmalar yapmanız ve ardından programcı başına sunulan özellikleri ölçmeniz gerektiğine inanıyorum. Bunlar istatistiksel olarak anlam ölçmek ve korumak için çok sofistike ve ince noktalar.


0

Bunun nasıl test edileceğini hayal edin: hem gerçek hem de aynı dille (programcı deneyim ve bilgisinin değişkenliğini ortadan kaldırmak için) ve farklı dillerle (dilleri karşılaştırmak için bazı veriler almak için) bağımsız olarak bazı gerçek dünya projelerinin geliştirilmesine ihtiyacınız vardır. Bana öyle geliyor ki deney çabucak yönetilemez bir boyuta ulaşıyor.

Deneyi "küçültmenin" yollarını veya belirtildiği gibi deneyi gerçekten gerçekleştirme girişimlerini duymak isterim.


Deneyim gerçekten bir sorun, bu yüzden tamamen yeni bir programlama dilinde bilgili bir acemi veya daha iyisi ile çalışacağım. Proje boyutuna gelince, mükemmel olmasalar bile sonuç almak için çok küçük bir proje yeterli olacaktır.
DistantEcho

Bazen hikaye devam eder, bir dilin "kazanması" sadece belirli bir boyut / karmaşıklığın ötesine geçer. Bundan daha küçük / daha basit problemler için, o dilin şaşırtıcılığı belirgin değildir. Diyor ki.
Frank Shearar

Belli bir "galibiyet" in sadece programcının belirli bir karmaşıklığını ve deneyim seviyesini geçmesini beklerdim. Sadece yeni başlayanlarla ölçüm yapmak çoğunlukla noktayı kaçırıyor. Gerçekten bir dili iyi kullanmak dile özgü bir deneyim gerektirir.
kasterma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.