I caught up with Greg B yesterday. He lives and works in London, I live in Scotland, but we both grew up in the same part of New Zealand, on the far side of the picture below, but a few years apart. We didn't know each other in New Zealand and we only met because our professional interests (TOC and Software development) overlap. Greg is a big thinker and a big doer, a hands-on senior, manager with a an excellent grip on the nitty gritty technical side of development.
Greg pointed me towards Derek Silver's article
about how he ditched Ruby on Rails in favour of PHP. Even if you know little about programming it's worth a 2 minute read. The 10 second version is that Derek cancelled a 2 year project which was rewriting CDbaby.com in Ruby on Rails then rewrote it in PHP (because it suited him) in 2 months.
[Technical confession: he says "Rails", I assume he means "Ruby on Rails" ... I may be wrong.]
There are 78 A4 pages worth of comments, and you could bogged down in bogginess of it all if you tried to read them all, so let me tell you what I took from it: Derek, a good (but I think, self-taught) PHP coder, learned to write far, far better code and massively increased his productivity, because he learned how to write code by working with Ruby on Rails for a while. As he put it, "It’s the most beautiful PHP I’ve ever written, all wonderfully MVC and DRY, and and I owe it all to Rails."
Depending on your background you may come to many other conclusions about Derek's story, but here's an intriguing thought: Could most programmers become better programmers (considerably more productive) by working with Ruby on Rails for a while?
I've suddenly realised this is very, very important: COULD MOST PROGRAMMERS become more PRODUCTIVE by working with RoR for a while?
Please email me your thoughts or post comments ...
Is there a better way to improve the design skills of programmers? Would you need to work with a word class RoR programmer to learn RoR's good stuff (mvc, dry, etc)? Could COBOL programmers benefit? Could C programmers?
This could be the one thing that's missing from my book: a way to teach programmers how to write better, more malleable code.