- L’auteur partage son parcours pour s’éloigner de Haskell, un langage de programmation fonctionnelle qu’il a utilisé pendant dix ans comme ingénieur logiciel.
- L’auteur a été attiré par la capacité de Haskell à comprendre le code de manière symbolique et algébrique, ainsi que par la robustesse de son système de types.
- Le système de types de Haskell permet une vérification stricte des types sans être excessivement restrictif ni trop verbeux, ce qui facilite l’écriture et la maintenance du code.
- L’auteur a particulièrement apprécié la capacité de Haskell à exprimer des invariants via les types, ce qui permet au compilateur de revérifier la logique et améliore la sécurité ainsi que la précision du code.
- Malgré ces avantages, l’auteur s’est éloigné de Haskell pour trois raisons principales : la recherche permanente de nouveauté stylistique, des outils maladroits et un changement continu.
- La nouveauté stylistique renvoie à la tendance de la communauté Haskell à expérimenter de nouvelles abstractions, ce qui peut être innovant mais aussi rendre la maintenance du code plus difficile.
- L’auteur juge les outils de Haskell « corrects », mais souligne qu’aucun n’est aussi simple d’utilisation et aussi fiable que
cargo de Rust.
- L’évolution continue de Haskell, en particulier les modifications régulières sans compatibilité descendante, a accru les frictions liées à l’usage du langage.
- Bien qu’il se soit éloigné de Haskell, l’auteur continue de reconnaître ses points forts : la capacité à refactoriser le code de façon algébrique, son système de types et son écosystème de bibliothèques déclaratives.
- L’auteur conclut que l’usage de Haskell dépend des objectifs de chacun. Il recommande de l’apprendre pour devenir un meilleur programmeur, tout en appelant à la prudence avant d’en faire son langage principal en raison des difficultés qu’il a décrites.
1 commentaires
Commentaires Hacker News
baseest perçu comme un problème, car il force des changements dans les dépendances à chaque sortie d’une nouvelle version de GHC.