Larry Wall (born
September 27,
1954) is a
programmer and
author, most widely known for his creation of the
Perl programming language in 1987.
Education
Wall earned his
bachelor's degree from
Seattle Pacific University in 1976.
While in
graduate school at UC Berkeley, Wall and his wife were studying
linguistics with the intention afterwards of finding an unwritten language, perhaps in
Africa, and creating a
writing system for it. They would then use this new writing system to translate various texts into the language, among them the
Bible. Due to health reasons these plans were canceled, and they remained in the U.S., where Larry instead joined the
NASA Jet Propulsion Laboratory after he finished graduate school.
Accomplishments
Wall is the author of the
rn Usenet client and the nearly universally used
patch program. He has won the
International Obfuscated C Code Contest twice and was the recipient of the first
Free Software Foundation Award for the Advancement of Free Software in 1998.
Beyond his technical skills, Wall is known for his wit and often sarcastic sense of humour
[ ] , which he displays in the comments to his
source code or on
Usenet. For example: "We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise," and:
For example, it's been several decades now since a certain set of Bible translations came out, and you'll notice a pattern: the New English Bible, the New American Standard Bible, and the New International Version, to name a few. It's really funny. I suspect we'll still be calling them “new this” and “new that” a hundred years from now. Much like New College at Oxford. Do you know when New College was founded. Any guesses? New College was new in 1379.[ ]
He is the co-author of
Programming Perl (often referred to as the
Camel Book), which is the definitive resource for Perl programmers. He has edited the
Perl Cookbook. His books are published by
O'Reilly.
Wall's qualification as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional "variable", "function", and "accessor" he sometimes says "
noun", "
verb", and "
topicalizer".
Wall's
Christian faith has influenced some of the terminology of Perl, such as the name itself, a biblical reference to the "Pearl of great price" (
Matthew 13:46). Similar references are the function name
bless, and the organization of
Perl 6 design documents with categories such as
apocalypse and
exegesis. Wall has also alluded to his faith when he has spoken at conferences, including a rather straightforward statement of his beliefs at the August, 1997 Perl Conference and a discussion of
Pilgrim's Progress at the
YAPC (Yet Another Perl Conference) in June, 2000.
Wall continues to oversee further development of Perl and serves as the
Benevolent Dictator for Life of the Perl project. His role in Perl is best conveyed by the so-called
2 Rules, taken from the official Perl documentation:
- Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
- Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.
: Got that? Larry is always right, even when he was wrong.
Virtues of a programmer
Wall along with
Randal L. Schwartz and
Tom Christiansen writing in the second edition of
Programming Perl, outlined 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. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.
- 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. Hence, the second great virtue of a programmer. See also laziness and hubris.
- Hubris - 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.
See also