Czy są jakieś badania empiryczne dotyczące wpływu różnych języków na jakość oprogramowania?

19

Zwolennicy funkcjonalnych języków programowania twierdzą, że programowanie funkcjonalne ułatwia rozumowanie kodu. Zwolennicy języków typowanych statycznie twierdzą, że ich kompilatory wychwytują wystarczającą liczbę błędów, aby zrekompensować dodatkową złożoność systemów typów. Ale wszystko, co czytam na te tematy, opiera się na racjonalnych argumentach, a nie na danych empirycznych.

Czy są jakieś badania empiryczne dotyczące wpływu różnych kategorii języków programowania na wskaźniki defektów lub inne wskaźniki jakości?

(Odpowiedzi na to pytanie wydają się wskazywać, że nie ma takich badań, przynajmniej nie dla debaty dynamicznej vs. statycznej)

Jgre
źródło
6
Jak zapewne można sobie wyobrazić, istnieje absurdalna liczba mylących czynników. Istnieją „badania empiryczne”, ale są one niczym więcej niż dobrze udokumentowanymi anegdotami i powinny mieć taką samą wagę, jak to uzasadnia.
CA McCann,
1
możliwy duplikat badań języków dynamicznych vs. statycznie typowanych
Steven A. Lowe
@Steven: Wydaje się, że pytanie obejmuje szerszy zakres (być może zbyt szeroki).
Robert Harvey
Gdybyś znalazł takie badanie, co byś z nim zrobił?
JeffO
@Robert istnieją badania COCOMO zgodne z tymi wytycznymi, ale są one bez znaczenia - chyba że przestudiowałeś własny zespół i jest to prawie niemożliwe do obiektywnego wykonania
Steven A. Lowe

Odpowiedzi:

3

Istnieją pewne badania w środowisku akademickim na ten temat. Oto kilka przykładów, o których wiem, ale wnioski należy traktować ostrożnie:

  • Eksperyment na temat układów typu statycznego i dynamicznego: wątpliwości co do pozytywnego wpływu układów typu statycznego na czas opracowywania, Stefan Hanenberg. W Proc OOPSLA, 2010. Łącze ACM

  • Empiryczne badanie pisania statycznego u Ruby, M. Daly, V. Sazawal, J. Foster. W Proc PLATEAU, 2010. PDF

  • Kontrolowany eksperyment oceniający zalety procedury sprawdzania argumentów, Lutz Prechelt i Walter F. Tichy. IEEE TSE, 1998. Link IEEE

Jestem pewien, że są inne dokumenty. Ogólnie rzecz biorąc, z oczywistych powodów obszar ten jest niezwykle kontrowersyjny - naprawdę trudno jest dokonać obiektywnej oceny !!

redjamjar
źródło
1

Jednym ze znanych badań jest Lutz Prechelt. Empiryczne porównanie siedmiu języków programowania. Komputer IEEE [33 (10): 23–29], październik 2000 r

Prechelt omawia niezawodność programu, a także analizuje czas wykonania i zużycie pamięci.

Lorin Hochstein
źródło
0

Chociaż nie jest to związane z jakością kodu jako takiego, w tym badaniu analizuje się, w jaki sposób nowicjusze uczą się, używając różnych języków. W szczególności porównują, jak radzą sobie nowicjusze, ucząc się języka Perl vs. Kworum, języka nauczania, który autorzy chcieliby porównać. W tym artykule naprawdę fajne jest to, że faktycznie wymyślili język kontrolny, w którym składnia jest generowana losowo, jako rodzaj języka „placebo”. Takie podejście może być naprawdę interesujące, jeśli zastosuje się je do języków i jakości kodu i pomoże kontrolować niektóre z tych trudnych, zakłócających czynników podczas porównywania języków.

joshin4colours
źródło