The three virtues of a pro­gram­mer, accord­ing to Larry Wall (in Pro­gram­ming Perl):

  1. Lazi­ness The qual­ity that makes you go to great effort to reduce over­all energy expen­di­ture. It makes you write labor-saving pro­grams that other peo­ple will find use­ful, and doc­u­ment what you wrote so you don’t have to answer so many ques­tions about it.
  2. Impa­tience The anger you feel when the com­puter is being lazy. This makes you write pro­grams that don’t just react to your needs, but actu­ally antic­i­pate them. Or at least pre­tend to.
  3. Hubris Exces­sive pride, the sort of thing Zeus zaps you for. Also the qual­ity that makes you write (and main­tain) pro­grams that other peo­ple won’t want to say bad things about.

Accord­ing to Philipp Lenssen (of Google Blo­go­scoped), good pro­gram­mers are not just lazy, but dumb, too.

This also puts me in mind of Jason’s thoughts on sim­plic­ity (via Kot­tke) as his com­pany, 37signals, approaches its 10th anniversary.

I’m reminded of what we’ve always known to be true: sim­pler is bet­ter, clar­ity is king, com­plex­ity is often man-made, and doing the right thing is the right way to do things.