One of the barriers that makes Haskell fairly niche as a language is that it is hard for a newcomer to both
- learn how to use it
- be convinced that doing so is worthwhile
I think it would be great if there was a single tutorial-style resource with the following properties:
- community maintained: i.e. people regularly contribute to it with PRs that a group of people curate. This way it’s a project that can be kept up to date, improved and extended.
- centrally endorsed: i.e. there’s a big red button to it on haskell.org and it’s a Haskell Foundation project. This seems important, because while there are many many learning resources, it’s hard for a newcomer to know what to choose.
- free and online: this seems essential to lower the activation barrier of adoption
- aimed at people with non-zero programming experience but no FP experience: there’s no one-size-fits-all resource, but I think it’s fair to assume that the crucial gap in the market is people with experience of programming that haven’t heard “the good news” about FP
- centered around an example codebase: in this way, the book can serve as an example of what a real Haskell application looks like, and best practices re. cabal (or stack, depending)
Other features that would be nice (but not essential):
- online-runnable code: again to lower the activation barrier of trying out Haskell
- interactive: people can leave messages, so that discussions of confusing parts are there for subsequent readers to see
Example
I put together a draft example of the sort of thing I mean:
This is intended just as a sketch of the kind of resource I have in mind, not a real attempt to do it (yet).
My question
What I’m interested to know is if people think this:
a) a good idea in theory, but would require a lot of hard work
b) not the right way to solve the problem: there are already way too many good resources
c) other
In the unlikely event that people thought this was a really good idea, maybe I’d propose it as a Haskell Foundation project.
Potential objections:
What’s wrong with (the community version of) Learn You a Haskell
?
LYAH is great, but it would be nice to have a resource which is specifically designed to be updated and extended continuously. Also, some people dislike LYAH for being:
- too whimsical
- too detached from real-world problems
- aimed at total beginners to programming
In that case, what’s wrong with the wiki?
The wiki is also great, but it’s more of a reference guide than a curated tour through Haskell with a carefully crafted narrative, intended to be friendly for beginners.
OK then, what’s wrong with CIS194
This is a really good course, but it’s designed to be used by students in a class, not by software engineers trying to learn a language. I want something designed to make as effective and clear case as possible that if you’re a software engineer, you should try out Haskell.
Real world Haskell?
Again great, but it’s getting out of date.
Any of the many other books?
Paywalls, not community maintained.