Jamie Zawinski

Lisp hacker, early Netscape developer, and nightclub owner Jamie Zawinski,a.k.a. jwz, is a member of the select group of hackers who are as wellknown by their three-letter initials as by their full names.

Zawinski started working as a programmer as a teenager when he washired to hack Lisp at a Carnegie Mellon artificial intelligence lab. Afterattending college just long enough to discover that he hated it, he worked inthe Lisp and AI world for nearly a decade, getting a strange immersion in afading hacker subculture when other programmers his age were growing upwith microcomputers.

He worked at UC Berkeley for Peter Norvig, who has described him as “oneof the of the best programmers I ever hired,” and later at Lucid, the Lispcompany, where he ended up leading the development of Lucid Emacs, laterrenamed XEmacs, which eventually led to the great Emacs schism, one ofthe most famous open source forks.

In 1994 he finally left Lucid and the Lisp world to join Netscape, then afledgling start-up, where he was one of the original developers of the Unixversion of the Netscape browser and later of the Netscape mail reader.

In 1998 Zawinski was one of the prime movers, along with Brendan Eich,behind mozilla.org, the organization that took the Netscape browser opensource. A year later, discouraged by the lack of progress toward a release,he quit the project and bought a San Francisco nightclub, the DNA Lounge,which he now runs. He is currently devoting his energies to battling theCalifornia Department of Alcoholic Beverage Control in an attempt toconvert the club to an all-ages venue for live music.

In this interview we talked about, among other things, why C++ is anabomination, the joy of having millions of people use your software, and theimportance of tinkering for budding programmers.

Seibel: How did you learn to program?

Zawinski: Wow, it was so long ago I can barely remember it. Thefirst time I really used a computer in a programming context wasprobably like eighth grade, I think. We had some TRS-80s and we gotto goof around with BASIC a little bit. I’m not sure there was even aclass—I think it was just like an after-school thing. I remember therewas no way to save programs so you’d just type them in frommagazines and stuff like that. Then I guess I read a bunch of books. Iremember reading books about languages that I had no way to run andwriting programs on paper for languages that I’d only read about.

Seibel: What languages would that have been?

Zawinski: APL, I remember, was one of them. I read an article aboutit and thought it was really neat.

Seibel: Well, it saves having to have the fancy keyboard. When youwere in high school did you have any classes on computers?

Zawinski: In high school I learned Fortran. That’s about it.

Seibel: And somehow you got exposed to Lisp.

Zawinski: I read a lot of science fiction. I thought AI was really neat;the computers are going to take over the world. So I learned a littlebit about that. I had a friend in high school, Dan Zigmond, and wewere trading books, so we both learned Lisp. One day he went to theApple Users Group meeting at Carnegie Mellon—which was really justa software-trading situation—because he wanted to get free stuff. Andhe’s talking to some college student there who’s like, “Oh, here’s this15-year-old who knows Lisp; that’s novel; you should go ask ScottFahlman for a job.” So Dan did. And Fahlman gave him one. And thenDan said, “Oh, you should hire my friend too,” and that was me. SoFahlman hired us. I think his motivation had to be something along thelines of, Wow, here are two high school kids who are actuallyinterested in this stuff; it doesn’t really do me much harm to let themhang out in the lab.” So we had basic grunt work—this set of stuffneeds to be recompiled because there’s a new version of thecompiler; go figure out how to do that. Which was pretty awesome.So there are the two of us—these two little kids—surrounded by allthese grad students doing language and AI research.

Seibel: Was that the first chance you actually had to run Lisp, thereat CMU.

Zawinski: I think so. I know at one point we were goofing aroundwith XLISP, which ran on Macintoshes. But I think that was later. Ilearned how to program for real there using these PERQ workstationswhich were part of the Spice project, using Spice Lisp which becameCMU Common Lisp. It was such an odd environment. We’d go toweekly meetings, learning how software development works just bylistening in. But there were some really entertaining characters in thatgroup. Like the guy who was sort of our manager—the one keeping aneye on us—Rob MacLachlan, was this giant blond-haired, barbarianlookingguy. Very intimidating-looking. And he didn’t talk much. Iremember a lot of times I’d be sitting there—it was kind of an openplancubicle kind of thing—working, doing something, writing someLisp program. And he’d come shuffling in with his ceramic mug ofbeer, bare feet, and he’d just stand behind me. I’d say hi. And he’dgrunt or say nothing. He’d just stand there watching me type. At somepoint I’d do something and he’d go, “Ptthh, wrong!” and he’d walkaway. So that was kind of getting thrown in the deep end. It was likethe Zen approach—the master hit me with a stick, now I mustmeditate.

Seibel: I emailed Fahlman and he said that you were talented andlearned very fast. But he also mentioned that you were kind ofundisciplined. As he put it, “We tried gently to teach him aboutworking in a group with others and about writing code that you, orsomeone else, could understand a month from now.” Do youremember any of those lessons?

Zawinski: Not the learning of them, I guess. Certainly one of themost important things is writing code you can come back to later. ButI’m about to be 39 and I was 15 at the time, so it’s all a little fuzzy.

Seibel: What year did that start?

Zawinski: That must have been ’84 or ’85. I think I started in thesummer between 10th and 11th grade. After high school, at 4:00 or soI’d head over there and stay until eight or nine. I don’t think I did thatevery day but I was there a fair amount.

Seibel: And you very briefly went to CMU after you finished highschool.

Zawinski: Yeah. What happened was, I hated high school. It was theworst time of my life. And when I was about to graduate I askedFahlman if he’d hire me full-time and he said, “No, but I’ve got thesefriends who’ve got a startup; go talk to them.” Which was ExpertTechnologies—ETI. I guess he was on their board. They were makingthis expert system to automatically paginate the yellow pages. Theywere using Lisp and I knew a couple of the people already who hadbeen in Fahlman’s group. They hired me and that was all going fine,and then about a year later I panicked: Oh my god, I completely luckedinto both of these jobs; this is never going to happen again. Once I nolonger work here I’m going to be flipping burgers if I don’t have acollege degree, so what I ought to do is go get one of those.

The plan was that I’d be working part-time at ETI and then I’d be goingto school part time. That turned into working full-time and going toschool full-time and that lasted, I think, six weeks. Maybe it was nineweeks. I know it lasted long enough that I’d missed the add/dropperiod, so I didn’t get any of my money back. But not long enough thatI actually got any grades. So it’s questionable whether I actually went.

It was just awful. When you’re in high school, everyone tells you,“There’s a lot of repetitive bullshit and standardized tests; it’ll all bebetter once you’re in college.” And then you get to your first year ofcollege and they’re like, “Oh, no—it gets better when you’re in gradschool.” So it’s just same shit, different day—I couldn’t take it. Gettingup at eight in the morning, memorizing things. They wouldn’t let meopt out of this class called Introduction to Facilities where they teachyou how to use a mouse. I was like, “I’ve been working at thisuniversity for a year and a half—I know how to use a mouse.” No wayout of it—“It’s policy.” All kinds of stuff like that. I couldn’t take it. So Idropped out. And I’m glad I did.


Перейти на страницу:
Изменить размер шрифта: