A Human Arguement for Haskell

Functional programming and quality of life

There are many solid technical arguments in favor of functional programming, but something I don’t usually see acknowledged is the tangible human impact. I want to share some benefits I’ve noticed in my personal life that come from switching to Haskell.

Stress

My overall stress level has dropped dramatically due to GHC. Here are some examples:

Merges

Sometimes big merges happen, and when they do, I used to worry about what changes would cause breakages from the merge. When working in a language like JavaScript (which I was), you are armed with running the program to find breakages, and running a unit test suite. Unit tests are rarely full coverage, or document every nuance of application behavior. So after very carefully addressing merge conflicts, running the tests, running the program, and poking around the program to find bugs, some bugs are in fact found and fixed in the conflict resolution. The resolution gets merged and the work day ends. But this scenario leaves me with a running log of stressful negative outcomes outstanding, that I could not verify. I end up spending my free time with these thoughts in the back of my mind, as my brain keeps processing the JavaScript code I’ve seen during the merge and thinking of new ways it could have gone wrong. And almost inevitably something was missed and comes back to bite me later.

In Haskell