Cast Software a réalisé une enquête très intéressante sur le coût des erreurs de programmation et de la maintenance du code. Le document qui en résulte est accessible gratuitement à partir de ce lien. Il suffit de remplir un formulaire pour y accéder.
L'enquête a été réalisée sur 745 applications et au total 365 millions de lignes de codes ont été analysées. L'enquête s'est efforcée de recenser des problèmes dus a des problèmes de mauvaises conceptions d'architectures et à des mauvaises pratiques d'écriture du code, et elle introduit le concept de dette technique. Cette dette technique représente le coût requis pour corriger un défaut, qu'il s'agisse d'une faille de sécurité, ou d'un problème de performance, par exemple.
Ce coût est même chiffré par cette analyse, qui se base sur un taux horaire de 75 dollars. En moyenne, réparer une ligne de code coûte 3,61 dollars. Mais les disparités entre les langages sont grandes et mettent à mal les idées reçues. Ainsi coder en Cobol n'est pas réputé chose particulièrement aisée, alors que Java a toujours été présenté comme un langage “simple” à manier. Cependant, d'après le document, réparer une ligne de code en Cobol ne coûte que 1,26 dollars alors que pour Java EE cela monte 5,42 dollars. Très étonnant encore, C++ réputé extrêmement complexe, piégeux et demandant beaucoup de temps pour coder, fait très bonne figure, et C fait encore mieux. Quand à C# (l'étude dit .NET) son coût est presque aussi élevé que celui de Java. Les mauvaise langues penseront sans doute que c'est parce que C# copie trop bien Java 🙂
Est-ce à dire que les “langages objet à runtime” que sont Java et C# manquent leur objectifs de simplicité et d'efficacité en ce qui concerne le développement ? A voir ces chiffres, on est tenté de le penser. Le document tempère toutefois ces résultats en faisant remarquer que globalement le code Cobol est plus âgé et donc mieux déverminé, et que les programmeurs en Cobol sont eux aussi plus âgés et donc à priori plus expérimentés. Ils coderaient donc mieux et corrigeraient plus vite les problèmes. Alors que, d'après cette étude, s'il y a beaucoup de gens qui font du Java de nos jours, ceux-ci n'ont pas toujours reçu une bonne formation en informatique, ni ne sont encore très expérimentés.
Ce document est plein de chiffres surprenants. Ainsi C++, qui n'a pas du tout bonne réputation en matière de sécurité ne présente des problèmes à ce niveau que pour 7% des problèmes recensés. C'est moins bien que C, 4%, alors que C++ se veut un langage malgré tout plus sûr. Et en Java, la sécurité, c'est 5% des problèmes. Moins bien que C et presque au nouveau de C++! C# quant à lui affiche un piteux 9%.
Un document passionnant à lire donc, même s'il est fort dommage qu'il ne s'intéresse pas à des langages qui ont pignon sur Web, comme PHP, Ruby ou bien Python.