After my previous post I started reading through the many comments to this post:
What you’re not getting about Ruby
Here’s my take at a definition of good vs bad developer:
* A bad developer will moan about not having the compiler tell him about an undefined variable when working with a dynamic language. A good developer will just use testing and other appropriate tools to make sure the code is correct.
* A bad developer will moan about 20.minutes.ago and argue that 20 should be an argument to a ‘make minutes’ functions because this is how 99% of all developers expect it to be. A good developer will embrace the simple, concise and clean new way of writing code and use discipline to not let this grow out of hand.
Meta programming is a topic in itself. Here the good, the bad and the ugly are sometimes hard to differentiate. I would argue that some of the meta programming stuff going on in the currently important (and hyped) Ruby libraries (RoR et al) is going too far. But somehow it’s OK. Because those guys involved are OK with it. Overall, however, I would argue that a truly good developer would not overuse meta programming. “method_missing” is a powerful but dangerous beast.
One more definition of a bad programmer: Someone who uses PHP. Check this example. Posted in response to the 20.minutes.ago Ruby example:
<?php
$d = strtotime("20 minutes ago");
?>