The Five Stages of Learning Erlang
Phase 1 - You discover erlang!
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 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...
You get erlang!Phase 2 - You discover OTP!
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!
You get OTP!Phase 3 - You discover Common Test!
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!
You get CT!On a bit of a serious note, CT is what separates architects from developers (*).
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!
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!Phase 5 - You discover Stateful 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!
You get statem!(*) - Developing is all about depth of knowledge, while Architecture is all about breadth of knowledge.
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!
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