The Virtues of a Programmer

The Camel Book

According to Larry Wall, the creator of Perl and owner of one of the world’s most impressive moustaches, a great programmer is a paragon of three virtues.

What Larry calls virtues are considered by most world societies to be vices. The virtues of a programmer are:

  • Laziness
  • Programmers do not like to work. If a programmer has to do the same task more than once, there is no reason not to automate it. Some of the best systems administrators I know practice a sort of Taoist Administration Technique. They administer without administrating, because the machine does the work.

  • Impatience
  • Computers are notoriously slow at doing the things that they allegedly can do quickly. Programmers will go to great lengths to optimize their code to make it faster.

  • Hubris
  • This virtue is likely the cause of open source software. Any code you can write, I can write better. Pride in the software that a programmer produces is kind of a big deal.

Related Posts:

This entry was posted in Programming and tagged , , . Bookmark the permalink.

3 Responses to The Virtues of a Programmer

  1. Veg says:

    Only an idiot would try to argue against Larry Wall, but maybe that explains why I don’t agree with his “hubris” point.
    Being an idiot, I’d say that hubris doesn’t enter the equation. Hubris is a constant amongst all programmers. In fact the best programmers I’ve ever dealt with were severely lacking in hubris. Arrogant: yes. Odd: yes. But no hubris. The people with the hubris tend, in my experience anyway, to be turds.

    The only hubris required is to believe in yourself. And most programmers do.

    • admin says:

      Interesting point, Veg. Many programmers think their code sucks (something we’ve talked about before). Although there is often a “not invented here, I can do better” attitude that perhaps Larry was getting at?

  2. Phil Pollard says:

    The “Hubris” portion I’ve heard explained a few ways. I find the most accurate to be something along the lines of: The hubris to try and write code that will be used and will work well. Code that others can read and need not change. To write really good code that will live and work well. The hubris to be that good.