The Fourth Virtue

Anyone who has spent any time around Perl knows that the three virtues of a programmer are Laziness, Impatience, and Hubris. To understand why these are virtues, consider the fact that Larry Wall (the inventor of Perl) was so Lazy that he went as far as creating a language that would make a tremendous amount of formerly arduous tasks into one-line or one-page programs. I know of a couple guys that were so Impatient with a job that was running that they sat down, wrote a better program, and both the writing and the running of the new program were finished before the other process finished. And it takes a lot of Hubris, for example, to not only think that a bunch of relatively independently operating individuals can take on a multi billion dollar industry and produce a better operating system, but to also have the pride in craftsmanship to do it..

If you think about it, you'll realize that the best, the most inspired work you do usually stems from your living of these virtues. If you're truly Lazy, you write a modular solution that will not only get this job done but many others in the future--and you'll document it well so that you don't have to go to the effort of re-explaining it to others (or yourself, six weeks later). Impatience with slow or inadequate tools leads to the creation of vastly superior replacements, and Hubris makes us (correctly) believe that we can find a better way.

I would like to humbly submit my candidate for a fourth virtue (possibly even a Grand Unifying Virtue (GUV), in that it can be thought of as fostering the development of all of the others...). The virtue to which I refer is Selfishness. Remember how Larry was so Lazy that he invented a tool to make his work easier? Well, he followed that up by being Selfish enough to give the tool (and the source code) away for nothing. That prompted all kinds of people to use it and improve it and write modules for it, making Larry's life even better. Many other Selfish people have written great little (or big) tools and utilities and Selfishly made the source available to millions of other people. Human nature then takes its course and the tools get improved, making the world a better place for the original creator. A particularly Selfish individual, who was so Selfish as to want to encourage the rest of the world to behave Selfishly as well, even created a tool (the GPL) that in some ways is the very epitome of Selfishness. It's a method of guaranteeing that everyone that makes an improvement on Selfishly donated code must Selfishly provide that code to the community. If you prefer a slightly different flavor of Selfishness, the perl artistic license applies a two-pronged approach to Selfishness. Others can go GPL or bundle into commercial apps freely--meaning that a company that would never consider working under the GPL might still take what you did and make the world a better place with it.

As with the other virtues, there are false versions of Selfishness--the idea that you should keep your ideas/successes secret in the hopes of making money off of them, for example. This might seem to be self-serving, but it probably rarely is--just like when you come back six weeks later to the undocumented, terse, poorly-thought-out code you wrote when you thought you were being Lazy. False Selfishness has, in some cases, been a contributing factor in the securing of tremendous financial rewards. But you simply can't depend on that the way you can the intrinsic and even extrinsic rewards of true Selfishness, and hence, when you attempt to realize the rewards of false Selfishness, you necessarily end up having to pay a lot of attention to things that aren't really related to better tools, better code, and just generally having a good time. The truth of the matter is that being a little like That Really Rich Guy isn't anywhere near as much fun as being a little like Those Really Selfish Guys.

It's probably true that, just as everyone is said to have a good novel in him, everyone has a good software tool (or contribution to an existing one) quietly coding itself in her subconscious. If you're truly Selfish, you'll let it out. Besides, think about it--what, other than Selfishness, is a better guarantee that you will one day also be the epitome of Laziness, Impatience, and Hubris?

The author, who had the Hubris to think that he could add to the three great virtues, was Lazy enough to put this on the web (at http://fulcrum.org/philosophy/fourth_virtue.html ) for easy future reference. He Selfishly makes this text available under the Open Content License (see http://www.opencontent.org/), and claims that he is motivated by his Impatience to make the world a better place. But it's probably just as likely that he's merely Loopy.


This IS the high-graphics version.

msouth@fulcrum.org

Используются технологии uCoz