Certains langages provoquent-ils plus de bugs que d’autres ?

BugsTout comme pour les langues « humaines », les langages informatiques sont plus ou moins facile à apprendre, plus ou moins complexes à relire et debugger.

Certains sont inconditionnels de Ruby, de Java, d’autres de PHP ou de C#. Chacun à d’excellentes raisons de préférer tel ou tel langage à un autre. Pour autant, les applications écrites en Java présentent-elles plus de bugs que les programmes Erlang, PHP ou C  ? Au delà de la théorie des langages, des chercheurs se sont intéressés à de vrais projets hébergés par Github pour évaluer le taux de bugs du code produit.

Une étude statistique qui porte sur 17 langages de programmation

Les chercheurs de l’université de Californie sont allé puiser parmi 729 projets, 80 millions de lignes de code, 29.000 auteurs et 1,5 million de soumissions  pour réaliser une étude statistique des bug et correctifs. Après avoir exclu les langage de Shell, Vim et CSS, ceux-ci on retenu les 50 plus gros projets développés en 17 langages différents. Parmi les projets retenus, Linux, Git, Php-src pour le langage C, Storm, elasticsearch et ActionBarSherlock pour Java, Docker, lime et Websocketd pour le langage Go ou encore laravel, CodeIgniter et symfony pour PHP.

Le taux de bug de chacun des 17 langages expertisés sur Github.

Le taux de bug de chacun des 17 langages expertisés sur Github.

Si l’étude présente quelques biais du fait de sa méthodologie, avec des données relatives à des projets et des communautés de développeurs très différents, elle pointe néanmoins les faiblesses des langages dans certains domaines. Chaque langage a des erreurs qui reviennent couramment : Erreurs de runtime pour JavaScript, erreurs de types de données pour TypeScript, erreurs mémoire pour C++ et Objective-C, Java. Pour les accès concurrents, CoffeeScript, TypeScript, Ruby et PHP font mieux qu’Erlang alors que ce dernier, C, C++ et Go posent des problèmes de sécurité plus fréquemment que du code développé en TypeScript et Clojure.

Pas de langage miracle qui mette le développeur à l’abris des bugs, néanmoins, sans surprise PHP et le langage C et ses descendants C++ / C# et Objective-C figurent parmi les mauvais élèves, tandis que TypeScript, ce sur-ensemble de JavaScript développé par Microsoft, se classe au dessus de la moyenne, avec le langage Go de Google ou encore Clojure.

Source : « A Large Scale Study of Programming Languages and Code Quality in Github » [pdf], 2014

Commentaires Facebook
Twitter Facebook Plusone Pinterest Linkedin
Ce contenu a été publié dans Développement, avec comme mot(s)-clé(s) , , , , , , . Vous pouvez le mettre en favoris avec ce permalien.