IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

Le langage Haskell est-il suffisamment populaire ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Par défaut 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 ?

    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 ?

    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 :

    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

    Qu'est-ce qu'un langage fonctionnel

    Les rubriques (actu, forums, tutos) de Développez :

    Langages
    Forum Haskell
    Solutions d'entreprise



    En collaboration avec Gordon Fowler

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Haskell est très peu répandu en France ... Globalement, j'ai fait de l'ocaml en France et du Haskell au Royaume-Uni.
    Mais à l'heure actuelle, allez sur Monster, et faites une recherche du terme "Haskell" sur le territoire national : il n'y a pas d'offre. S'il n'y a pas d'offre, il n'y aura pas de demande

  3. #3
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    Citation Envoyé par bhamp0 Voir le message
    Mais à l'heure actuelle, allez sur Monster, et faites une recherche du terme "Haskell" sur le territoire national : il n'y a pas d'offre. S'il n'y a pas d'offre, il n'y aura pas de demande
    Pareil pour Caml ou Ocaml sur Monster. Je pense qu'il y a pas vraiment de demandes de développeurs sur un langage fonctionnel. Les entreprises n'y voient pas d'avantages et ne connaissent pas vraiment, ou ne sont pas prêtes à investir.
    L'aspect mathématique pourrait aussi en refroidir plus d'un, je pense que l'on peut ajouter cela à la liste des raisons.

  4. #4
    Membre confirmé
    Profil pro
    Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 77
    Par défaut
    Quelle coïncidence pour moi. Je me suis intéressé à Haskell depuis 2 semaines et je suis en train de lire Real World Haskell. Ce langage est vraiment trés intéressant mais, mon coeur balance entre soit apprendre ce langage soit approfondir mes connaissances Groovy qui mélange programmation objet, impérative et fonctionnelle.
    Mon plus gros problème avec Haskell est l'absence d'idée sur ses performances :/ Dans mon travail, je travaille avec des chaines textes que j'analyse, transforme, codifie. Ces données venant essentiellement de fichier texte CSV. Quelq'un sait-il si Haskell est performant pour ce genre de travail ? Cela m'embêterait de prendre de temps à son apprentissage pour à la fin me rendre compte qu'il n'est pas utilisable :/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Par défaut
    Citation Envoyé par csperandio Voir le message
    Dans mon travail, je travaille avec des chaines textes que j'analyse, transforme, codifie. Ces données venant essentiellement de fichier texte CSV. Quelq'un sait-il si Haskell est performant pour ce genre de travail ? Cela m'embêterait de prendre de temps à son apprentissage pour à la fin me rendre compte qu'il n'est pas utilisable :/
    Pour traiter les chaines de caractères, le langage le plus adapté est certainement perl

  6. #6
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Je connais pas vraiment Haskell, mais les langages fonctionnels permettent effectivement une productivité accrue (plus d'expressivité => moins de lignes de code => moins de temps passé à coder) mais je pense qu'outre le temps de formation des pros du C++/Java/que-sais-je aux langages fonctionnels (qui nécessitent tout de même un cheminement intellectuel différent), le principal problème est la difficulté lors de la relecture de code.

    Je me rappelle d'un point assez intéressant dans la doc de Qt qui pour justifier la verbosité de l'API disait qu'une ligne de code est écrite une fois mais est relue beaucoup plus et qu'il était nécessaire d'adopter une syntaxe et des conventions de nommage allant dans ce sens. Du coup le choix d'Haskell n'est-il pas dangereux en ce qui concerne la maintenance et l'évolutivité d'une app?

    De plus, je pense que les langages fonctionnels sont souvent écrits par/pour des mathématiciens, je ferai donc moyennement confiance aux types me vantant leur simplicité et leur adéquation au milieu industriel !

  7. #7
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Je reviens juste sur cette phrase...

    Citation Envoyé par palnap Voir le message
    De plus, je pense que les langages fonctionnels sont souvent écrits par/pour des mathématiciens, je ferai donc moyennement confiance aux types me vantant leur simplicité et leur adéquation au milieu industriel !
    Parce que chez les industriels, personne n'a fait de mathématiques ?
    Franchement, dans les langages fonctionnels, la seule chose de mathématique qu'on devrait comprendre, c'est le concept de fonction, les simplicités et mécanismes qui peuvent en découler (composition et curryfication). Rien que ça suffit !

    Un peu de reformatage de son mode de pensée via des exercices mentaux suffisent en une poignée de jours à s'adapter assez bien.

    Je pense aussi qu'il y a une certaine répulsion culturelle et un effet de mode à dire "beurk, des maths..." à cause du traumatisme (c'est un peu fort) scolaire de beaucoup de gens.
    On ne demande pas l'impossible non plus !

    ----

    Sinon pour en revenir au sujet, je pense qu'ils ne perceront jamais, mais que les langages évoluent pour intégrer les aspects des langages fonctionnels.

    Voir C# avec ses lambda, C++ aussi...

    Ah non, une exception, il y a F#, totalement compatible .NET qui profite donc de tous ses avantages (et vice-versa, les autres langages .NET peuvent utiliser une bibliothèque écrite en F# très simplement).

    Et on pourra remarquer à juste titre que .NET dans sa version 4 fait la part belle au style fonctionnel pour la programmation concurrente ou asynchrone.

  8. #8
    Membre éprouvé Avatar de amaury pouly
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 157
    Par défaut
    Je ne me prononce pas sur le débat sans fin impératif contre fonctionnel parce que*j'ai déjà tranché pour moi Mais par contre j'aimerais parler de la lisibilité.

    Un argument que l'on retrouver souvent dans le débat est celui de palnap (qui donne aussi son contraire):
    plus d'expressivité => moins de lignes de code => moins de temps passé à coder
    Je suis 100% d'accord avec cela et je pense aussi que ce genre d'argument passe à 100Km du débat. Pourquoi ? Parce que cela se saurait si l'on écrivait du code que pour soit. Or la lisibilité est importante. C'est débile de gagner 10% en productivité si le temps de maintenance augmente de 50% juste parce que le code produit est moins lisible.

    Avec les languages fonctionnels, je trouve que c'est plutôt le cas. Un argument que j'entends souvent est qu'il inutile de donner le type des arguments, des variables car il est inféré. Mais personne n'est dupe, les types existe en grande partie pour les développeurs. Le fait qu'ils soient écrits, de façon redondante dans de nombreux language contribue à la lisibilité, on voit le type au premier coup d'oeil. Je pense que c'est un fait à ne pas négliger car dans un gros projet, on doit relire le code de quelqu'un d'autre très souvent et on a pas envie de passer des heures à fait tourner le code mentalement juste pour inférer les types parce que le code n'est pas documenter.

    On peut me dire que je suis un peu malhonnête (et c'est vrai ) parce que dans les languages fonctionnels on peut aussi mettre les types explicitement mais qui le fait ?

    Après ce n'est qu'un avis parmi tant d'autre, il y a probablement de nombreuses raisons, bonnes et mauvaises pour lesquels les languages fonctionnels ne percent pas. Probablement que le simple fait de changer de language représente un coup prohibitif et qu'au fond, ce n'est pas seulement une question d'impératif VS fonctionnel. C'est un peu un cercle vicieux.

  9. #9
    Membre averti
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Par défaut
    L'impression que j'en ai toujours eu c'est que c'est clairement un truc de fac.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Par défaut
    Le problème de ces langages, c'est qu'ils sont peu connus, du coup une entreprise sera frileuse à l'idée de développer un projet avec sans avoir tellement de visibilité sur le fait qu'il va évoluer ou rester figé, qu'il sera difficile de trouver des ressources sur le sujet. Encore plus difficile de trouver des développeurs pour maintenir le projet si ceux qui sont là s'en vont ...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 39
    Par défaut 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.

Discussions similaires

  1. Réponses: 31
    Dernier message: 21/02/2018, 18h15
  2. Le langage Haskell est-il suffisamment populaire ?
    Par Idelways dans le forum Haskell
    Réponses: 8
    Dernier message: 09/08/2010, 17h07
  3. JSp est il encore populaire?
    Par berceker united dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/10/2006, 13h28
  4. Réponses: 12
    Dernier message: 10/08/2006, 09h44
  5. [langage] "@$" Quel est ce type de variable?
    Par YanK dans le forum Langage
    Réponses: 4
    Dernier message: 21/04/2005, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo