Growing Haskell Platform
In my Haskell Implementors 2012 talk Haskell Platform: Field Report and Future Goals (slides, video), I called for an expansion of the content of the platform to bring it up to par with what other programming language platforms provide. Here is a partial list of package topics that are commonly in other language platforms that are missing from ours:
- Crypto — hashing, mac, ssl, uuid, common cyphers (aes, des, etc…)
- Data Formatting — csv, json, base64, yaml, mme, xml, parsing, generation
- Database — dbm, *sql, sqllite
- Encoding — base64, quotedprintable
- Image Processing — rendering, compositing
- Math — statistics
- Media — audio formats, image formats, video formats, id3, media containers
- Network Services — amqp, curl, memcached, sessions
- OS Services — logging, file utils
- Programming — benchmarking, test framework
- Text — html, diff
- UI — curses, gui framework(s)
To get started on that mountain, I’ve put together the start of a straw man for what we might get into the 2013.2.0.0 release: Package Staging. It is a list of about 20 or so packages (or package needs where I’m not sure which package to suggest) that I think we should tackle first.
My aim here is to be ambitious. The platform has proven itself to be a useful part of the Haskell ecology. By expanding its coverage we can make Haskell more viable for a broader audience beyond the Haskell community itself.
To get this done we’ll need tremendous efforts on the part of package maintainers. But we also need the support of all of you, the Haskell community: We can achieve this ambitious goal if we focus on producing a well engineered, practical, stable platform so that people can simply choose Haskell because it is the best tool for their programming work.
I believe the time is right, and we can come together and, in the immortal words of the Power Rangers: “Let’s do this!”