Skip to content

Growing Haskell Platform

December 6, 2012

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!”

– Mark



From → Haskell

  1. Vincent Berthoux permalink

    Hello, I’m the author of ‘Juicy.Pixels’ ( ), and I think this library would be a good choice for the Media/Image part of Haskell platform. It offers decoding of the big three image format (Jpeg/PNG & Gif, and some BMP) and writing for Jpeg, Png and BMP.

    The only library it requires not already included in the Haskell Platform is ‘cereal’, otherwise it would be a single add.

    Do you think it is a good potential inclusion?

  2. I spoke with tibbe last week about the cereal/binary situation and he is under the impression that binary (which is already in the Platform) now provides a strict superset of the functionality provided by cereal. Let him know if you find something to be missing and I’m sure this can be rectified.

  3. Vincent Berthoux permalink

    It’s a strict superset with the version with the apparition of `runGetOrFail`, if this version is included in the next Platform, I can switch to it easily

Comments are closed.

%d bloggers like this: