Dear new developer,
Larry Wall has created foundational software (perl, patch). He coined the three virtues of a programmer:
- 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.
- 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.
- Hubris: The quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
These may seem crazy. Who wants to be seen as lazy, impatient or full of hubris?
But if you think deeply about it, Larry is saying that laziness makes you work in the short term to save effort in the long term. That impatience makes you write better code because computer time is less valuable than your time. And that hubris makes you want to develop software that you can stand proudly behind.
Makes a bit more sense, no?
2 thoughts on “Laziness, impatience, hubris”
The link to threevirtues.com seems to have changed, or did you mean to link to that site anyway?
Thanks! I updated it. Not sure whether I typoed it the first time or if the domain has changed. Here’s the proper link: https://thethreevirtues.com/