Larry Wall's Talks: Revision 11
Yearly "State of the Onion" Talks
- State of the Onion talks. These are Larry Wall's yearly Perl status reports, with much humor-infested commentary on Perl 6 design philosophy, processes, and illuminating insights.
"Perl, the first postmodern computer language" (1999)
- This talk was presented at LinuxWorld Spring 1999. Although it predates the formal birth of Perl 6, it very much reflects the thinking that prompted the initiation of Perl 6.
- Some notable quotes:
- “Perl is humble. It doesn't try to tell the programmer how to program. It lets the programmer decide what rules today, and what sucks. It doesn't have any theoretical axes to grind. And where it has theoretical axes, it doesn't grind them. Perl doesn't have any agenda at all, other than to be maximally useful to the maximal number of people. To be the duct tape of the Internet, and of everything else.”
- “Perl does one thing, and does it well. What it does well is to integrate all its features into one language. More importantly, it does this without making them all look like each other. Ducts shouldn't look like girders, and girders shouldn't look like ducts.”
- “The very fact that it's possible to write messy programs in Perl is also what makes it possible to write programs that are cleaner in Perl than they could ever be in a language that attempts to enforce cleanliness.”
- “When I started designing Perl, I explicitly set out to deconstruct all the computer languages I knew and recombine or reconstruct them in a different way, because there were many things I liked about other languages, and many things I disliked. I lovingly reused features from many languages. (I suppose a Modernist would say I stole the features, since Modernists are hung up about originality.) Whatever the verb you choose, I've done it over the course of the years from C, sh, csh, grep, sed, awk, Fortran, COBOL, PL/I, BASIC-PLUS, SNOBOL, Lisp, Ada, C++, and Python. To name a few. To the extent that Perl rules rather than sucks, it's because the various features of these languages ruled rather than sucked. … But note something important here. I left behind more than I took. A lot more. In modern terms, there was a lot of stuff that sucked. … I picked the feature set of Perl because I thought they were cool features. I left the other ones behind because I thought they sucked. … More than that, I combined these cool features in a way that makes sense to me as a postmodern linguist, not in a way that makes sense to the typical Modernistic computer scientist.”
"Present Continuous, Future Perfect" (2006)
1 Introduction - Where Perl Draws Ideas From
2 How Perl Entered the Unix Universe (2:06)
3 Why Perl Evolved As It Did (3:54)
4 Irrationalities in Other Languages (5:54)
5 Linguistics (8:22)
6 Anthropology (11:10)
7 Other Sciences (12:14)
8 Fan Mail (14:42)
9 Future Perfect (17:25)
10 Goals and Meta-Goals (20:33)
11 Simplifications (24:00)
12 Regularizations (27:49)
13 Object Orientation
14 Functional Programming
15 Regular Expressions
"Larry Wall On Perl, Religion, and..." (Slashdot interview, 2002)"
- Some notable quotes:
- Perl has acquired new skills over the years, and people have been using Perl to do all sorts of things that are arguably at the limits of its capabiliites. The solution to that is not to stop people from doing that, but to increase Perl's dynamic range.
- We can't eliminate the necessary complexity, but we can hope to get rid of some of the needless complexity. That will make everything easier. Well, most everything.... ... I'm really under no illusions that we can make everything easier at once. There's no such thing as a perfect language. Merely making a more expressive language means it's in some sense more difficult to learn to express yourself responsibly. That's the price of power. Manhattan will always be more difficult to understand than a set of beads.
- Language designers tend to look at how experts program and then think that everyone ought to learn to program that way from the start. That's a bit like expecting a new surfer to do well on 40 foot waves. Some will make it, but most will wipe out. ... Perl is designed to help people learn the bits of programming they need right now without forcing them to learn the techniques they aren't ready for. But when they are ready for them, Perl tries to be there too. We just don't tell the beginners that the speedometer on their golf cart wraps around several times.
- Perl matches the way I think pretty well, because what I mostly want in a computer language is a wide dynamic range. I want a language in which you can say both dirty, low-level stuff and fancy, high-level stuff. I want a language where both baby-talk and fluency are acceptable. Other computer languages tend to try to level those distinctions.
- My goal is (and has always been) for Perl to be as useful as possible.
- Making Perl the best tool for growing programs from small to large is actually one of the underlying design goals of Perl6.
- Perl is obviously my attempt to help other people be creative. In my little way, I'm sneakily helping people understand a bit more about the sort of people God likes. ... Going further, we have the notion that a narrative should be defined by its heart and not by its borders. That ties in with my linguistic notions that things ought to be defined by prototype rather than by formula. It ties in to my refusal to define who is or is not a "good" Perl programmer, or who exactly is or isn't a member of the "Perl community". These things are all defined by their centers, not by their peripheries. ... The philosophy of TMTOWTDI ("There's more than one way to do it.") is a direct result of observing that the Author of the universe is humble, and chooses to exercise control in subtle rather than in heavy-handed ways. The universe doesn't come with enforced style guidelines. Creative people will develop style on their own. Those are the sort of people that will make heaven a nice place.
LWN.net Interview at Japanese Perl/Ruby Conference (2001-01-07)
- Some notable quotes:
- "And the problems that I really like to solve are our cultural problems." (Explains the origins of dual licensing as an example.)
- "Perl was designed to work more like a natural language. It's a little more complicated but there are more shortcuts, and once you learned the language, it's more expressive."
- "You can calculate very conservatively that any individual programmers probably are saving tens of thousands of dollars a year, and if there's a million or so Perl programmers out there, you multiply by that and then you're talking about multiple billions of dollars that people are saving around the world because of Perl every year."
- "I think the real problem with software patents is that they don't provide equal protection. If you're a large corporation, you can afford to pay the money to register patents, but if you're an individual like me, you can't. So I think it really works against the open source movement. I'd rather see them be protective with copyrights and trade secrets, but not patents."
- "I'm interested in giving Perl away. I want people to use Perl. I want to be a positive ingredient of the world and make my American history. So, whatever it takes to give away my software and get it used, that's great. That's why I did the dual licensing. One license was to agree with the free software people, and the other license was to agree with the open source people. But those are both means to an end."
- "I find it very challenging to do writing, but that's because my standards are pretty high. I think that writing should not just convey facts, but also be another work of art. That is another way in which I hack on culture. I think that the camel book raised the standards in the community, for computer textbooks. It's important that they do not just convey the facts in a dry fashion, but also they are entertaining to read at the same time. That really is practical because if you're going to write a book like the camel book, it has to be for a broad audience. Then you have to go slow enough so that the novices can keep up, but if you go that slow, the experts will get bored. But if you throw jokes every now and then, they'll read it over for jokes :-) and the occasional facts that they might have not known yet. So it'll work out."
Natural Language Principles in Perl
- Learn it once, use it many times
- Learn as you go
- Many acceptable levels of competence
- Multiple ways to say the same thing
- No shame in borrowing
- Indeterminate dimensionality
- Local ambiguity is okay
- Punctuation by prosody and inflection
- Disambiguation by number, case and word order
- Discourse structure
- No theoretical axes to grind
- Style not enforced except by peer pressure
- Cooperative design
- "Inevitable" Divergence
Conceptual Chunking in Perl