Haskell’s killer app is maintainability
I asked the following question on the 2019 State of Haskell Survey: “If you wanted to convince someone to use Haskell, what would you say?” My answer to that question involves long term maintainability and low risk refactoring. I looked through the survey responses and found many other people express the same sentiment. I collected some of them here as testimonials for Haskell.
Refactoring with Haskell is delicious.
Haskell can deliver the same time to market as languages like Ruby while delivering an enduring, flexible codebase capable of lasting decades.
Refactoring is so much better with Haskell than anything else.
You can respond to the changing business requirements even as complexity grows and don’t end up with code that’s just “too scary to touch”.
Haskell reduces your maintenance cost by an order of magnitude.
Haskell is great for the long-running projects as the maintenance effort is minimal. Moreover, feature adding and refactoring could be done smoothly and in no time.
Haskell helps you find and fix bugs before you deploy rather than afterward.
The ability to refactor production critical code in large Haskell code bases without worrying about breaking fundamental assumptions is massive.
Haskell has the best refactoring experience of any language I’ve come across.
Our team routinely rewrites both small and large parts of our systems knowing that the Haskell compiler will catch most of the bugs and changes we would have forgotten to make in other languages.
Haskell is the only language that lets you refactor your code with confidence.
You will spend the vast majority of your time maintaining and refactoring your code. That’s where Haskell shines: I can make huge changes with ease and confidence.
You can successfully refactor a large Haskell project you don’t know well with very little fear.
No language I have ever used comes close to its refactorability. Being able to iterate quickly with confidence is perhaps the most important factor. Haskell is best in class for this.
Haskell is the only language that has a believable story for managing technical debt.
With Haskell you can implement features faster, and they are more stable, and the code is still not a mess. But even if it’s a mess, you can refactor without problems and with confidence.
If you want to create a code base that is easy to maintain and refactor, choose Haskell.