Esistono studi empirici sull'effetto di lingue diverse sulla qualità del software?


19

I fautori dei linguaggi di programmazione funzionale affermano che la programmazione funzionale rende più facile ragionare sul codice. Coloro che sono a favore di linguaggi tipicamente statici affermano che i loro compilatori rilevano errori sufficienti per compensare l'ulteriore complessità dei sistemi di tipi. Ma tutto ciò che leggo su questi argomenti si basa su argomenti razionali, non su dati empirici.

Esistono studi empirici sugli effetti che le diverse categorie di linguaggi di programmazione hanno sui tassi di difetto o su altri parametri di qualità?

(Le risposte a questa domanda sembrano indicare che non esistono tali studi, almeno non per il dibattito dinamico vs. statico)


6
Come probabilmente puoi immaginare, ci sono un numero ridicolo di fattori confondenti coinvolti. Ci sono "studi empirici" là fuori, ma sono poco più che aneddoti ben documentati e dovrebbero essere dati su tutto il peso che merita.
CA McCann,


@Steven: questa domanda sembra avere una portata più ampia (forse troppo ampia).
Robert Harvey

Se trovassi uno studio del genere, cosa ne faresti?
JeffO

@Robert ci sono studi COCOMO su questa linea, ma sono insignificanti - a meno che tu non abbia studiato la tua squadra, ed è quasi impossibile fare obiettivamente
Steven A. Lowe

Risposte:


3

C'è qualche ricerca in ambito accademico su questo argomento. Ecco alcuni esempi che conosco, anche se dovresti trattare le conclusioni con cautela:

  • Un esperimento su sistemi di tipo statico e dinamico: dubbi sull'impatto positivo dei sistemi di tipo statico sui tempi di sviluppo, Stefan Hanenberg. In Proc OOPSLA, 2010. ACM Link

  • Uno studio empirico della tipizzazione statica in Ruby, M. Daly, V. Sazawal, J. Foster. In Proc PLATEAU, 2010. PDF

  • Un esperimento controllato per valutare i vantaggi della procedura Argomento Type Checking, Lutz Prechelt e Walter F. Tichy. IEEE TSE, 1998. Collegamento IEEE

Sono sicuro che ci sono altri documenti. In generale, tuttavia, quest'area è estremamente controversa per ovvie ragioni --- è davvero difficile fare una valutazione obiettiva !!


1

Uno studio famoso è Lutz Prechelt. Un confronto empirico di sette linguaggi di programmazione. IEEE Computer [33 (10): 23-29], ottobre 2000

Prechelt discute dell'affidabilità del programma ed esamina anche i tempi di esecuzione e il consumo di memoria.


0

Sebbene non sia correlato alla qualità del codice in quanto tale, questo studio esamina come i principianti imparano usando lingue diverse. In particolare, confrontano il modo in cui i novizi pagano quando imparano Perl vs Quorum, una lingua di insegnamento che gli autori desiderano confrontare. La cosa davvero interessante di questo articolo è che in realtà escogitano un linguaggio di controllo in cui la sintassi viene generata casualmente, come una sorta di linguaggio "placebo". Questo approccio potrebbe essere davvero interessante se applicato alle lingue e alla qualità del codice e aiutare a controllare alcuni di questi difficili fattori di confusione quando si confrontano le lingue.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.