The State of the Onion
by Larry Wall
|
[BSOD "Blue Screen of Death"]
I was sure I was dying. I went back into the hospital, and stayed there for
weeks. The bad news was that my surgery site had scarred up, and I couldn't
eat or drink anything. I got all my nutrients and fluids through an IV
line.
The good news was that if I waited long enough, it might open up again of
its own accord.
That bad news was that after several weeks, it didn't.
The good news was that they had ways of putting tubes in to bypass the
obstruction. So I had more procedures.
The bad news was the procedures didn't work.
The good news was that they had a way to revise the first surgery.
The bad news was that fixing the first surgery meant going through surgery
all over again six weeks after my first surgery. Meanwhile, I spent a lot of
time idling.
I think I started developing an empathy for screensavers about that time.
The poor things just have to sit there and twiddle their thumbs. I was
simultaneously bored and unable to concentrate. My friends sent me books that
I couldn't read. The only thing I could concentrate on long enough was
crossword puzzles. With a crossword puzzle, you can quit after a clue or two,
and still make overall progress, even if your brain is crashing every few
minutes. As mine was at that point.
This particular screensaver fools me more often than I care to admit. The
problem is that the more computers you've used, the more different kinds of
crashes you've seen. And mentally, you classify them all in the "Oh, shit!"
category, which is a category the brain is very efficient at processing.
On the other hand, the part of your brain that says, "Hey, that's the crash
screen for a different operating system, dufus!" — that part operates at
a much slower pace. This is actually a profound psychological truth. Back in
the heyday of Prolog, everyone was bragging about how many LIPs they were able
to process. That's logical inferences per second. But your brain applies many
different LIPs ratings depending on how urgent the problem seems to be. The
brain is chock full of shortcuts, and orthogonality be screwed. Optimizers
cheat, and sometimes they get caught cheating. With this screensaver, you can
catch your own brain's optimizer cheating.
[Pedal]
I got to go home for a week before my second surgery. I could even walk
around my neighborhood with a portable IV pack on my back. I remember admiring
some of the flowers in the neighborhood. They were a welcome sight after the
hospital. But, you know, it's really scary getting all your food and water
through a tube. Especially the water. I got to be home for my birthday, but I
couldn't eat anything. Well, OK, I cheated. I ate one Popsicle, and watched
it drain back out of my stomach tube. At least it tasted good.
[Blank]
My second surgery was a success. Eventually. I had to go through the same
morphine rigmarole again. At least this time they put in a stomach drain
tube so I didn't have to put up with a nose tube. But I had complications
again, this time with some internal bleeding. I lost enough blood that they
were seriously considering giving me a transfusion. But I squeaked through,
and eventually came home. This time I had a feeding tube, which was in some
ways an improvement over an IV, and in other ways not. In particular, I was
now housebound, because the stomach feeding pump was not as portable as the IV
pump. I had to make do with fake foliage on my computer screen.
[Forest]
This screensaver makes use of an ancient technique. If you're working in an
opaque medium such as oil paint, draw the background first. Then paint the
foreground over that. This may seem like cheating, but we use rules of thumb
like this all the time. Every time you do lexical scoping, you're treating the
outer lexical scope like a background, and the inner lexical scope like a
foreground. That's why it's so natural to talk about an inner variable hiding
an outer variable of the same name.
Can you begin to see why I have a special mental relationship with these
screensavers? Maybe I'm a little bit crazy, but I can't decide if it's
psychotic or neurotic. You know the difference, don't you? A psychotic thinks
that 2 + 2 = 5. A neurotic knows that 2 + 2 = 4, but it makes him nervous.
Maybe it's just a simple, everyday obsession.
Eventually, I learned to eat again, and got off my feeding tube. I'll never
take eating for granted again. I'll never take tubes for granted again either.
Now that I'm out of the hospital, here's what my dreams look like:
[Pipes]
Only they mean something different now.
[Endgame]
I recovered pretty rapidly, physically speaking. But it took months to
really get back into gear mentally. Not until this spring did I feel like I
was competent to write Apocalypse 12, the one about object-oriented Perl. All
in all, I'd estimate that my little medical escapade set the Perl 6 design back
six months or so. But Apocalypse 12 was the last big hurdle. With that, the
design of Perl 6 can be said to be largely complete.
We are now in the endgame, which is the name of this screensaver. Now that
the Parrot engine is in such fine shape, it's time to concentrate on writing a
fine Perl 6 compiler to target it.
[Anemone]
Open source projects start out small and grow over time. They send out
tendrils in directions you don't expect. Perl started as a text-processing
language. Look, now it's a system-administration language. And look over there,
now it's a web-programming language, too. Oh, wait, now it's for genomics research.
You'll note sometimes the tendrils withdraw, like a squid's tentacles.
That's just the natural process of deciding which things belong in the core.
In squid terms, what to eat. Perl has eaten a number of things in the last
15 years. Some of them caused indigestion, but hey, that's life.
You'll notice it's cyclical. All successful open-source projects go through
periods of expansion followed by periods of redesign and reintegration. It's a
natural cycle. You just have to try and not starve while you're molting. Perl
has been molting for a few years now. Or maybe it's been more of a
metamorphosis in a cocoon. Anyway, Perl 6 is going to start emerging this
year. It's going to be exciting.
[Atlantis]
You might say we're going to have a whale of a time.
The latest National Geographic has an article about squid who change their
colors. Often they have reasons for changing, but sometimes I think they just
change for the heck of it. A couple of years ago I was snorkeling in the
Bahamas, and got to watch a school of cuttlefish swimming along. They weren't
hiding or courting or anything like that, but as they swam along they would all
change color to brown, then yellow, then red, then green. It's like, "Hey
guys, wouldn't it be cool if we all ran the same screensaver at the same time?" Sort of a cultural identity thing, I suppose.
The interesting thing was that while I was watching, they forked. You know,
like BSD. One group of cuttlefish went off one way, and the other group went
off another. Maybe they had a personality conflict. Maybe they had a fight
over licensing. I dunno. But the cool thing was that the moment they forked,
they desynchronized their screensavers. This group wanted to stay green, while
the other group wanted to go on and try out some purple. Who knows what goes
on in the mind of a cuttlefish — it's possible that they split
specifically over the color issue. Wouldn't be the first open-source project
to split over the color of the bike shed.
I predict that within 10 years, we'll have clothing that runs screensavers,
and what's more, we'll have gangs of people running around with synchronized
displays to show that they "belong." Schools will then outlaw gang
screensavers, and impose uniform screensavers on their students. Someone will
hack into your clothes processor just to get you into trouble with the
teachers. Norton and McAfee will sell software to make sure your clothes keep
saying what you want them to say, and not what someone else wants them to say.
Or show...
Or maybe by then your shirt will be able to authenticate all the IPv6
addresses it communicates with. The hard part is going the other way —
how are you going to authenticate your shirt to someone else? Are you going to
bother to set up an unspoofable identity for every shirt in your closet?
Of course, if your shirt is programmable, you really only need one of them.
Or maybe you need two, for when the other one is in the wash. I suppose geeks
can get away with owning a single programmable shirt. For some definition of
"get away with." Maybe it's more like "get away from," as in "get
away from me."
[Molecule (sucrose)]
Anyway, that's another talk. In fact, it's a talk I already gave five years
ago. Some of you will recognize this screensaver. It wasn't a screensaver yet
when I gave my third State of the Onion talk, but now it is. That's progress.
Cool. But watch out for those pheromones. And if you're on a low-carb diet,
don't even think about looking at this picture of sugar.
Well, enough about chemistry. I already talked about that once. If I start
repeating myself, you'll think I'm getting old. (I am getting old,
but I don't want you to think it.) Anyway, you want to hear something fresh.
Fresher than a geek's T-shirt, anyway.
In any event, the real geeks will probably just have the screen tattooed on
their chest. Or their stomachs. Teletubbies "R" us.
Anyway, back to freshness.
Now, there's two ways one can go about keeping a fresh outlook on life. One
way that works, or at least works for some people, is to suddenly change course
in midstream. Call it the worms approach.
[Shadebobs]
The problem with worms is that they don't learn much from history. The only
history they remember is where they just were, which is where they don't want
to be now. I've known some people like that.
The other approach to keeping fresh it to not be quite so, um, random. In
other words, learn a little more from history. You can do that either by depth
or by breadth. In any case you're keeping more history state around than just
a single position.
Prev [1] [2] [3] [4] Next