Laziness, Impatience, Hubris

The three virtues of a programmer, according to Larry Wall (in Programming Perl):

  1. Laziness The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it.
  2. Impatience The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to.
  3. Hubris Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about.

According to Philipp Lenssen (of Google Blogoscoped), good programmers are not just lazy, but dumb, too.

This also puts me in mind of Jason’s thoughts on simplicity (via Kottke) as his company, 37signals, approaches its 10th anniversary.

I’m reminded of what we’ve always known to be true: simpler is better, clarity is king, complexity is often man-made, and doing the right thing is the right way to do things.