Lazy Programmer

I was talking with someone once about a project and as we were wrapping up, I made a lighthearted self deprecating comment about the best developers being lazy ones.

Initially, I thought I’d misread the tenor of our conversation, because he seized on my comment with a vengeance. He was suddenly kind of shockingly angry. Quickly backpedaling, I explained it was a reference to an old humorous developer truism, an entertaining way to express a desire to improve workflow and reduce repetition, etc, etc.

He brought it up repeatedly after that, and it became clear that he was simply looking to end our time together. It was not a good fit. Working with him was a master class in toxicity. Fortunately it wasn’t long lasting.

Back to the lazy programmer: I couldn’t recall in the moment what specifically I was referencing, but I looked it up later. It was from the three great virtues of programmers as stated by Larry Wall. It’s NOT a quote from Bill Gates.

โ€œI choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.โ€

– (not) Bill Gates

There are articles and think pieces and I stopped counting at 20 Reddit threads about this misattributed quote. Looks like it might have come from a car guy in the 1940s. More mildly amusing evidence of fetishizing billionaires.

That brings us to Larry Wall. A much richer (though not literally) reference. Larry Wall is the creator of the Perl programming language, the man who literally wrote the book on it as well. He’s a well known and loved roughish character. Part of the old guard of developer/hacker culture. He’s kind of a software engineer’s hero, or was at least to a couple of guys that taught this noob much back in the day.

โ€œWe will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.โ€

-Larry Wall

This is from “the Camel Book” – The O’Reilly-published Perl bible. But he doesn’t stop there. He defines these virtues as:

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. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris. (p.609)

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. Hence, the second great virtue of a programmer. See also laziness and hubris. (p.608)

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. Hence, the third great virtue of a programmer. See also laziness and impatience. (p.607)

– Programming Perl, 4th Edition

There. Happy to have gotten that off of my chest, and now that I’ve written this I can cite my source next time.