Haskell Implementation of Cap'N Proto

26 Aug 2018

Yesterday I tagged the first release of the project that has occuppied most of my spare-time hacking for the past few months, and that I’d been working on sporadically for longer than I care to think about. It’s a Haskell implementation of Cap’N Proto. The package is available on Hackage and my Github account.

It’s alpha quality, but serialization works. I spent yesterday afternoon tying up loose ends, particularly documentation, and the package is better documented that 98% of what’s on Hackage (which is sadly not as big of an achievement as it should be). So while this is mostly intended as a “Hey look what I built!” blog entry, the balance of the post is more of a reflection on the experience than it is about the artifact itself.

So far the only other place I’ve announced this to is the Cap’N Proto mailing list, though other places will follow. Actually announcing a piece of software to the world for the first time is still something of a novel experience to me. I’ve done it with a couple of Sandstorm apps and what were basically tech demos, but other than that I’ve mostly worked on projects that fall into one of a couple categories:

Historically I’ve been lacking the discipline required to stay motivated and finish large projects that aren’t externally imposed (being paid mostly solves the motivation issue). It’s a skill that I’ve only recently managed to develop.

The other projects I’ve thrown out into the world didn’t get many bites. I’ll speculate a bit as to why:

I don’t know what to expect re: uptake with the Haskell Cap’N Proto implementation. I’ve seen some interest already, even before the announcement. I have doubts about what people will think when they start trying to use it. I’m worried I’ve kicked it out the door before it’s really ready. But it’s always tempting to keep refining a project, and at a certain point you just have to ship it. We’ll see how it goes.