Introduction

L'article présente l'expérience de l'auteur en tant qu'ingénieur chez Mercury, une entreprise fintech qui utilise Haskell pour ses services bancaires. L'auteur explique comment Haskell a été choisi pour son système de type solide et sa capacité à prévenir les erreurs.

Contexte Technique

Le codebase de Mercury est composé de près de 2 millions de lignes de Haskell, maintenues par des ingénieurs qui ont appris le langage sur le job. L'auteur explique que cette approche a fonctionné bien malgré les préjugés contre l'utilisation de Haskell en production. Le système a été conçu pour être robuste et évolutif, avec une architecture qui permet de gérer les variations et les changements.

La philosophie de l'entreprise est de se concentrer sur la fiabilité et la capacité d'adaptation du système, plutôt que de simplement prévenir les erreurs. Cela signifie que les ingénieurs doivent être capables de comprendre et d'ajuster le système rapidement, et que l'architecture doit être conçue pour faciliter les bonnes pratiques.

Analyse et Implications

L'utilisation de Haskell en production a des implications importantes pour la fiabilité et la sécurité du système. Le système de type de Haskell permet de encoder les connaissances institutionnelles de manière à ce que le compilateur puisse les lire, ce qui aide à prévenir les erreurs et à garantir la cohérence du code.

L'auteur souligne également l'importance de la documentation et de la communication entre les équipes pour garantir que les connaissances sont partagées et que les nouveaux ingénieurs puissent rapidement comprendre le système.

Perspective

L'auteur conclut que l'utilisation de Haskell en production a été un choix judicieux pour Mercury, malgré les défis liés à la croissance rapide de l'entreprise. Il souligne l'importance de continuer à investir dans la formation et la documentation pour garantir que les ingénieurs puissent continuer à travailler de manière efficace et sécurisée.

Les leçons tirées de cette expérience peuvent être appliquées à d'autres entreprises qui cherchent à utiliser des langages de programmation fonctionnels comme Haskell en production. Il est essentiel de se concentrer sur la fiabilité, la sécurité et la capacité d'adaptation du système, et de garantir que les connaissances institutionnelles soient encodées de manière à ce que les nouveaux ingénieurs puissent les comprendre rapidement.