Wednesday, April 21, 2010

a quick aside

This blog is supposed to be about my running progress, and it generally is. But this post is about something that fascinates me even more than running and has slightly more, you know, social utility: Quality software and the people who create it. I'll get back to the running after this quick aside.

Growing up, my mother used this cliché quite a bit: "a poor worker blames his tools." Maybe. In the programming domain, I think Paul Graham has it right when he says: good workers don't use bad tools. Here is the exact passage (Graham uses 'programmer' and 'hacker' interchangeably):
"What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure... The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python. And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages. Business types prefer the most popular languages because they view languages as standards."

But languages aren't standards. Anyone who chooses Java over Python because Java is more 'standard' or because it has a bigger 'developer community' should not be in a position to make such decisions. The same goes for C#. Python is a better tool, period. There is no legitimate argument in favor of Java or C# over Python.

Graham makes another excellent point about a curious sort of programmer morality: "The best programmers can work wherever they want. They don't have to work for a company they have qualms about... An organization that wins by exercising power starts to lose the ability to win by doing better work. And it's not fun for a smart person to work in a place where the best ideas aren't the ones that win."

I don't think I'm a great programmer, partly because I don't refuse to work on projects with bad tools and infrastructure. Yet.

I think I'm an above-average programmer. I hope I'm an above-average programmer. Someday I hope to be a great programmer. The good news is that I'm smart enough to recognize bad ideas.


Tuesday, April 6, 2010


The fun begins in 28 days. I’ve been careless with my training log so far because base mileage and striders just aren’t worth the effort of documentation. Everything changes on May 3. No mistakes, no excuses, no letting up.

Sheehan says: "This way of life is addictive... So the victim has little choice except to continue and even escalate the activity."