The Five Stages of Learning Erlang

Phase 1 - You discover erlang!
You get erlang!
Its glorious!
Its concurrent!
Its functional!
There are books!
All your previous code is crap!
You had no idea what you were doing till now!
Phase 2 - You discover OTP!
You get OTP!
Its glorious!
It makes writing applications so easy!
You can reason about all the stuff you were doing so much easier!
All your previous code is crap!
You had no idea what you were doing till now!
Phase 3 - You discover Common Test!
You get CT!
Its glorious!
It makes building reliable systems so easy!
You can extend your applications into hitherto unknown realms!
You can focus on the module you are working on, and not be constantly freaking out about other dependencies!
All your previous code is crap!
You had no idea what you were doing till now!
On a bit of a serious note, CT is what separates architects from developers (*).
CT is when you really, really start groking the Buddha-nature of erlang - Fault Tolerance.

UPDATE: Two more stages added per Jesper Louis Andersen

Phase 4 - You discover Property Testing!
You get Property Testing!
Its glorious!
It makes testing edge cases so much simpler!
Hell, it makes testing so much more robust!
All your previous code is crap!
You had no idea what you were doing till now!
Phase 5 - You discover Stateful Property Testing!
You get statem!
Its glorious!
You can actually test state transitions now!
Hell, testing complex interactions between multiple systems is now a walk in the park!
All your previous code is crap!
You had no idea what you were doing till now!

(*) - Developing is all about depth of knowledge, while Architecture is all about breadth of knowledge.
You can become a very, very good developer by just banging away at the language/environment for a while (10K hours? Whatever...).
But nothing, nothing, replaces sheer experience - and battle scars! - when it comes to being a good Architect.  Its those mistakes that you make over the years that really show you what works, when it works, how to make it work, etc. etc.
And yes, these are my semantics.  Then again, its my blog, so there...


Comments

Popular posts from this blog

Cannonball Tree!

Erlang, Binaries, and Garbage Collection (Sigh)

Visualizing Prime Numbers