Sunday, May 10, 2009

Uncle Bob just wanna have fun!

Uncle Bob Martin's keynote @ RailsConf'09 is definitely a very remarkable one. What keynote to expect from a General Yamamoto-class of software developer with great communication skills? At least some good advices and food for thought.

The title was "What killed Smalltalk Could Kill Ruby", but don't hang too much on it as much some people did. The majority of the keynote was focused on exposing how decent test suites and TDD adoption generates a positive-clean-code-feedback.

Few points of the presentation pissed Smalltalkers for obvious reasons. Usually "Z language is dead" statements immediately pisses the Z-language hackers. Before spitting flames try to take a deep breath and see the thing on a different perspective(and with a bit of humor, of course).

It's fairly known that "No existing language will die in a long time". An interpretation for "Killed" in the context of programming languages can be: "a language that had lost its lift-off momentum to occupy the front row of IT industry technologies". I believe that Smalltalk and Common Lisp are two examples of it.

Sincerely , i didn't read any tone of "Smalltalk was killed because of the lack of testing" on the presentation as some people did. What i understood is that testing provides you the control mechanism to properly harness the power of languages like Ruby and Smalltalk. On such languages with high degree of expressive freedom it becomes "too easy to make a mess". In other words: you can fly high if you don't have proper discipline.

Fabio Kung published an interesting analogy that came to me a while ago when reading a chapter of The Ruby Programming Language. "With great power comes great responsibility" said Uncle Ben and so did Uncle Bob.

[...] Professionalism is honor, Professionalism is being honest with yourself and Disciplined in the way you work [...]

Bob just nailed it. These are the main attitudes i have been working hard to improve right now. A couple of years ago, when i started to code a solution, my mind entered in a turmoil state trying to unroll the entire thing at once, much like a hungry beast attacking its prey. The final result was that i often got lost in the ideas entering an analysis-paralysis state. Today, i have far better control of the beast(sometimes it leaves the cage.. lol). I'm lucky enough to pair program with great people that gives me feedback when that happens.

I see TDD as a software development equivalent to Ritalin. A way of achieving discipline and delivering quality software with one shot. It's no silver bullet, but surely helps a lot.

Take Bob's words seriously , but not too much. Allow the guy to be a little ironic and humorous sometimes (e.g when he was speaking on Academic Smalltalk adoption).

Uncle Bob just wanna have fun and watch his nephews writing clean code :)



Post a Comment

<< Home