Perl, the first postmodern computer language
Perl, the first postmodern computer language
The following is the text of Larry Wall’s talk at Linux World on Wednesday, March 3. He explains why Perl is a fitting language for the postmodern era. As a member of the audience commented: “Another mindbender from Larry.”
Highlights (Which Should Convince You To Read the Text in its Entirety)
- I’m here to talk about why Perl and Linux have both been so successful.
- I still feel like I have to justify Perl all the time to a lot of people.
- The Modernist believes in OR more than AND. Postmodernists believe in AND more than OR. … At least we can use Perl as an example. In Perl, AND has higher precedence than OR does. There you have it. That proves Perl is a postmodern language.
- 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.
- When’s the last time you used duct tape on a duct?
- One of the characteristics of a postmodern computer language is that it puts the focus not so much onto the problem to be solved, but rather onto the person trying to solve the problem.
- 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.
- We’re not objective about Perl, but as postmodernists, we freely admit that we’re not objective, and we try to compensate for it when we want people to think we’re objective. Or when we want to think ourselves objective. Or, at least, not objectionable.
- We’ve actually been doing open source for a couple of decades now. Why is it suddenly taking off now? Why not twenty years ago. Linux could have been written twenty years ago, albeit not by Linus.
- As Heidi would say: ‘Tsall good. Except when it sucks.
Thank you all for coming. I was hoping the title of this talk would scare away everyone who shouldn’t be here. Obviously I should have made up a scarier title…
Perl meets Godzilla?
Bambi meets Perl?
I just did an interview for Feed Magazine. When I read their intro to it, I was interested to see that they made reference to my ``curious speeches.” I’ll take that as a compliment. Why I take it as a compliment is the subject of this speech. That’s assuming this speech actually has a subject, which is still in doubt. Hey, at least it has a title. That’s something.
By the way, I’m planning to leave some amount of time at the end for Q and A, so you should start thinking about the Q part while I’m talking.
When I was invited to talk here, it occurred to me that most of the people here would be more interested in Linux than in Perl, so, in the interests of universal harmonic convergence, I thought I should talk about both Perl and Linux. To do that, I had to figure out what Perl and Linux have in common. Besides the obvious, of course.
Obviously, both Perl and Linux owe a lot to Unix culture, but this is well documented. If I merely pointed out the obvious commonalities, I’d have to talk the whole time about things you can find out from the manuals. (Or should I say, things you ought to be able to find out from the manuals? Whatever.)
I’m not here today to teach you how to use Perl or Linux. I’m not here to teach you what Perl or Linux are.
I’m here to talk about why Perl and Linux have both been so successful. Note that I’m measuring success here not so much in terms of numbers of users, but in terms of satisfaction of users.
So I started thinking about deeper connections between Perl and Linux, and that led me to think more about the deeper reasons for writing software. And that led to the subject of this talk. I’m going to start off talking by about postmodernism. After that, I’ll switch to talking about postmodernism. And at the conclusion, I’ll return to the subject of postmodernism.
However, since this talk is itself a postmodern work of art, I’ll be dragging in all sort of other cool things along the way, so maybe you won’t fall asleep.
Nowadays people are actually somewhat jaded by the term ``postmodern”. Well, perhaps jaded is an understatement. Nauseated might be more like it. But, anyway, I still distinctly remember the first time I heard it back in the ‘70s. I think my jaw fell and bounced off the floor several times. To me it was utterly inconceivable that anything could follow modern. Isn’t the very idea of ``modern” always associated with the ideas ``new” and ``now”?
The idea was so inconceivable to me that it took me at least ten seconds to figure it out. Or to think I’d figured it out. As a musician, the pat answer occurred to me almost immediately. I was familiar with the periods of music: Baroque, Classical, Romantic, and Modern. Obviously, if there were to be a period of music following the Modern, it would have to be called something other than Modern. And postmodern is as good a name as any, especially since it’s a bit of a joke on the ordinary meaning of modern. Obviously the Modern period was misnamed.
But, as I said, that was the pat answer. The Modern period was not misnamed. True, the ordinary word ``modern” is associated with ``new” and ``now”, but the historical period we call Modern chose to associate itself with the ``new” and the ``now” in such a deep way that we actually see the breakdown of the whole notion of periods. The Modern period is the period that refuses to die. The world is now an odd mix of the Modern and the postmodern. Oddly, it’s not just because the Modern refuses to die, but also because the postmodern refuses to kill the Modern. But then, the postmodern refuses to kill anything completely.
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.
A couple of days ago I was discussing all this with my daughter on the way to school. As usual, I turned on the radio to hear the news, and Heidi immediately started surfing all the music stations. Since this is one of the perils of fatherhood, I only said, ``I have to talk about postmodernism on Wednesday. What should I say?”
She said, ``Like, it’s all about how you don’t have justify everything with a reason anymore. You can just put in stuff because you like it, you know, because it’s cool. With Modern stuff you always had to justify everything.”
I said, ``I still feel like I have to justify Perl all the time to a lot of people.”
She settled on a station with some interesting music, and said, ``This is Dave Matthews’ Band. The thing that’s really cool about him is that he, like, went out and found all these different artists who have different styles, and combined them all in ways you’ve never heard before.”
I said, ``Isn’t it interesting how postmodernism has become so much a part of our culture that it’s sort of fading into the woodwork?”
Heidi frowned and said, ``Dude, dad, it’s not like it’s some kind of a fad. Postmodernism is deeper than that–it really is the culmination of everything that went before it. Like, it’s all about coming full circle. It’s not like we’re going to stop wanting to do that next week.”
I said, ``I suspect you’re right. After all, the various earlier periods of music were measured in centuries.”
``It’s not just music,” she said.
``Well, of course not,” I replied, ``all these things go together, but some disciplines change at different rates. The reason I’m giving this talk on Wednesday is because I think there’s still a big streak of Modernism running through the middle of computer science, and a lot of people are out of touch with their culture. On the other hand, I’m not really out to fight Modernism, since postmodernism includes Modernism as just another valid source of ideas. In fact, Perl contains lots of modern ideas from computer science. Along with all the rest of the ideas in there.”
Heidi said, ``You wanna know something really funny. In my IMP class, our class slogan is, ‘There’s more than one way to do it.“’
``You’re kidding,” I said. [I should also say that that IMP stands for Interactive Math Program, which is a math curriculum in which you sort of learn everything at once. In sort of a postmodern way.] Anyway, I said, ``You’re kidding.”
``No,” she said, ``That’s why IMP is better for math students like me–we learn better when we can see the big picture, and how everything fits in. The old way of learning math never gave you any context”.
While I was digesting this, and thinking about how it applied to computer science, she went on, ``Well, it’s like, you know, we have this saying at school, when somebody gets uptight about something, we say: ‘Tsall good. If someone is depressed, we say: ‘Tsall good.“’
``But you don’t actually think everything is good, do you?”
``No, of course not.”
``Are you saying that everything has good elements in it?”
``No, Dad, I think when we say that, we’re saying that, overall, things are good. Like, look at the big picture, don’t just focus in on the two or three bad things that are happening to you right now.”
I report this conversation to you not just because I think my kids are cute and smart, but also because I think it’s important that we know where our culture is going, and because it’s our kids that will shape our culture in the future. I don’t think I could have defined postmodernism better than Heidi. Look at the big picture. Don’t focus in on two or three things to the exclusion of other things. Keep everything in context. Don’t go out of your way to justify stuff that’s obviously cool. Don’t ridicule ideas merely because they’re not the latest and greatest. Pick your own fashions. Don’t let someone else tell you what you should like. ‘Tsall good.
That’s all well and good, but I ask you, if it’s all good, why, in every other breath, does my daughter say ``That sucks.“?
There’s a mystery here, and if we can fathom it, perhaps we’ll learn a thing or two. I think that what’s going on here is that our culture has undergone a basic shift, one that is actually healthy. It used to be that we evaluated everything and everyone based on reputation or position. And the basic underlying assumption was that we all had to agree whether something (or someone) was good or bad. Most of us actually used to believe in monoculturalism. Although even back then, we didn’t really practice it. And in fact, you could argue that the whole point of Modernism was to break our cultural assumptions. We could argue all day long about whether postmodernism came about because Modernism succeeded or because it failed. As a postmodern myself, I take both sides. To some extent.
This would bother a Modernist, because a Modernist has to decide whether this is true OR that is true. The Modernist believes in OR more than AND. Postmodernists believe in AND more than OR. In the very postmodern Stephen Sondheim musical, _Into the Woods_, one of the heroines laments, ``Is it always or, and never and?” Of course, at the time, she was trying to rationalize an adulterous relationship, so perhaps we’d better drop that example. Well, hey. At least we can use Perl as an example. In Perl, AND has higher precedence than OR does. There you have it. That proves Perl is a postmodern language.
But back to the monoculturism of Modernism, or rather the assumption of monoculturalism. Nowadays we’ve managed to liberate ourselves from that assumption, by and large (where by and large doesn’t yet include parts of the Midwest). This has had the result that we’re actually free to evaluate things (and people) on the basis of what’s actually good and what’s actually bad, rather than having to take someone’s word for it.
More than that, we’re required to make individual choices, the assumption being that not everyone is going to agree, and that not everyone should be required to agree. However, in trade for losing our monoculturalism, we are now required to discuss things. We’re not required to agree about everything, but we are required to at least agree to disagree. Since we’re required to discuss things, this has the effect that we tend to ``deconstruct” the things we evaluate. I’ll talk more about the pros and cons of deconstructionism in a bit, but let me just throw out an example to wake you up.
The most deconstructed man on the planet right now is Bill Clinton. The public, and later the Senate, chose to evaluate Bill Clinton’s morality separately from Clinton’s fitness to govern. I’m not going to comment on whether I agree with that decision, but I’d just like to point out that this could not have happened thirty or forty years ago. We were not postmoderns back then. We had to have a whole president, or no president, so hanky panky going on back then as there is now). Everything used to be in black and white, like our TVs. We kept our presidents looking good until we got one we couldn’t make look good, and then everyone switched to making the president look bad for a while. But we never did deconstruct Nixon the way we’ve deconstructed all the presidents since Nixon. Nixon is still monolithic, even though we’ve managed to bypass him and deconstruct Kennedy in hindsight. Perhaps it’s all related to the saying that ``Beauty is skin deep, but ugly goes right to the bone.”
If that’s the case, I pity the person who’s only skin and bones.
Now you may be wondering what all this has to do with Perl. So am I. I’ll think of something presently.
While I’m thinking about the next thing to say in my talk, let me say a bit more about deconstructionism. I do not view deconstructionism as a form of postmodernism so much as I view deconstructionism as the bridge between Modernism and postmodernism. Modernism, as a form of Classicalism, was always striving for simplicity, and was therefore essentially reductionistic. That is, it tended to take things to pieces. That actually hasn’t changed much. It’s just that Modernism tended to take one of the pieces in isolation and glorify it, while postmodernism tries to show you all the pieces at once, and how they relate to each other.
For instance, this talk. If this were a Modern talk, I’d try to have one major point, and drive it into the ground with many arguments, all coherently arranged. Instead, however, I let you see that there’s a progression in my own thought process as I’m writing. I would pause in my talk at the same point that I paused in my thought process. If I were a journalist, I’d spend as much time talking about my angst in covering the story as I’d spend covering the actual story. And if I were building a building instead of writing a talk, I’d let the girders and ductwork show. These are all forms of deconstructionism.
I’m still trying to think about how this relates to Perl, by the way.
More time passes…
I first heard about postmodernism in the late ‘70s at Seattle Pacific University from my wife’s Lit Crit professor, Dr. Janet Blumberg. Postmodernism came early to literature, so it’s no surprise that we heard it first from a literary critic. By the way, don’t think of literary critics like you think of theatre critics. Literary critics usually know what they’re talking about.
Even if they’re wrong.
Anyway, we heard it first from Dr. Blumberg, who was never wrong, so naturally we first thought about in in terms of literature. In fact, most people still think of postmodernism as a kind of weird literature. But postmodernism was also coming along in architecture too, as we were soon to find out. Seattle Pacific was wanting to build a new science and math building, so they decided to recycle an old warehouse down by the ship canal. Note the first element of postmodernism there–they were reusing something old, taking the good parts, and leaving behind the bad parts, though they probably didn’t say to themselves, ``This rules,” or ``That sucks.” But I’m sure they thought it. Anyway, they combined the old with modern ideas about having a large open lab inside, and making the whole building solar heated. They made it a comfy place at the same time, with a sunken study area containing sofas. And they made all the girders and ductwork show, because they thought it was cool. They also did it because it was postmodern, though they didn’t know that yet.
I think I know now how this relates to Perl.
When I started writing Perl, I’d actually been steeped in enough postmodernism to know that that’s what I wanted to do. Or rather, that I wanted to do something that would turn out to be postmodern, because you can’t actually do something postmodern, you can only really do something cool that turns out to be postmodern. Hmm. Do I really believe that? I dunno. Maybe. Sometimes. You may actually find this difficult to believe, but I didn’t actually set out to write a postmodern talk. I was just going to talk about how Perl is postmodern. But it just kind of happened. So you get to see all the ductwork.
Anyway, back to Perl. 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. Now, on the feature set issue, Perl is always getting a lot of bad press.
I think people who give bad press to Perl’s feature set should have more angst about their reporting.
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. Recall that the essence of Modernism is to take one cool idea and drive it into the ground. It’s not difficult to look at computer languages and see which ones are trying to be modern by driving something into the ground. Think about Lisp, and parentheses. Think about Forth, and stack code. Think about Prolog, and backtracking. Think about Smalltalk, and objects. (Or if you don’t want to think about Smalltalk, think about Java, and objects.)
Think about Python, and whitespace. Hi, Guido.
Or think about shell programming, and reductionism. How many times have we heard the mantra that a program should do one thing and do it well?
Well…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. Neither of those should look like water pipes, and it’s really important that water pipes not look like sewer pipes. Or smell like sewer pipes. Modernism says that we should make all these things look the same (and preferably invisible). Postmodernism says it’s okay for them to stick out, and to look different, because a duct ought to look like a duct, and a sewer pipe ought to look like a sewer pipe, and hammer ought to look like a hammer, and a telephone ought to look like either a telephone, or a Star Trek communicator. Things that are different should look different.
You’ve all heard the saying: If all you have is a hammer, everything starts to look like a nail. That’s actually a Modernistic saying. The postmodern version is: If all you have is duct tape, everything starts to look like a duct. Right. When’s the last time you used duct tape on a duct?
The funny thing is, Modernism itself was a kind of hammer, and it made everything look like something to be hammered. The protest movement of the ‘60s was Modernistic: ``If I had a hammer, I’d hammer all over this land.” The focus was always on the nail, or on whatever it was that was getting pounded. And many things did get hammered in the Modern age. Architectural beauty, for one. That one is obvious just by looking at the skyline of any major city. It’s easy to tell which buildings were built in the 50’s and 60’s. They’re the ones that look like boxes. When we first saw them, we thought they looked very modern. Well, they did. But when the Seattle First National Bank was built in, you guessed it, Seattle, we all made jokes about how it looked like the box the Space Needle came in. At least the Space Needle was cute, kinda like the Jetsons were cute. But the Space Needle wasn’t really very functional, unless you go in for rotating restaurants.
In fact, at many different levels, Modernism brought us various kinds of dysfunction. Every cultural institution took a beating. Government took a beating. Schools took a beating. Certainly the family took a beating. Everyone took a beating, because Modernism was about attacking problems. Modernism was the hammer. (I’d like to make a pun on hammer and sickle here, but I’m not sure what it would be. Certainly Russia was more hammered than we were by Modernism, in the cloak of Marxism. I know what it means to be hammered, but I’m still trying to figure out what it would mean to be more sickled. Hmm. Unless that’s talking about the Grim Reaper. Russia has a lot of experience with that too.) Anyway, back to our talk. Modernism oversimplifies. Modernism puts the focus squarely on the hammer and the nail.
In contrast, postmodernism puts the focus back onto the carpenter. You’ll note that carpenters are allowed to choose whether or not to use hammers. They can use saws and tape measures if they choose, too. They have some amount of free will in the matter. They’re allowed to be creative. Especially if they’re working on Mrs. Winchester’s house. Hey, it’s right down the road, if you don’t believe me.
So, to drag the subject back to computers, one of the characteristics of a postmodern computer language is that it puts the focus not so much onto the problem to be solved, but rather onto the person trying to solve the problem. I claim that Perl does that, and I also claim that, on some level or other, it was the first computer language to do that. I’d also like to claim that, in many ways, it’s still the only language to do that.
How does Perl put the focus onto the creativity of the programmer? Very simple. 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. You’ve heard the joke, I’m sure. How is duct tape like the Force? It has a light side, and a dark side, and it holds the universe together. Later in this talk, I intend to define the universe and give three examples.
I have to be honest here. I’m with Linus–I personally want to take over the world. I want to take over the world because I’m an egomaniac. A nice sort of egomaniac, an egomaniac moderated by belief in the value of humility, but an egomaniac nonetheless.
Fortunately, I am not Perl. Perl was my servant before it was anyone else’s, so I taught Perl to be a better servant than I could ever teach myself to be. Perl is like the perfect butler. Whatever you ask Perl to do, it says ``Very good, sir,” or ``Very good, madam.” Only occasionally does Perl give you a stiff upper lip, or say ``Tsk, tsk.” But if you ask Perl its opinion, it will advise you on matters of taste. ``I’m sorry sir, but bareword ‘foo’ is not allowed while ‘strict subs’ is in use.”
Contrast that with the Modern idea of how a computer should behave. It’s really rather patronizing: ``I’m sorry Dave. I can’t allow you to do that.”
The trouble with having a submissive servant is that it puts the burden back on you to make the decisions. Come to think of it, that’s the problem with having a submissive wife too. My wife is very submissive. She’s always saying, ``I submit this problem to you because I don’t want to decide it.” Ah, well.
If the burden of decision making is on the programmer, then it’s possible for the programmer to make a mess of things. It’s possible for Perl programmers to write messy programs. (In case you hadn’t noticed.) It’s also possible for Perl programmers to write extremely clean, concise, and beautiful programs.
Let me state my beliefs about this in the strongest possible way. 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. The potential for greater good goes right along with the potential for greater evil. A little baby has little potential for good or evil, at least in the short term. A President of the United States has tremendous potential for both good and evil.
I do not believe it is wrong to aspire to greatness, if greatness is properly defined. Greatness does not imply goodness. The President is not intrisically ``gooder” than a baby. He merely has more options for exercising creativity, for good or for ill.
True greatness is measured by how much freedom you give to others, not by how much you can coerce others to do what you want. I remember praying a prayer when I was very young, not much more than a baby myself. ``God is great. God is good. Let us thank him for our food. Amen.” Well, I’m here to say amen to that. God’s greatness and goodness are measured by the fact that he gives us choices. He doesn’t require us to thank him for our food. (In case you hadn’t noticed.) God is not a Modernist. He doesn’t view us as nails. God expects us to behave like carpenters. Indeed, he gave us a carpenter as an example.
So I think God is postmodern. He has his own ideas of what rules, and what sucks, and he doesn’t expect everyone else to agree with him. Mind you, he likes it when people agree with him. I like it when people agree with me about Perl. But I don’t expect everyone to agree with me. Of course, some of my loyal followers expect everyone to agree with me. I try to think of it as an endearing characteristic. Personally, I think the Perl slogan, There’s More Than One Way To Do It, applies outside of Perl as well as inside. I explicitly give people the freedom not to use Perl, just as God gives people the freedom to go to the devil if they so choose.
As long as we’re in a demonizing frame of mind, please allow me to demonize Modernism a little more. True, postmodernism admits Modernism as one source of inspiration, along with Romanticism, Classicalism, and, er, uh, Baroqueism. Baroqueness? I always thinks it’s a compliment when someone says Perl is baroque. I just think of J.S. Bach. He wrote a lot of way cool stuff. Handel also had his moments.
Anyway, back to Modernism. Postmodernism does draw some inspiration from Modernism. And, in fact, postmodernism could not have come about without Modernism before it, because deconstructionism is simultaneously Modern and postmodern, being both reductionistic and holistic. Be that as it may, Postmodernism has deconstructed Modernism and determined that large parts of it suck. In religious terms, Modernism can be viewed as a series of cults. And postmodernism is defined as an escape from those cults. A kind of deprogramming, if you will. Perhaps the title of this talk should have been, ``Perl, the first postmodern DEprogramming language”.
We won’t go into the fact that ``Perl culture” sometimes gets shortened to ``Perl cult”.
I have to give credit where credit is due here. And to show my ductwork. I didn’t think of all this myself. I was flying up to Seattle with my wife and my daughter (yes, that one) because my daughter is thinking about attending Seattle Pacific University, that hotbed of subversive postmodernism. Surprise, surprise. So I asked my wife about the differences between Modernism and postmodernism. After all, one has to talk about something with one’s spouse.
Especially in front of one’s daughter.
Before I get into the list of Modernistic cults, though, I just remembered another cute story about Seattle Pacific. The school had commissioned a Modern Artist to produce a Modern Art, you know the kind, a sculpture, if you can call it that, to be placed on the lawn out in front of student union building, on the corner of campus where anyone driving by could see it. It was most definitely Modern. It consisted of two large black surfaces, partly rounded and partly square, leaning against each other. It was actually rather hideous. You know the sort.
Well, one day we noticed that the large sculpture had had babies. There were seven or eight of the cute little beggars, perfect little replicas huddling around their mommy. It was wonderful. It was precious. It was funny. At least, it was funny until the Modern Artist came storming in and, with no sense of humor at all, removed his work of art, threatening never to have anything to do with Seattle Pacific again. Good riddance, we thought. And smiled. We’re still smiling. In case you hadn’t noticed.
Anyway, back to cults. The story I just told is illustrative of several of them. First of all, we have the Cult of Spareness. The example of Modern Art I just mentioned was very spare. It was minimalistic. It was almost an artless Art. Certainly the emotion it was trying to instill was something akin to hammering. We felt like nails.
Many modern computer languages aspire to be minimalistic. They either succeed in being minimalistic, in which case they’re relatively useless, or they don’t succeed in being truly minimalistic, in which case you can actually solve real problems with them. A number of languages give lip service to the idea of minimalism, but merely sweep the complexity of the problem under the carpet of the programmer. C is a minimalistic language, but only if you don’t count all the libraries that are necessary to use it usefully. C++ is obviously not trying to be minimalistic. Unix is considered by some to be a minimalistic operating system, but the fact of the matter is that if you think of Unix as a programming language, it’s far richer than even Perl. Perl is, by and large, a digested and simplified version of Unix. Perl is the Cliff Notes of Unix.
Unix (and by extension Linux) are really simultaneously Modern and postmodern. Unix philosophy is supposedly reductionistic, and minimalistic. But instead of being Modernistic, Unix is actually deconstructionistic. The saving grace of deconstructionism is that it is also reconstructionism. When you’ve broken everything down into bits, you’re required to put them back together again a different way. In order to solve real problems, Unix requires you not only to be reductionistic, but also holistic. It’s no accident that the ductwork shows in shell scripts. Only we call them pipes.
Postmodernism isn’t afraid of ornamentation, because postmodernism is a retreat from classicalism back to romanticism. That particular pendulum is quite periodic. The Classical and Modern periods of art identified beauty with simplicity. The Baroque and Romantic periods of art identified beauty with complexity. I think it’s an interesting synchronicity that, even as our art is becoming more complex again, science is also discovering beauty in complexity theory. Perhaps it’s more than a synchronicity. Just as Modern art had exhausted the possibilities of bigger hammers, so had science. In short, we’d been oversimplifying for too long, and hence couldn’t see the simplicity within the complexity of a leaf. I would like to tell you that Perl is simple in its complexity. But some people won’t understand that. So pretend I didn’t say that, unless you do.
I could go on about simplicity, but let’s move on to the next cult. Modernism is also a Cult of Originality. It didn’t matter if the sculpture was hideous, as long as it was original. It didn’t matter if there was no music in the music. Plagiarism was the greatest sin. To have your work labeled ``pastiche” was the worst insult. The only artistic endeavor in the Modern period not to suffer greatly from the Cult of Originality was architecture. Architecture went in for simplicity and functionalism instead. With the notable exception of certain buildings that were meant to look like Modern art, usually because they contained Modern art. Odd how that happens.
The Cult of Originality shows up in computer science as well. For some reason, many languages that came out of academia suffer from this. Everything is reinvented from first principles (or in some cases, zeroeth principles), and nothing in the language resembles anything in any other language you’ve ever seen. And then the language designer wonders why the language never catches on.
No computer language is an island, either.
In case you hadn’t noticed, Perl is not big on originality. Come to think of it, neither is Linux. Does this bother you? Good, perhaps our culture really is getting to be more postmodern.
The next cult on the hit parade is the Cult of Seriousness. Recall how seriously our Modern Artist took himself and his art. He was unable to laugh at himself.
I find that there are a certain number of humorless people who don’t appreciate, um, humor. There is a small but steady drizzle of messages into O’Reilly & Associates from people who are offended by the fact that my book, the Camel book, contains jokes. It’s really quite funny reading the messages from these people. It reminds me of the time I was sitting in a theatre in Palo Alto. It was intermission, and we were in the middle of watching a hilarious play about a dysfunctional family. You know, kind of like a sitcom, only done right. The audience just roared throughout the first act. Anyway, at intermission, this older guy with a deep, gruff voice behind me says to his wife, in all seriousness, ``I don’t see what’s so funny. It’s just like an ordinary family.”
I confess, I had to cover my mouth with my hands to keep from guffawing like Tom Christiansen. That’s got to be one of the funniest things I’ve ever heard. Well, maybe you had to be there.
Postmodernism is not afraid to laugh at itself. It’s not afraid of cute, and it’s not afraid of funky, and it’s not afraid of what a Modernist would call kitsch. You know, it’s actually kind of liberating to be going down the road, and be able to yell, ``New buggie! Pea soup green.” Postmoderns aren’t afraid to be nostalgic about old slug bugs, either. Sentimentality is cool, if you’re into that sort of thing. Retro rules. Unless it rocks. I don’t know if sentimentality rules or rocks, but’s it’s definitely cool.
As Heidi would say, ``Dude, I’m stoked.”
You’ll notice I keep talking about my wife and my daughter. In case you hadn’t noticed. The Modernist would of course explain to you that I was resorting to cheap sentimental tricks to try to establish an emotional bond with my audience. A postmodernist would, of course, agree. But the postmodernist will point out that cheap tricks are less expensive than costly tricks. Showing your ductwork is usually cheaper than hiding it. Even if it’s not cheaper, it’s certainly more entertaining. I certainly find the Iron Chef entertaining. That’s definitely a postmodern show. There’s lots of cool stuff on TV these days. My daughter enjoys Daria, because it’s so cynical about everything, including itself. And if you’d like to see an unashamedly postmodern anime, you should get ahold of Revolutionary Girl Utena.
Well, enough of that. Let’s see what’s next in our talk. Oh, oh, here comes a biggie. The Cult of Objectivity.
You know, Modernism tried. It tried real hard. It really, really tried. It tried to get rid of conventions. It thought it got rid of conventions. But all it really did was make its conventions invisible. At least to itself.
Reductionists often feel like they’re being objective. But the problem with reductionism is that, once you’ve split your universe into enough pieces, you can’t keep track of them any more. Psychologists tell us that the human mind can only keep track of about about seven objects, plus or minus two. That’s for short-term memory. It gets both worse and better for long-term memory, but the principle still stands. If you lose track of something, it’s because you thought it was less important, and didn’t think about it often enough to remind yourself. This is what happened to Modernists in literature. They’ve forgotten what’s important about literature.
Note how we still periodically hear the phrase ``serious literature”. This is literature that is supposedly about Real Life. Let me tell you something. The most serious literature I’ve ever read is by Lois McMaster Bujold. Any of you read her? It’s also the funniest literature I’ve ever read. It’s also space opera. ``Genre fiction,” sneers the Modernist. Meaning it follows certain conventions. So what? Nobody in the world can mix gravity and levity the way Bujold does in her Vorkosigan books. It’s oh so definitely about real life. So what if it follows space opera conventions. Sonnets follow certain conventions too, but I don’t see them getting sneered at much these days. Certainly they were always called ``serious”.
How long till Bujold becomes required reading in high school? Far too long, in my opinion. Horrors. We wouldn’t want our students actually enjoying what they read. It’s not–it’s not Real Life.
As if the Lord of the Flies is real life. Feh.
Perl programming is unabashedly genre programming. It has conventions. It has culture. Perl was the first computer language whose culture was designed for diversity right along with the language. We’re not objective about Perl, but as postmodernists, we freely admit that we’re not objective, and we try to compensate for it when we want people to think we’re objective. Or when we want to think ourselves objective. Or, at least, not objectionable.
Or, at least, not object-oriented.
I would like to say one thing here about objectivity, however. While I despise the Modern Cult of Objectivity, I also despise the quasi-postmodern Cult of Subjectivity. I call it absolute cultural relativism. It’s the notion that everything is as good as everything else, because goodness is only a matter of opinion. It’s like claiming that the only thing you can know absolutely is that you can’t know anything absolutely. I think this is really just another form of Modernism, a kind of existentialism really, though unfortunately it’s come to be associated with postmodernism. But I think it sucks.
The funny thing is, it’s almost right. It’s very close to what I do, in fact, believe. I’d go so far as to call myself a strong postmodernist. Strong postmodernism says that all truth is created. But this really isn’t a problem for anyone who believes in a Creator. All truths are created relative, but some are more relative than others. A universal truth only has to be true about our particular universe, so to speak. It doesn’t much matter whether the universe itself is true or false, just as long as it makes a good story. And I think our universe does make a good story. I happen to like the Author.
I like Lois McMaster Bujold too, so I read her stories. Same for Tolkien, and C.S. Lewis. Turning that around, some people use Perl because they like me. Who am I to argue with them? You’re all totally objective about Linus and Linux, right? Uh, huh. Three cheers for objectivity.
I’m getting tired of talking about cults, and you’re probably getting tired of listening to me talk about cults. However, I want to talk about the open source phenomenon now, and I’m afraid I’ll have to drag the cults in occasionally. But fear not. I think the open source movement is, actually, a postmodern movement.
Think about it. We’ve actually been doing open source for a couple of decades now. Why is it suddenly taking off now? Why not twenty years ago. Linux could have been written twenty years ago, albeit not by Linus.
Of course there are lots of mundane reasons why Linux wasn’t written twenty years ago, not the least of which is that we didn’t really have the ubiquitous, cheap hardware to support it yet. Nor did we have the networking to support cooperative development. But since this is a philosophical talk, I’ll ignore reality and talk about what I think was really going on. Here’s where the cults come back in again.
The Cult of Spareness decreed that we should all use the same operating system. Of course, everyone had their own idea of what that was, but Bill Gates actually had the most success in carrying out the decree. For which he is now on trial, where he may eventually have to consent to a consent decree. All in all, it’s been a bad year to be named Bill. The wolves are circling, and waiting for further signs of weakness, and everyone’s hedging their bets by attending LinuxWorld, and making sure the press know it.
Meanwhile, back on the Unix side of the universe, The Cult of Originality decreed that, if you were going to work on something, it had to be something new. Reimplementing an open source Unix would have been laughable, especially since any university could get the sources to Unix anyway for next to nothing. When other companies besides Ma Bell figured out that they should have an implementation of Unix, they all had to make it different enough that they could distinguish themselves in the marketplace. That is, what they wrote had to be original.
The Cult of Seriousness decreed that everyone had to keep their source code hidden, because other people might laugh at how bad our code is, and make us fix it. Or worse, someone might steal our bad code and make it better. Then we would be out of business, and Life is Serious Business. A peek at the source code for Unix is obviously worth $100,000, because we can get that much for it. Programming for the fun of it? Get real!
Finally, the Cult of Objectivity decreed that the way we always did business was obviously the only way to do business. Our culture is the only possible culture. There are no social conventions here. These aren’t the droids you’re looking for. Move along.
In short, think about what it takes to put together an open source project such as Linux or Perl. You need a lot of people who think programming is serious fun. You need a culture of sharing, which is just the flip side of a culture in which you can borrow things without shame. You need people who have been hammered into dysfunctionality long enough that they’re looking for new ways to form communities. You need people who are willing to be partisan on behalf of their chosen culture, while remaining sufficiently non-partisan to keep in touch with the rest of the world. It’s no fun to create a new culture and then cut it off from the rest of humanity. No, the fun thing is to try to persuade others to share your opinions about what rules and what sucks. Nothing is more fun than evangelism.
There are two kinds of joiners in the world. Think of it in terms of anthropology. There are the kinds of people who join a tribe, and kind of get sucked in, like a black hole. That’s the last you hear from them, unless you happen to be in the black hole with them. And we need people like this in our tribes, if only to be cheerleaders.
But the open source movement is energized by the other sort of joiner. This sort of person joins many tribes. These are the people who inhabit the intersections of the Venn diagrams. They believe in ANDs rather than ORs. They’re a member of more than one subset, more than one tribe. The reason these people are important is, just like merchants who go between real tribes, they carry ideas from one intellectual tribe to another. I call these people ``glue people”, because they not only join themselves to a tribe, they join tribes together. Twenty years ago, you couldn’t easily be a glue person, because our culture was not yet sufficiently accepting of diversity. It was also not accepting of information sharing. If you got sucked in by Bell Labs, you might get out to the occasional Usenix, but that was about it. If you got sucked in by the NSA, nobody ever heard from you again. Come to think of it, that’s still true.
Still and all, things have improved greatly, and the bridges across the gaps have gotten sturdier. Now people can send their memes across a wider chasms without getting crucified on one end of the bridge or the other. And as we started sending these memes across the chasms, what we discovered was that we didn’t have a bunch of separate open source movements, but rather a single big open source movement. To be sure, it’s a fuzzy, postmodern sort of movement, with lots of diversity, and a certain amount of turmoil, but it’s about as good as any movement gets these days. We all suck at slightly different things, but we’re in basic agreement that the old way of business sucked a lot worse that whatever it is we’re doing now. We’ve agreed to agree. Except when we don’t.
That sounds like it ought to be the end of my talk, but I still have a bunch of things to say, so I’ll just keep going. Who knows, maybe it’ll relate.
The other day, I was talking to a glue person whose name is Sharon Hopkins. Among other things, she’s known as the Perl Poet, because she’s written more poetry in Perl than anyone else. She also writes a kind of non-Perl poetry that was dubbed by another poet as ``sharonesque”. Here’s a cute example:
I'd travel to the ends of time For you, my one, my only love. I'd force the sun to leave its track (If you were lost) to fetch you back. I'd suck the juices from a lime, I'd re-write Moby Dick in rhyme, I'd happily commit a crime! For you, my dearest darling dove. I'd do it all, and more beside -- Now *would* you take the trash outside? Sharon Hopkins Winter, 1989-90
I had to write a response to that poem. Actually, two responses. I won’t inflict the longer one on you, but here’s the shorter one: I’ve taken the trash out innumerable times, I’ve taken the trash out in inclement climes, I’ve taken the trash out ‘cuz that’s what I do, But I won’t take the trash out when you tell me to.
Well, anyway, most of Sharon’s poetry is relational, as befits a postmodern glue person. As I was saying, we were talking recently. Oddly, the subject was postmodernism. Fancy that. We were discussing how postmodern stuff can have goofy things mixed in with things that matter. She likes Iron Chef, too. That’s a Japanese show where you have some seriously good cooking mixed with an extremely silly race to cook the best meal. Watching the judges judge the meals is the best part. We were also talking about Revolutionary Girl Utena, where we have the Absolute Destiny Apocalypse mixed in with octopi falling out of closets. Both shows are full of arbitrary but endearing conventions. Anyway, I said something about what I was going to talk about here, and she said an interesting thing: > Yes, Modernism created a lot of dysfunction–nobody disputes that. We were encouraged to revolt, deconstruct, cut apart our papers, run away from home and take drugs, not get married, and so on. Modernism tore a lot of things apart, but especially the family. The interesting thing to me is that postmodernism is propagating the dysfunction, because it actually finds its meaning in dysfunction. Postmodernism really is a result of Modernism.
For one thing, notice how you can’t rebel by being dysfunctional any more. It’s no longer interesting–we’ve done that already.
But it’s more than that. Think of Perl culture as a dysfunctional family. Or think of the various communities that arise on the net. Think of our Gen X group at church and their obviously postmodern tastes: night club decor mixed with candles. But it’s really about being together. Nowadays, family is where you find it. Family is where you create it.
I think Sharon knows what she’s talking about here. She actually met her current boyfriend online, but don’t tell her I said that. Anyway, I thought she has an interesting perspective on the way the net works nowadays. Imagine, open source is merely a byproduct of our need for family. So, look at all of you out there. You’re just a big, dysfunctional family trying to create meaning. Don’t look so nervous. I’m not going to call for a group hug. Let’s see, what else can I talk about. Did you realize how many things can be abbreviated ``pm”? Prime Minister. Post Meridian. Post Modern. Perl Module. Perl Monger. Are there any Perl Mongers out there today? There you have it–yet another dysfunctional family. You guys can go out and have a group hug later in the pub.
Okay, let’s see. ``pm” is an abbreviation for Perl Module, which is why, of course, we use ``.pm” is the extension for a Perl module. It used to be that we used ``.pl” for Perl code. People still do use ``.pl” in Windows, but that’s because they’re all still stuck back in the Modern age. Anyway, there’s a funny thing about using ``.pl” for the Perl extension. People used to argue a lot about what the next language after C would be. Everone knew that the previous language had been called ``B”, after the first letter in BCPL, which came even earlier than B. The two proposed candidates for the next language were ``D”, because that’s what comes after ``C” in the alphabet, and ``P”, because that was the next letter in BCPL.
Well, as you can see, it didn’t work out either way. One of the successors to C was C++, which is a cute pun on the autoincrement operator, but makes it an absolute pain to try to figure out what the proper extension for a C++ file should be. .C? .cpp? .cxx? I suppose as a postmodern person, I shouldn’t mind the diversity, but somehow I do. I suppose a little inconsistency is good for the soul.
Anyway, the other successor to C gobbled up two letters instead of one. Which is why many Perl scripts have the extension, ``.pl”, finishing off BCPL. It’s a pity, in a way. Now there can never be a language named ``L”. Perhaps it’s just as well. Quite apart from the annual yuletide puns we’d get on ``noel, noel”, there’s also the problem that people would have confused the language with lex, which already uses a ``.l” extension. Since lex had already taken it, noel was available. So to speak. Sorry.
Anyway. Isn’t history fascinating? Especially postmodern history? As Heidi would say: ‘Tsall good. Except when it sucks.
Or as Tiny Tim says, God bless us, every one.
If you guys want me to stop talking, you’d better ask some questions.
Something wrong with this article? Help us out by opening an issue or pull request on GitHub