“Laziness, Impatience & Hubris”
I’ve found a new tagline for my blog (and for me as a person/programmer to some extent). While casually browsing YouTube I stumbled across some videos of Larry Wall, creator of the Perl programming language, talking about programming. In one of the videos he mentions how he, in the “Camel Book” (a book about Perl programming) had described the three virtues of a programmer as being laziness, impatience and hubris. At first, these may seem like bad things, but together with his explanation, they actually make a lot of sense.
Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labour-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. Hence, the first great virtue of a programmer.
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 that pretend to. Hence, the second great virtue of a programmer.
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. [Also, the thing that makes you write programs to do something that’s already been done, because you believe you can do it better — Wim.] Hence, the third great virtue of a programmer.