Czy istnieją dowody na to, że używanie dynamicznych języków ma wpływ na wydajność?

25

Zastanawiam się, czy są jakieś eksperymenty, które pokazują istnienie lub brak korelacji między użyciem dynamicznego języka (takiego jak Python, Ruby, a nawet języków, które działają na platformie Java, takiej jak Groovy, Clojure) w język statyczny (taki jak C / C ++) i różnica w wydajności.

Ken Li
źródło
3
Empiryczne porównanie C, C ++, Java, Perl, Python, Rexx i Tcl dla programu do wyszukiwania / przetwarzania ciągów znaków to dobry i klasyczny artykuł obejmujący wiele aspektów związanych z oprogramowaniem (w tym produktywnością) w praktyczny sposób.
uzależniony
6
Jak działa Java?
svick
5
Mam problem z postrzeganiem tego pytania jako ontopicznego, ale gdy chodzi o eksperymenty, powinno być dobrze. Zachowaj odpowiedzi odpowiednio rygorystyczne.
Raphael
1
Wcześniej zadałem dokładnie to pytanie programistom: programmers.stackexchange.com/questions/10032/... , mam nadzieję, że otrzymacie lepsze odpowiedzi niż ja.
Winston Ewert,
3
Jest to pytanie, nad którym naukowcy powinni rzeczywiście pracować. Uważam, że dotyczy to tematu.
Dave Clarke

Odpowiedzi:

11

Chociaż nie jestem świadomy badań nad produktywnością, były badania nad zrozumieniem. Philip Wadler zbiera linki do artykułów na ten temat: zobacz ten post i ten .

Suresh
źródło
3
Na pierwszy rzut oka wydaje się, że wszystkie dotyczą funkcjonalnego vs imperatywnego, a nie statycznego vs. dynamicznego.
sepp2k
Oprócz komentarza seepp2k, wykorzystanie tych badań przez Wadlera jest dokładnie niebezpieczeństwem nauki empirycznej: wadliwe uogólnienia!
Uday Reddy
8

W szczególności na produktywność, Hanenberg zbadał wpływ czasu programowania, kiedy to samo zadanie zostało zaimplementowane w Javie (statyczne) i Groovy (dynamiczne). Ich wyniki zostały opisane w następującym artykule:

Układy typu statycznego vs. dynamicznego: badanie empiryczne dotyczące związku między rzutami typów a czasem opracowania , 2011.

Przeprowadzono również badania nad wpływem pisania statycznego / dynamicznego na konserwację oprogramowania. To jest najnowszy artykuł na ten temat:

Badanie empiryczne dotyczące wpływu pisania statycznego na łatwość konserwacji oprogramowania , 2014

Autorzy opublikowali również poprzednie prace na ten sam obszar, w tym ten (wymieniony również w jednym z linków wspomnianych przez Suresha):

Czy systemy typu statycznego poprawiają łatwość utrzymania systemów oprogramowania? An Empirical Study , 2012 (PDF dostępny)

Ponadto, jeśli zamierzasz kontynuować ten temat badawczy, pamiętaj, że jednym z kluczowych problemów jest definicja wydajności - i jak dokładnie zamierzasz ją zmierzyć.

rla4
źródło