Chapter 10. Diligence, Patience, and Humility
Larry Wall
We have a fondness for sayings in the Perl community. One of them is “There’s more than one way to do it.” This is true in Perl. It’s also true of Perl. And it’s true of the Open Source community, as the essays in this volume illustrate. I won’t tell you everything about how Open Source works; that would be like trying to explain why English works. But I can say something about the state of Perl, and where it’s going.
Here’s another saying: Three great virtues of programming are laziness, impatience, and hubris. Great Perl programmers embrace those virtues. So do Open Source developers. But here I’m going to talk about some other virtues: diligence, patience, and humility. If you think these sound like the opposite, you’re right. If you think a single community can’t embrace opposing values, then you should spend more time with Perl. After all, there’s more than one way to do it.
Written languages probably began with impatience. Or laziness. Without written language, you had to meet another person face to face to communicate with them, or you had to persuade another person to convey your message for you. And there was no way to know what had previously been said except to remember it. But written language gave people symbols, symbols that could stand for things—if the community could agree on what the symbols stood for. So language requires consensus. It’s something a group can agree on. It is, in short, a symbol that ties ...