Wednesday, June 08, 2005

Smart is as smart does

A recent posting about preferring simple over hard problems by David Heinemeier Hansson (of Rails fame), made me think about the way I ended up becoming a web application developer:

I would likely not fit into the celebration of hard problems and mathematical aptitude that places like Google, Microsoft, Joel Spolsky, and others see as the filter for good programmers.


I certainly identify with this statement. After trying to study Computer Science for a term or two, I finally had to face the fact that I didn't want to spend four years dealing with hard CS problems. What I really liked was doing the stuff that was interesting to me with my computer, so I changed my major to another one that allowed me to dedicate time programming and learn whatever I found interesting and fun at the time. In the early 90's that fun thing turned out to be the web.

My interests and the constant desire to have fun doing my work, lead me to Linux and later to Python and Smalltalk and dynamic languages in general. Now, David says (tongue in cheek, I'm sure) that he is not so clever because he prefers to solve the simple problems, but these comments of his made me remember a 2004 article by Paul Graham in which he explains why he said at some conference that you can get smarter programmers for a Python project than for a Java project:

I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.


This, of course, applies as well to many dynamic languages, like Ruby and Smalltalk. So David, I'm sure you'll agree that sometimes it's smarter to be a little less smart. By using simpler tools like Ruby and Rails to solve these simple problems that you crave, you are actually helping many of us simple minded folks to solve our own simple problems, and even look (kind of) smart in the process.