The Simple Haskell Initiative
Industrial Haskell users are realizing that the key to delivering software on time and under budget is to keep it simple. We still have yet to fully leverage the value that Haskell98 has to offer through features like:
- Pure Functions
- Sum and Product Types
- Type Classes
- Polymorphism
Philosophy of Simple Haskell
There are as many opinions on what constitutes Simple Haskell as there are people who have them.
We don't want to endorse any one view, but promote the general idea.
Here are some general heuristics to use in assessing things.
Accessibility
Commercial software is a team endeavor. Fancy Haskell is costly to teams because it usually takes more time to understand and limits the pool of people who can effectively contribute.
Maturity
Things that have been around longer will be more well-tested and understood by a larger group of people. Prefer tried and true techniques over the latest shiny library or language feature. The more foundational something is in your tech stack, the more conservative you should be about adopting new versions or approaches to that thing.
Leaking Complexity
If you adopt a new thing, how much of its complexity will spread throughout the rest of your codebase? You should be more hesitant to adopt something if its complexity is going to spread through a larger portion of your codebase.
Quotes
-
Lennart Augustsson
"I try to stay with Haskell 2010 as far as I can....Don't get me wrong, I like cool features as much as anyone else (I suggested GADTs 10 years before GHC got them), but for production code I think it's best to stay very conservative and avoid too much cleverness."
-
Graham Hutton
"I'm very much in favour of 'Simple Haskell', and this is the focus of my Haskell book. Indeed, my (not so) secret plan has been to use Haskell 98 throughout my career, as there is still a vast amount of interesting and useful new ideas to explore in this setting. Hope to see more people embracing simplicity too!"
-
Don Stewart
"Stick to the basics. You get the vast majority of benefits. I haven't talked about GADTs. I haven't talked about any technology invented in the last 10 years... You get most of the benefit just using newtypes, data, and functions. And certainly all the benefits of reuse and minimizing complexity were already there in '95 or earlier."
Posts
Read what others are saying on this topic.
- 2019-12-26 My thoughts on Haskell in 2020 by Marco Sampellegrini
- 2019-12-26 Write Junior Code by Matt Parsons
- 2019-11-21 Boring Haskell Manifesto by Michael Snoyman
- 2019-02-13 The Types Got You by Mark Karpov
- 2020-05-22 Simple Haskell is Best Haskell by Sam Halliday
Resources
Spread the Word
Add the Simple Haskell badge to your online profiles
Markdown:
[](https://www.simplehaskell.org)
HTML:
<a href="https://www.simplehaskell.org"><img src="https://www.simplehaskell.org/badges/badge.svg" /></a>