Quand et pourquoi Haskell est-il devenu une langue viable?

Peter Bhat Harkins

Peter Bhat Harkins

Répondu il y a 143w

Il y a une blague en cours dans la communauté Haskell selon laquelle sa devise est "Évitez le succès à tout prix". Les créateurs ont toujours choisi des approches intéressantes sur le plan académique plutôt que commerciales.

Par exemple: le langage a été lancé dans 1987 par des universitaires qui souhaitaient explorer des concepts de programmation fonctionnelle. Ils n’avaient pas de langue commune, ils inventaient donc chacun leur propre papier, c’était un vrai bordel. Un comité s'est réuni pour définir le langage au cours des prochaines années et la première spécification a été publiée dans 1990.

Mais ce n’est que jusqu’à 1996 que Philip Wadler a publié "Monads for Functional Programming" (http://homepages.inf.ed.ac.uk/wa...) que Haskell était conçu pour effectuer des entrées et des sorties de base. Avant cela, il était impossible de lire des fichiers ou d’imprimer sur le terminal de Haskell!

Haskell était destiné à être un laboratoire pour expérimenter des questions intéressantes en informatique, et non un bourreau de travail quotidien, et cela a vraiment été démontré.

La plupart des langues académiques sont utilisées quelques années, puis abandonnées, mais des fonctionnalités telles que l'évaluation non stricte permettaient aux universitaires de continuer à élargir et à expérimenter cette langue au travers des 1990. Ce qui a commencé avec quelques professeurs s'est étendu à leurs étudiants de premier cycle et de premier cycle. À la fin de leurs études, Haskell a commencé à pénétrer le monde. Les expériences ne se trouvaient plus seulement dans la théorie des types, mais dans des questions telles que: "Puis-je écrire un programme utile en Haskell? À quelles tâches convient-il? Le retour sur mon temps en vaut-il la peine?"

Les réponses à ces questions étaient, oui, que Haskell pouvait être utilisé pour des programmes et excellait dans quelques tâches telles que l'analyse syntaxique (formats de fichier, code source, communication réseau, etc.). L’écosystème était très mince, cependant, avec peu d’aide aux éditeurs ou de bibliothèques. Néanmoins, l'intérêt pour les premiers 2000 s'est accru.

Leggi:  Puis-je payer en espèces sur eBay, après ma livraison?

In 2005, Cabal a été publié, ce qui facilite beaucoup le conditionnement et le partage des bibliothèques Haskell. Ce fut le point d'inflexion pour Haskell, lorsqu'il passa du bricolage au développement productif. Les enthousiastes ont commencé à saccager Haskell au travail pour acheter de petits outils et leurs succès ont prouvé la viabilité de Haskell pour des projets officiels. Ils ont commencé à écrire des bibliothèques et à intégrer des éditeurs, et à résoudre les difficultés inhérentes à leur mise en route.

L'utilisation réelle de Haskell n'a cessé de croître au cours des dernières années 10. Je pense que cela a été sous-déclaré, car il semble que ce soit principalement adopté par des sociétés financières qui ont tendance à être assez secrètes, mais les rapports sur l'expérience publique ont vraiment commencé à se multiplier dans les blogs, les livres blancs et les conférences. Désormais, lorsqu'un développeur bricole Haskell cherche une bibliothèque pour inspecter les PNG, envoyer des courriels ou effectuer des paiements Stripe, tout est là.

Haskell a atteint la masse critique. Il contient des utilisateurs, des outils, des éditeurs, des bibliothèques, des didacticiels, des exemples de réussite, l'inertie d'un langage réussi qui indique aux développeurs que leur investissement en temps et en argent ne sera pas gaspillé.

Pour plus d'informations sur l'histoire de Haskell, voir l'article "Une histoire de Haskell: être paresseux avec la classe": http://research.microsoft.com/en...

Et la présentation de Simon Peyton-Jones avec le même titre est excellente: Une histoire de Haskell: être paresseux avec la classe Chez 10: 45, il commence à parler de la poussée de croissance tardive dont vous avez parlé et que j'ai expliquée ici.

Mario Rugiero

Mario Rugiero, travaille chez TecnoAcción SA

Répondu il y a 144w · L'auteur dispose de réponses 327 et de vues de réponses 2.7m

AVERTISSEMENT: ma réponse ne fait aucunement autorité. Bien que je ferai de mon mieux pour argumenter tout ce que je dis, cela risque de rater le vrai problème, car je ne suis pas vraiment un expert de Haskell et je ne l'utilise pas non plus dans mon travail.

Leggi:  What extra value has BitCoin bestowed upon the world over the last couple of years to justify an astronomical rise in price?

Je peux voir plusieurs raisons pour lesquelles Haskell a été utilisé principalement par les universitaires pendant longtemps et pourquoi il pourrait obtenir plus de succès dans l'industrie maintenant.

Les raisons pour lesquelles il est utilisé dans les universitaires incluent la transparence référentielle et sa pureté permettant une réflexion algébrique sur le code, la facilité de vérification de ce code (les universitaires ont tendance à vérifier formellement leur code plus que les chefs d'entreprise), et peut-être le fait que les académias ont tendance grappe où ils peuvent faire des calculs coûteux ne se souciant pas autant de l'efficacité que l'industrie doit le faire.

Les raisons pour lesquelles il n'est pas utilisé auparavant (en dehors des universités) incluent une utilisation intensive de la copie (lente), une interopérabilité relativement médiocre (si vous avez déjà une base de code dans une langue différente, vous ne pouvez généralement pas migrer le tout en entier). une fois), y compris officiellement seulement C et C ++ avec cabale, et cela ne le rend pas vraiment trop facile non plus.

Les raisons pour lesquelles son utilisation est croissante incluent l'avènement de systèmes à plusieurs cœurs pour les gens ordinaires. Le code purement fonctionnel est non seulement plus facile à raisonner, mais aussi à paralléliser, car l'absence d'état signifie qu'il n'est pas nécessaire de protéger l'état partagé, et la parallélisation correcte est la nouvelle priorité en matière de performances. De toute façon, les copies auraient surtout été nécessaires dans un monde parallèle. Ainsi, tout ce que vous avez perdu en performance l’aurait perdu dans des langages impératifs (plus ou moins, bien sûr), et vous gagnerez en productivité.

Cependant, je pense que Haskell sera toujours une niche, et ce n'est pas nécessairement une mauvaise chose. Forcer un paradigme est très utile dans certains contextes, l'un des plus évidents étant l'apprentissage de ce paradigme et de la recherche, mais l'interopérabilité est toujours un point faible et nous voyons ce que je considère comme une meilleure approche qui transforme progressivement les langages prêts à l'industrie à paradigme plus fonctionnel. Un langage qui vous permet de choisir le bon outil pour le travail est, IMO, plus applicable dans l’industrie que celui qui vous oblige à utiliser un processus de pensée spécifique pour plusieurs problèmes. Forcer un langage pur à s’adapter à l’industrie le corrompt également. L'industrie récompensera toujours le confort, et le confort est un ennemi de la pureté. Haskell devrait, IMO, se concentrer sur la création des idées novatrices dont nous avons besoin et les autres langues devraient les intégrer plus tard, une fois la cuisson terminée.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.