http://www.wall.org/~larry/pm.html
Perl, the first postmodern computer language
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 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.
Time passes...
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.