Then it took another two years to find the right person to replace me. Andthen it took another two years after that to get everything really handedover. By 2002, I had had it. I didn’t want to ever see Ghostscript again.

So I said, “OK, I’ll take six months to decompress and look around for whatI want to do next.” At that point I was 55; I didn’t feel particularly old. Ifigured I had one more major project left in me, if I wanted to do one. So, Istarted looking around.

The one project that kind of interested me was an old buddy of mine fromthe Xerox days, J. Strother Moore II, is, or was, the head of the computer sciencedepartment at the University of Texas at Austin. His great careerachievement was that he and a guy at SRI named Bob Boyer built a reallykick-ass theorem prover. And he built up a whole group around this pieceof software and built up these big libraries of theorems and lemmas aboutparticular domain areas.

So they had this thriving little group doing theorem proving, which was thesubject of my PhD thesis and which had always interested me. And they hadthis amazing result on the arithmetic unit of the AMD CPU. So I thought,“Hey, this is a group that has a lot of right characteristics: they’re doingsomething that I’ve always been interested in; they’re run by a guy that Iknow and like; their technology is Lisp-based. It’ll be really congenial to me.”

So, I went down there and gave a talk about how, if at all, could theoremproving have helped improve the reliability of Ghostscript? By that time, wehad a big history in the bug tracker for Ghostscript. So I picked 20 bugs,more or less at random, and I looked at each one and I said, “OK, fortheorem-proving technology to have been helpful in finding or preventingthis problem, what would have had to happen? What else would have hadto be in place?”

The conclusion I came to is that theorem-proving technology probablywouldn’t have helped a whole lot because in the few places where it couldhave, formalizing what it was that the software was supposed to dowould’ve been a Herculean job.

That’s the reason why theorem-proving technology basically has—in myopinion—failed as a practical technology for improving software reliability.It’s just too damn hard to formalize the properties that you want toestablish.

So I gave this talk and it was pretty well received. I talked with a couple ofthe graduate students, talked with J. a little bit, and then I went away. Ithought to myself, “The checklist items all look pretty good. But I’m just notexcited about this.”

I was kind of flailing around. I’ve sung in a chorus for years. In the summerof 2003 we were on a tour where we actually sang six concerts in oldchurches in Italy. My partner was with me on that trip and we decided tostay in Europe for two or three weeks afterwards.

We went to Vienna and did the things you do in Vienna. The old HapsburgPalace has now been divided—part of it—into ten different little specializedmuseums. I saw in the guidebook that there was a Museum of Old MusicalInstruments.

I went to this museum, and it’s in this long hall of high-ceilinged old salons.And it starts with, I don’t know whether they’re Neolithic, but very oldmusical instruments, and it progresses through. Of course, most of theirmusical instruments are from the last couple of centuries in WesternEurope. I didn’t actually make it all the way through; I was like one or twosalons from the end and I was standing there and here was a piano that hadbelonged to Leopold Mozart. And the piano that Brahms used for practicing.And the piano that Haydn had in his house.

And I had this little epiphany that the reason that I was having troublefinding another software project to get excited about was not that I washaving trouble finding a project. It was that I wasn’t excited about softwareanymore. As crazy as it may seem now, a lot of my motivation for going intosoftware in the first place was that I thought you could actually make theworld a better place by doing it. I don’t believe that anymore. Not really.Not in the same way.

This little lightning flash happened and all of a sudden I had the feeling thatthe way—well, not the way to change the world for the better, but the wayto contribute something to the world that might last more than a few yearswas to do music. That was the moment when I decided that I was going totake a deep breath and walk away from what I’d been doing for 50 years.

Seibel: But you do still program.

Deutsch: I can’t help myself—I can’t keep myself from wanting to do thingsin ways that I think are fun and interesting. I’ve done a bunch of littlesoftware projects of one sort or another over time, but only two that I’vepaid ongoing attention to over the last several years.

One has been spam-filtering technology for my mail server. I wouldn’t say itwas fun but it had a certain amount of interest to it. Based on the logs that Ilook at every now and then, the filter is actually picking up—depending onwho’s ahead in the arms race at any given moment—somewhere between80 and 95 percent of the incoming spam.

The other substantial piece of software that I keep coming back to is amusical-score editor. And the reason that I do that is that I have done a fairamount of investigation of what’s available out there. I used Finale at afriend’s house a few times. It sucks. The quality of that system is so bad Ican’t even tell you. I got a copy of Sibelius. I actually got a Mac laptopprimarily so that I could run Sibelius. And discovered that the way that theydid the user interface, it is the next thing to unusable if you don’t have aNum Lock key. Mac laptops do not have a Num Lock key. And there weresome other things about the user interface that I didn’t like. So, I decided toroll my own.

I’ve been through four different architectures and I finally got one that I likepretty well. But it’s been kind of an interesting learning experience. That’san interactive application that’s large and complex enough that these systemissues do come up, these issues of interfaces.

After having gone through four different architectures I wound up with anarchitecture for the rendering side of the program—which I think is by farthe hardest part—based on equational programming. You define variablevalues in terms of equations then you let the implementation decide whento evaluate them. Turns out that’s not too hard to do in Python. It’s beendone at least two other times that I know of. I like the way I do it because ithas the least boilerplate.

So yeah, so I still do a moderate amount of programming and I still have funwith it. But it’s not for anybody and if I don’t do programming for weeks at atime, that’s OK. When that was what I did professionally, I always wantedto be in the middle of a project. Now, what I want to always be in themiddle of is at least one or two compositions.

Seibel: You said before that you thought you could make the world abetter place with software. How did you think that was going to happen?

Deutsch: Part of it had nothing to do with software per se; it’s just thatseeing anything around me that’s being done badly has always offended memightily, so I thought I could do better. That’s the way kids think. It allseems rather dreamlike now.

Certainly at the time that I started programming, and even up into the1980s, computer technology was really associated with the corporateworld. And my personal politics were quite anticorporate. The kind ofcomputing that I’ve always worked on has been what today we would callpersonal computing, interactive computing. I think part of my motivationwas the thought that if you could get computer power into the hands of alot of people, that it might provide some counterweight to corporatepower.


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