The State of the Onion
by Larry Wall
|
Pages: 1, 2, 3, 4
[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.

