After contemplating the state of the tiny constellation of Erlang resources available, both in-depth instructionals and books, I’ve finally decided that what is most lacking is an intermediate resource. So I’ve started working on one. The goal is to demonstrate a non-trivial system (a MUD, in this case) as it would be written in raw, beginner-style Erlang and show how a project can evolve to a for-real OTP system by providing complete project examples and code commentary throughout the intermediate stages of evolution.
Hopefully this will force me to cover many of the giant, undocumented gaps Erlangers tend to encounter when trying to make the transition from Erlang beginner to OTP master, and I’ll undoubtedly learn a lot in the process myself. That last bit about self education is, of course, my own selfish motive for doing this. I have yet to find an aggregate body of Erlang best practices or collection of “common things people do by hand in Erlang and the idiomatic way to handle them in OTP”, and I really wish there was such a thing. I especially wish there were such a thing based on a single, non-trivial project instead of toy examples so that learners could get a grasp on why OTP matters by reading a real project instead of trying to assemble a mental model of the grander sculpture by examining bits of dust cast off by the chisel.
I chose a MUD as an example for ease of understanding, non-triviality (too many example systems are unrealistically small), freedom from graphical distractions, and the striking number of parallels between many MUD subsystems and real-world business, game, and social software. Hopefully work and real life don’t interfere to the point that I have to stop this mid-way through!
Why did you stop writing the Commentary? It is awesome!
Wow. Thank you for the kind words!
I haven’t stopped, but have slowed to a snail’s pace (I started a branch for v0.2 last week that is still uncommitted, actually). And I catch crap for that in email quite a bit. And I’m sorry.
The sad truth is that writing books and instructionals outside the mainstream pop-culture that passes for tech today simply doesn’t pay and I have a family. (That said, even writing mainstream, buzzword-compliant programming books barely pays enough to eek out a living.) Until I put myself in a situation where I can afford to contribute more time to this I’m stuck making very occasional edits and additions. Which sucks.
But I will get back to this with more intensity — eventually. It will probably be a few months from now, though; I am in the middle of a rather large and fully engaging project elsewhere. Not the happiest answer, but its the best I can do for now. :-/
It’s awesome indeed ! But of course I undeerstand that other things are more important