Perl, the first postmodern computer language (1999)
Phenomenology and Existentialism
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
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
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
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
I said, “I still feel like I have to justify Perl all the time to a lot of
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,
“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 people conspired to make sure we kept a whole president (even though
there was probably just as much 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
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
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
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
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.”
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
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
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
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
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
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
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
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
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
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.