« Des milliards de dollars sont gaspillés à cause de l'excès de défaillance des projets, corrections de bugs et maintenances cauchemardesques » explique Contorer qui rappelle que de nombreuses études ont démontré que les maintenances et corrections de bugs consomment à elles seules 50 à 75 % des projets informatiques. Pour lui, l'une des raisons de ces problèmes est l'utilisation de langages traditionnels à l'instar de Java, C/C++/C# , Python, ou encore Ruby pour ne citer que ceux-là. Il estime que l'approche est très sujette aux erreurs et génère du « code spaghetti qui dévore les coûts finaux. ».
Il explique que ce problème est relativement méconnu et perpétué parce que la grande majorité des programmeurs ne connaissent pas d'alternative viable et se contentent d'arrondir les angles de plusieurs façons : utilisation de meilleurs outils, développement Agile etc. Il précise que ce ne sont pas des solutions mais des contournements du problème.
Pourquoi Haskell serait une alternative viable ? Parce que son approche est fondamentalement différente des langages dominants d'aujourd'hui. Les programmes Haskell sont une série de fonctions généralisables de haut niveau qui définissent ce que le programme est censé faire. Le programmeur se concentre sur l'objectif, les meilleures conceptions et logiques pour apporter un résultat spécifique souhaité. Le compilateur produit du code propre, concis et correct. Contorer a d'ailleurs cité les nombreux avantages techniques de l'utilisation d'Haskell :
- une réduction des lignes de code de 50 à 80 % ;
- une réduction considérable des erreurs ;
- une réduction considérable de la découverte et de la correction d'erreurs au moment de la compilation ;
- maintenance du code facilitée et modification sans introduction d'erreurs ;
- plus sécurisé car moins de failles exploitables.
Selon lui, tous ces avantages techniques auront pour conséquence d'accélérer le temps de mise sur le marché de 30 à 50 %, de réduire les coûts d'au moins 25 %, d'accroître la productivité du programmeur d'au moins 30 % mais surtout d'améliorer la qualité du produit.
« Ruby et Python sont populaires parce qu'ils permettent un prototypage rapide, surtout dans le développement d'applications web. Toutefois, ils sèment les graines de futurs problèmes dans les performances, la fiabilité, l'évolutivité et la dépendance qui rend la maintenance cauchemardesque. » affirme-t-il. D'ailleurs, selon lui, il est amplement prouvé que Haskell peut les résoudre.
A titre d'exemple pour illustrer ses dires, il cite Janrain qui, après avoir connu des taux élevés d'échec avec Ruby, a commencé à utiliser Haskell et a pu réduire de 75 % le temps qu'il consacrait à des corrections de bugs. D'ailleurs le NYT a déclaré utiliser Haskell pour présenter sa semaine de la mode qui est une application avec des quantités massives d'images et d'analyses.
Le rédacteur en chef Andrew Binstock de Dr. Dobb a tweeté récemment « J'ai remarqué plusieurs fois quand quelqu'un dit, "X a vraiment changé ma façon de penser sur la programmation," fréquemment X = Haskell. » Karthikeyan Mani, co-fondateur de Byteally en Inde a dit « C'est la façon naturelle de programmer. C'est la première fois que je suis en paix quand je code. Avec Ruby, c'est toujours des maux de tête et des énervements. Nous nous éloignons de la programmation traditionnelle ».
Source : Mozilla Open News, étude FPCompete, cas Janrain (au format PDF), blog FPCompete
Et vous ?
Avez-vous déjà utilisé Haskell ? Qu'en pensez-vous ?
Partagez-vous le point de vue de Aaron Contorer ?