Le langage Haskell est-il suffisamment populaire ?
Le langage Haskell est-il suffisamment populaire ?
Notamment dans l'industrie ? Non répond un développeur, qui propose des pistes de réflexion
Haskell est un langage de programmation fonctionnel fondé sur le lambda-calcul et la logique combinatoire. Créé en 1985, il doit son nom au mathématicien Haskell Brooks Curry.
Bien qu'ayant bénéficié d'énormément de recherches, il semble pourtant peiner à imposer.
C'est en tout cas la vision des choses de certains développeurs.
Sam Martin est un développeur Anglais, chef de projet à Geometrics où il travaille sur « Enlighten », une plateforme d'éclairage et de radiosité en temps-réel pour les jeux vidéo.
Dans un article sur son blog, il analyse les raisons de l'impopularité du langage de programmation fonctionnel « Haskell » dans le milieu industriel alors que celui-ci n'est pas dénué de qualité dans cet univers. Bien au contraire, il aurait tout pour s'y imposer.
Sam Martin avance plusieurs pistes – dont certaines plus ou moins ironiques – pour expliquer cet état de fait.
Tout d'abord « personne n'entend parler » de Haskell. Ce qui expliquerait qu'il soit « impopulaire » puisque l'on confondrait trop souvent popularité et qualité.
Cette impopularité le rendrait également « risqué ». Aucune entreprise ne veut être la première à l'utiliser surtout qu'il est difficile de recruter des développeurs maitrisant Hashkell. Ou à les y former.
Haskell serait enfin, et surtout, « différent » et la différence fait peur. Elle donnerait l'impression que le langage est difficile et liée à une communauté élitiste.
Mais la raison la plus importante, selon l'auteur, serait ses librairies. Elles seraient nombreuses mais de pas assez « bonne qualité », et « déconnectées du monde réel » et accusant de « multiples incompatibilités ».
Aussi, les plus importantes librairies ne peuvent « compiler sous Windows ».
L'« imprévisibilité des performances » des programmes écrits en Haskell seraient donc un frein à son adoption.
La conclusion, plus générale, de Sam Martin, pose la question de savoir où se situe l'objectif principal des sociétés.
Pour lui, elles ne sacrifieraient la correction et la qualité d'un code au bénéfice d'une sortie rapide, quitte à facturer les corrections par la suite aux clients.
Une logique ô combien contraire à Haskell. Et finalement le plus gros frein à son développement.
Une question de mentalité en quelque sorte ?
:fleche: Et vous, en tant que développeur ou manager, quelles sont les raisons qui vous empêchent (ou vous empêcheraient) d'utiliser Haskell dans votre entreprise ?
:fleche: Pensez-vous que les sociétés sacrifient la correction et la qualité d'un code au bénéfice d'une sortie rapide ?
Source : Blog Sam Martin
Lire aussi :
:fleche: L'inventeur du XML plaide pour la programmation concurrente et fonctionnelle, elle serait mieux adaptée aux progrès liés aux CPU multi-coeurs
:fleche: Qu'est-ce qu'un langage fonctionnel
Les rubriques (actu, forums, tutos) de Développez :
:fleche: Langages
:fleche: Forum Haskell
:fleche: Solutions d'entreprise
En collaboration avec Gordon Fowler
manque de librairies et de développeurs
je pense que le manque de librairies et de développeurs sont les 2 freins principaux pour une utilisation industrielle. On est à peu près sur de trouver ce qu'il faut en choisissant un langage répandu. On a aussi plus de chance qu'une librairie utilisée pas beaucoup de gens fonctionne réellement et que les mises à jours/corrections soient fréquentes.
L'idée que la qualité ou serait améliorée avec un langage fonctionnel me semble totalement fausse. La qualité vient d'abord du bon travail de l'équipe (bonne conception, tests, bonne organisation ...) que du langage. Un langage peu répandu amène le risque d'avoir à utiliser des développeurs moins expérimentés sur le langage ce qui peut amener à une conception mal faite et des problèmes de performances et de maintenance.
Il faut je crois utiliser les langages fonctionnels quand ils amènent un plus important pour un problème particulier, par exemple pour fournir une grande scalabilité ce qui devient de plus en plus important avec la multiplication des cores sur les cpu et la disponibilité de nombreuses cpu à la demande. Haskell ou ocaml me semblent très universitaires mais Erlang a été conçu par un industriel pour résoudre des problèmes concrets. Un langage que j'envisagerais pour une application qui doit pouvoir être très distribuée et robuste.