Les partisans des langages de programmation fonctionnels affirment que la programmation fonctionnelle facilite le raisonnement sur le code. Les partisans des langages à typage statique disent que leurs compilateurs détectent suffisamment d'erreurs pour compenser la complexité supplémentaire des systèmes de typage. Mais tout ce que j'ai lu sur ces sujets est basé sur un argument rationnel, pas sur des données empiriques.
Existe-t-il des études empiriques sur les effets des différentes catégories de langages de programmation sur les taux de défauts ou d'autres paramètres de qualité?
(Les réponses à cette question semblent indiquer qu'il n'y a pas de telles études, du moins pas pour le débat dynamique vs statique)
Réponses:
Il y a des recherches dans le milieu universitaire sur ce sujet. Voici quelques exemples que je connais, bien que vous devriez traiter les conclusions avec prudence:
Une expérience sur les systèmes de types statiques et dynamiques: des doutes sur l'impact positif des systèmes de types statiques sur le temps de développement, Stefan Hanenberg. Dans Proc OOPSLA, 2010. ACM Link
Une étude empirique du typage statique chez Ruby, M. Daly, V. Sazawal, J. Foster. Dans Proc PLATEAU, 2010. PDF
Une expérience contrôlée pour évaluer les avantages de la vérification du type d'argument de la procédure, Lutz Prechelt et Walter F. Tichy. IEEE TSE, 1998. Lien IEEE
Je suis sûr qu'il y a d'autres papiers. D'une manière générale, cependant, ce domaine est extrêmement controversé pour des raisons évidentes --- il est vraiment difficile de faire une évaluation objective !!
la source
Lutz Prechelt est une étude célèbre . Une comparaison empirique de sept langages de programmation. Ordinateur IEEE [33 (10): 23-29], octobre 2000
Prechelt discute de la fiabilité du programme et examine également le temps d'exécution et la consommation de mémoire.
la source
Bien que cela ne soit pas lié à la qualité du code en tant que tel, cette étude examine comment les novices apprennent en utilisant différents langages. En particulier, ils comparent les résultats des novices lorsqu'ils apprennent Perl vs Quorum, une langue d'enseignement que les auteurs souhaitent comparer. Ce qui est vraiment cool dans cet article, c'est qu'ils proposent en fait un langage de contrôle où la syntaxe est générée de manière aléatoire, comme une sorte de langage "placebo". Cette approche pourrait être vraiment intéressante si elle était appliquée aux langues et à la qualité du code et aider à contrôler certains de ces facteurs de confusion délicats lors de la comparaison des langues.
la source