The Long Strange Trip to Java
Note: This is an unabridged, unedited version of the Epilogue of my book, The Java Handbook. My editors fought with three problems, libel, slander and page count. We were out of space, and they were also worried a few of my associates from the last 12 years might want to sue them for things I've recalled about them. Well, I kinda see their point... but then everything I say in here is merely my opinion, and this web publication in no way should reflect the views of Osborne/McGraw-Hill, nor any of their personnel. And if I've insulted anyone in this page to the point that they feel like calling a lawyer, I'll snip them out of it as soon as they contact me. (I should also say that the contents of this page have nothing to do with Starwave Corporation while I'm here). 'nuff said. I've debated with myself for several years about whether or not to write this down. After so much time has passed, the facts are confused, 20/20 hindsight creeps in, and selective memory plays a role in how fairly I can portray the events. Many reporters have asked me my version of these past few years, several have come close to capturing the essence of it all. But still, I feel the need to one last time, take a walk through the past to help you all understand how we came to be where we are today. To requote George Santayana from chapter 2, "Those who cannot remember the past are condemned to repeat it." All appropriate disclaimers apply, no warrantees are expressed or implied. The reader assumes all responsibility for opinions formed from this chapter.
I first met James Gosling in the spring of 1988. He was wearing an ill-fitting white T-shirt with an obscure reference to Jean Paul Sartre's cat. He wasn't wearing shoes, and his socks didn't quite match. His large corner office in building 14 of Sun's Mountain View campus was crowded with piles of books and papers strewn about. His Sun 3/60 had a "Macintosh Test Drive" bumper sticker on the side of the monitor. He had nice art on his walls. Not the typical hacker dinosaurs and free posters from Usenix conferences, but real Japanese pen and ink prints. His bookshelf was full of the classics of computer science. Horowitz, Knuth, Foley and Van Dam, Xerox bluebooks, SIGGRAPH and OOPSLA proceedings, the collected works of Breathed and Larson. Clearly, James was not your garden variety programmer. In retrospect, I should have been in awe, lying prostrate doing my best Wayne Campell, "I'm not worthy" impression. Fortunately for me, I was too clueless to know who James Arthur Gosling was. A few months earlier, I had seen for the first time a few Sun 3/50's at my tiny engineering university on the fringe of the frozen tundra known as the Adirondack State Park in Northern New York State. A place not too far away, Lake Placid, had been made famous by a bunch of college kids beating a bunch of future NHL Russian hockey players. My school, Clarkson University, was almost as famous for attracting a collection of those mostly Canadian boys to come play NCAA Division I hockey. Over the years, while Clarkson continued to turn out a few NHL prospects like LA Kings captain Dave Taylor, they rarely sent many software engineers to Silicon Valley. This was left to such East Coast titans of computer science as Carnegie Mellon University and Massachusetts Institute of Technology. Clarkson could kick some butt in hockey, but CMU and MIT owned them when it came to CS. It may sound odd then, to consider that in 1983 when CMU hadn't even gotten their first Macintosh yet, and MIT hadn't started wasting time with the IBM RT, tiny little Clarkson (College of Technology still that year) managed to put a PC into every incoming freshman's hands. We showed up at school that day in August and got in a big long line and signed for a bunch of big boxes, and went back to our dorms to unload a blazingly fast 4.77mhz 8086 from Zenith Data Systems. This box was cool. It had dual processors, an 8086, and an 8085. It came with two operating systems, MS-DOS, from a little company in Washington State of all places with an ugly green logo called Microsoft, and CP/M from Digital Research. It had a really cool display subsystem which could show 8 colors at 640x480 resolution. Now Clarkson and Zenith didn't seem to think that it was much of a problem that this system wasn't compatible with IBM's standard. After all, how many of those PC's were out there? Well... I noticed. I spent the previous summer working on an authentic big blue IBM 5150 PC, and none of my software would work properly on the Z-100. I learned first hand the problem that would plague me for the rest of my career. Microsoft had created a version of its own software, MS-DOS, which was incompatible with the mainstream version, PC-DOS. Display hardware differences between the Zenith and the IBM "CGA" were exposed by the operating system, thus causing all of the software to be incompatible. So, what did I do about this? Nothing. I got to work, studying Electrical and Computer Engineering and left all of that heroic software stuff to the professionals at CMU and MIT. I learned assembly language programming and dove into the internals of MS-DOS, PC-DOS, and all of the underlying garbage that drives the myriad of hardware devices supported on the PC's of that vintage. I became an expert at writing device drivers for video display adapters. I learned to render graphics by reading Foley and Van Dam and cranking out assembly language libraries. The Z-100 came with three wonderful languages, all developed by our friends in Washington: FORTRAN, Pascal and BASIC. None of these languages had any acceptable graphics libraries; so I set out to create a toolkit for them to do windows and graphics. These systems were so brutal, that I ended up just leaving everything in assembly language. In fact, in the summer of '85, Russell Nelson and I wrote a complete clone of MacPaint for the PC in 100% assembly language. We got ahold of a Xeroxed set of Espinosa and Rose's Inside Macintosh and went to town. In all of 1986, I spent my time in industry. I entered a program at Clarkson called "A Semester in Industry," from which I neglected to return for over a year. I was down in Rochester, NY, my home town, hacking on a system to allow users in publicly accessible locations to get access to networked multimedia information. In this case it was a bunch of touchscreens mounted on PC displays in kiosks that we sold to supermarkets around the country. I wrote a bunch of low level graphics and user interface code to allow us to intermix video from a laserdisc with computer generated graphics. Again, this was another system which was intimately tied to a specific hardware platform, although I had taken a giant leap up from 100% assembly language to about 60/40 Turbo Pascal. TP was a strongly typed, interpreted, fast compiler that taught me to appreciate compile time checking. After a year of this, the company started to do pretty well, and I got worried that if I stuck around much longer, I'd never get to finish my degree. So I packed it back up to Clarkson. Upon my arrival in the dead of winter, 1987, with only three semesters remaining, I switched degrees to Computer Science. This was the academic equivalent of training all winter long for spring track and field, then quitting the day before the first track meet, when it is all sunny and easy. But, I wanted to focus on software and stop worrying about how to build amplifiers and power transformers. So, I worked my way through the CS curriculum and learned lots of interesting and esoteric programming languages like LISP, Scheme, Prolog, SETL, Forth, and SmallTalk. I spent the summer as the lead engineer on an ill-fated project to save the world from terrorism. We had a chemistry professor with a god complex who had slipped one morning in the shower and bumped his head. When he woke up, he saw a statistical relevance between capacitance, conductance, frequency and the amount of explosive material inside of a pair of capacitor plates. We spent the summer of '87 on the SUNY Potsdam campus in an abandoned dormitory, listening to the Iran Contra trials on NPR, while building the world's most expensive Rube Goldberg voodoo-statistics-driven capacitor. Yet another exercise in writing a whole bunch of code which only worked on one platform. This one of course, was a one-of-a-kind platform, but none-the-less, it was a complete waste of time. By the time a group of us discovered that the bomb-sniffer was a bomb, and that it really could have been an excellent detector for rat feces in cereal boxes, or cyanide in Tylenol, the esteemed professor was being investigated by the HUD and the FAA for violations of his funding agreements. Not to mention that we had a bunch of unlicensed students handling explosives, potassium cyanide, rat poison, cocaine, and a bunch of other controlled substances on the site of a large state university. I was just happy to get out of that job alive. So, we arrive at the fall of 1987, and I've still never seen a line of C code, nor used a UNIX machine. I've never met, nor heard of James Gosling or Bill Joy. I'd been hacking around in the bowels of the Microsoft PC for six years and was about to throw it all away. I had moved into an old house that summer with a curmudgenly old friend of mine, Adam Fritz, who was mysteriously well connected at the university, even though he was a undergrad like myself. Adam brought me into the world of on-line, by forcing me to buy a 300 baud modem for $560 and dialing into both our local bulletin board and getting a shell account on the campus UNIX box, an aging, room heating, Gould running UTX-32. I thought: OK, great. I now have a big PC that has to display everything through a modem to a terminal emulator. Why do I want this? Then he showed me the Internet. Well, it was called ARPANET back then, and USENET, and BITNET, but it was getting started. I was hooked. Net news, email, ftp... I was seeing the future through a modem that could barely keep up with my typing. Then we got three Sun 3/50's. They seemed so incredible to me in the fall of '87. Sun had been public for over a year. I knew nothing about them. We talked about getting Sun's to speed up the bomb sniffing calculations, but opted out for a math co-processor board for the PC's. Adam and I got the Sun's up and running SunView and SunOS3.5. They were diskless machines which talked to a Sun 3/260 over the network via NFS' predecessor called ND for network disks. We were ftping from the Suns to MIT to get stuff from GNU. Who can forget "ftp prep.ai.mit.edu"? It is where we all learned to spell "anonymous". So there we were running GNU EMACS as our window system, when we discovered X10 at MIT. We read about an up and coming project called X11, which would be savior of all of this platform dependent code. We could write our programs for X11 and they could run anywhere! Adam and I downloaded the PostScript documentation and burned up our fresh new laser printers with reams of paper printing out all of the proposed API's. I dove into X11 just like I had MS-DOS. I devoured the basics and started writing applications. The first few lines of code I wrote for X11 were implementing an algorithm printed in an issue of Scientific American the previous summer. It was an iterative fractal sequence called "hopalong". It basically drew rather hypnotic patterns on the screen. I adapted it to be a "screen saver" and gave away the source code on the Internet. Today, that program, "xlock", is still running on every Sun, SGI and who knows how many other X11 based workstations all night long. I am responsible for one of the world's largest wastes of computing resources. I apologize. I continued to write more and more X11 code and was beginning to discover the weaknesses and flaws in the design. It exposed far too much of the underlying architecture of an X11 implementation. It was almost impossible to write a portable X11 program. It was then, in late 1987, that my path first crossed with James Gosling. The computing center at Clarkson dropped off a tape one day of a thing called "NeWS" from Sun. It stood for "Networked/extensible Window System". We loaded it one day, and ran it instead of X11. We were in awe! It was the most elegant and beautiful piece of software I had ever seen. Adam and I taught ourselves Adobe's PostScript language a few months earlier when we had to set up our new laser printers in order to print the X11 documentation. This window system used PostScript to draw everything on the screen. It was able to seamlessly draw images and fonts on the screen at any angle and scale. It was such a simple idea really. Take a proven programming language which renders pages on a printer, and adapt it for the screen. As we dove deeper into NeWS, we saw that it included its own notion of object-oriented programming and a small UI toolkit called "lite". It was pretty clear that we had discovered something hot. In the springtime, I was finishing up my senior projects and thinking about where I would work after graduation. My cold-call application to Microsoft was returned with a form letter rejection. I had leads with the Intel CAD group, and several other smaller PC companies. Adam suggested that if I liked the Sun and NeWS so much, why didn't I just go work there? There? I didn't even know where there was! I had to get out a map to find Santa Clara and Mountain View. I was stunned to find they were in Northern California, and not near LA as I'd always imagined. OK, so it sounded like a great idea. Get a job at Sun. How should I go about that? The US Postal Service approach had failed me with Microsoft, so I needed a new approach. Ahhh. The Internet. I went to the newsgroup "comp.jobs.offered" and searched for Sun. Paydirt. I found an advertisement put out by Steve Evans, the esteemed author of the SunView window system, and recent SUNW millionaire. I sent an email version of my resume to Steve, and received plane tickets in the mail the next week. So there I am, standing in James Gosling's office. He is asking me about random little projects that I put on my resume as if they were job experience, when in reality, they were small projects that Adam and I had cooked up to replace our boring senior year classes. I'm at the whiteboard and drawing pictures of light vectors and trying my best to explain how 3D Phong specular shading works even though I only implemented Goraud shading in my project. I make a few right guesses, and James and I drop into a low level discussion of how we might optimize such a renderer to be more efficient on the Motorola 68020. I explain that I've only done Intel assembly, but I get what he means. The interview is over much too soon for me. I've had my first taste of what it will be like every day for the next six and a half years. And I like it. The rest of the interviews went on without incident and I had an offer letter by the end of the week. Two months later, I finished my last exam at noon and was in the car driving west by 12:30. I arrived in Palo Alto a week later with everything I owned packed into my car which was towed behind my future wife Kenna's car, who had chosen to come out with me for some ungodly reason. It was May 18, 1988. My office was fortuitously right next door to James'. I have since come to realize that being between your mentor and his route to the bathroom is a major career booster. I quickly discovered upon my arrival that the jewel of software design that had drawn me here in the first place was being tarnished in real time. I didn't know James very well back then, but in retrospect, I know exactly what was happening to his project. James was a brilliant computer scientist, but not much of a political animal. Bill Joy had introduced him as the world's greatest living programmer to a USENIX audience the year before, when James was speaking about NeWS. Bill's penchant for hyperbole, mixed with James' monk-like humility made for quite an embarrassing situation for him. A classic mild-mannered "type-B" hacker, (in the good old sense of the word hacker); James didn't have the intestinal fortitude it would have taken to fight the tide against NeWS. The political climate in the computer industry in 1988 was such that Sun was first being seen as a real threat. Previously, they were considered a bunch of Stanford kids out bending sheet metal around off-the-shelf parts from Motorola and shipping a free university operating system. Once Sun scored big in the standards world with NFS, the Network File System, they were seen as a major player. Attempting a follow-up hit with the NWS, NeWS, was seen as too big a threat by the competition. Interestingly, James' first paper on NeWS was titled "SunDew" for "Distributed extensible windowing." Some marketing people attempted to parlay NFS's success by making the names sounds the same. The response was swift and harsh. MIT began to gain a lot of momentum behind the cleanup of the rather crafty X10 window system and converged on the X11 specification supported by DEC, HP, IBM and others. Sun was an outlyer, even though James and David S. H. Rosenthal, the other NeWS architect, ended up doing the original Sun 3 port of X11. The X11 community started hammering on Sun to drop NeWS and join in support of X11. This was the beginning of a long and exhausting battle for Sun. By the time I arrived, though the advice of executive vice president Bernard Lacroute and vice president Wayne Rosing, Sun had decided to merge NeWS with X11. Thus I had joined the "X11/NeWS" group. We spent the first year trying to implement X11 in terms of NeWS, the second year trying to redefine NeWS in terms of X11. The whole time the X11 community flamed us publicly for our non-standard implementation, and the NeWS community complained, rightfully, about our lack of support for this wonderful platform. We were making a big, slow, buggy implementation of both systems. By mid-1990, I had risen to the rank of "project leader" for the graphics section of the X11/NeWS merge. We had just shipped OpenWindows 2.0, which was the first version of our X11 implementation that was performance competitive with the MIT released product. Our job for version 3.0 was to implement a whole new toolkit for the NeWS side, while maintaining our performance and functionality equivalence with the X11 side. There were 112 people in the windows group at that time. We were supporting three toolkits, three window systems, three hardware architectures, two user interfaces and two operating system versions. The simple statement, "there's a bug in the scrollbar code" could have indicated any of 108 different configurations. I had had enough. There was an interesting movement afoot in those days, to take the source code to NeWS and post it to the Internet, to compete with the freely available X11 implementations from MIT. Various engineers and managers found themselves at odds with corporate policy makers trying to argue that Sun could make more money from the indirect benefits of having created the de facto standard for a media rich, cross platform, distributed, extensible desktop software environment. Near the end, a plan was put forth to give the source away for "free", where "free" was defined as about $10,000 for media and distribution costs. No anonymous ftp downloads would be allowed. The entire plan was scrapped after a few weeks of extensive flaming on comp.windows.news. To a large extent, having us all go through this experience together made the decisions of late 1994 with respect to Java much easier. Having given up on the future of NeWS, I personally was deciding where I wanted to work next. I kept flashing back to one all night session in January of '90 when I found an unlocked lab when I was at the X11 conference at MIT. Inside I found a 0.9 release of a NeXT workstation. I marveled at what seemed to be the dream of NeWS come true. Display PostScript, a single toolkit, a beautiful user interface, and incredible applications. I rushed home and wrote up a red-hot trip report, expecting to shake some people up. I expected people to wake up and smell the java! In return, nothing. The only person I could motivate was Chris Warth, one of the main NeWS toolkit engineers. Chris and I spend a few all-nighters writing a complete UI clone of NeXTSTEP in NeWS. We copied it pixel for pixel from some screen dumps I took back at MIT, then we installed it on several managers' workstations, making all of their applications dynamically change from OPEN LOOK to NeXTSTEP. Still we got no real reaction. It became clear to me that much of the work going on in the group was busy work. Keep your head down and don't say too much and everything will be OK. James was conceding the point by not kicking some ass, and he was the only guy with enough clout to make it happen. James was a Sun old-timer, with a senior position and comfortable stock options, who didn't like to rock the boat too much. I, on the other hand, was only 25. I had nothing in particular to lose. So, I decided to go out and interview at NeXT. The interviews at NeXT were as compelling as the NeXTSTEP user experience. Believe everything everyone tells you about Steve Jobs. He is the most magnetic personality I have ever met. We clicked immediately in our interview. He is a great speaker and an even greater listener. Everything that Steve tried to do ten years ago makes perfect sense now. Okay, so that probably isn't the guy you want spending your money today, but the point is still valid. If someone told me ten years ago that Steve would be a billionaire today because he would make Pixar create a feature film out of John Lasseter's Luxo Jr., I'd have said they were drinking too much of the Kool-aid. So, I was basking in the rays of SJ's reality distortion filter and loving every second of it. I was going to join a fantastic like-minded team of engineers doing insanely great things inside an insanely cool I.M.Pei designed building and everything would be fine. I had spent the better part of a month of breakfasts with Leo Hourvitz, the father of NeXTSTEP, Bill Atkinson protégé, and all around great guy. We drank so much coffee after those breakfasts, the waitress kept bringing us lunch menus. I was ready to get out of Sun. What would I miss at Sun? James obviously. He had taught me almost everything I knew about anything. His standard answer to my questions about solutions I had come up with was always "yup, that sounds like the right thing to do". This was a subtle way to let me know that he had confidence in my work, and that gave me confidence to do better, riskier things. But, it was a small valley, and I was sure we would still keep in touch. My peer group, Chris Warth, Jonathan Payne, Jim Graham and others would understand; and if NeXT was cool enough, I'd recruit them all to join me. At this point, my biggest worry was telling Scott McNealy. I shared a certain loyalty to him with every other employee at Sun. He has that disarming effect on people. He and I had played hockey together on Tuesday, Saturday and Sunday nights for a couple of years with almost no contact in a work related setting. So I felt a little like I was "cheating" on him by leaving Sun. So, it is Tuesday night, November 28, 1990. Our team had just gotten off practice and a group of us were congregating at the "Dutch Goose" in Menlo Park for beers and burgers. Scott ordered his usual grilled cheese and Budwiser. I got the greasy cheeseburger and fries. A few days earlier, I had accepted my job offer from NeXT and was ready to tender my resignation at Sun. I'd been worried about telling Scott all night. I finally just blurted it out in the context of having to start paying for Saturday ice time, since I'd no longer be a Sun employee. Scott started in on me right away. He should have been in sales. He gave me a concise and pointed sales pitch. He questioned Steve's track record, accurately selling NeXT short. He promised that Sun could get their act together. He said he had heard there were problems with my group and he wanted to make changes. I was just trying to keep calm and stick to my guns. I said that I was tired of fighting the political battles and I just wanted a change of scenery; a new challenge. Scott then surprisingly asked me to do him a favor. He asked if I would write up some of my issues in an email and send them to him. He said that then at least my departure would have some good come out of it. I agreed to do it, and he added that I should not just give a laundry list, but I should propose a solution. He asked me to write down what I would do, "if I were God." I agreed and then we went back to talking with the team about the Detroit Redwings highlight on ESPN. That evening I spent a few hours writing down in a single email message the laundry list of problems with our 108 combinations of technology. I then gave a brief synopsis of why I thought that NeXT was doing it right. Then I proposed my solution. My action that I would take "if I were God." It wasn't pretty. At the time I was so frustrated by the directionless mass of dispassionate people in the group, that my only solution for them all was euthanasia. I suggested that staff be reduced by an order of magnitude. The remaining small core of people could do more to effect change quickly than you would ever get with any compromise solutions. I backed down a little and said if he couldn't bring himself to do that, then he should at least cancel NeWS and put it out of its misery. I implored him to do fewer things better. I compared the X11/NeWS merge to the Gaza Strip, suggesting that a compromise solution was no solution at all. I signed off by saying that while I appreciated his request for my opinion, I predicted that nothing would change, and it would take years before they finally realized they should abandon NeWS and Open Look and the toolkit du jour. (In retrospect, I was 100% right.) The response from Scott was typical. A one liner email message saying, "hang in there, I'm all over this." What I didn't expect, is that he forwarded it on to some people, and they forwarded it on to some people, and so on. Soon, my emailbox was overflowing with comments and opinions. James Gosling who had months earlier abandoned NeWS to go to Sun Labs to work on an SGML editing solution he called "Imagination", was one of the early respondents. He saw the spark I started at the executive level of Sun and he started pouring gasoline on it as fast as he could. Bill Joy, who I had known only casually through James began sending me comments. He was suggesting that maybe I would want to move to Aspen to work with him on his environment ideas. He proffered a paper titled "Further", which outlined his ideas on how to make an object environment in a flat 64-bit address space with C++ and Spring, an experimental OS project in Sun Labs. James also introduced me that week to a man who would be paramount in the foundation of Java, Mike Sheridan. Mike was the director of new business development or some such title in those days. He was out making technology deals for Sun. Mike had earlier founded Folio, a font technology company that Sun bought, and subsequently nearly sold to Microsoft, and eventually abandoned when they finally gave up on NeWS and licensed Adobe PostScript. So Mike had his share of Sun scars early on, James was clearly still crispy from getting burned on NeWS, and I was a flaming exit wound from the windows group. What a great team we would make! The answer came back after a few days. Sun was planning on fixing the problems I had outlined, and they wanted me to play a big role in that solution. I immediately declined, since there was no upside in it for me either way, and I didn't really believe them. I had nothing to lose, which is sometimes a good substitute for bravery. Wayne Rosing, the vice president of my division, was prepping to go run Sun Labs and took a keen interest in my email to Scott. Wayne had been primarily responsible for most of the decisions regarding the NeWS technology all those years, so I wasn't immediately happy to talk to him. He was a smart guy and quite likable in a big brother, wise-uncle kind of way; always fascinated by new technology, and especially things he could hold in his hand, in a sort of Ross Perot kind of existentialism. A physicist by training he loved to build "doobers", or little techno-baubles that had some mysterious purpose, but no practical one. His massive house in the Santa Cruz mountains has a full sized machine shop in the garage and world class observatory in his back yard. Wayne's history takes on different hues when told by different parties. His involvement with the Lisa project at Apple was always a thorn in his side. Steve's handling of the Lisa to Mac transition was the beginning of the end of Wayne's career at Apple. Wayne carried around his Steve Jobs scars on his pocket protector. At Sun, Wayne was very successful and kept moving. He was responsible for much of the standards process with SPARC Sun's RISC CPU and setting up SPARC International, the intellectual property holding company that licensed SPARC to all comers for $99. Not a real revenue generator for Sun, which foreshadowed a weakness we will explore later. He ran the Desktop Systems and Graphics Group for a while and never seemed to really get the gestalt of NeWS, although he was its biggest supporter on Scott's staff. In any event, he was the most enthusiastic about my ideas, and arranged a dinner with me and James a few days before I was supposed to arrive at NeXT. We met for dinner with James at Scott's Seafood in Palo Alto, with food almost as good as the one on Scott Street in San Francisco, but with the ambiance of an El Toritos. We exchanged platitudes for a while and beat a few NeWS dead horses for a while, and after a few cocktails finally got down to business. What did I want to do? After several days of coaching by Mike Sheridan, James and Sun's own director of the science office, John Gage, I had a pretty good idea of what to say. I lined up a sequence of suppositions for why projects fail inside of Sun that made a firm argument for creating a group that had complete autonomy from mainline Sun. I suggested that we would need to be completely secret, a black project. We would move off campus to some non-descript locale nearby, like the NFS group had done in Menlo Park a few years earlier. We would have to have a tiny group of people, not larger than a round table at Little Garden, our favorite Schezchuan/Hunan Chinese place in Palo Alto. We would get to hand pick a few senior contributors from inside of Sun, then go outside for art and design help. We would be exempt from the Sun Product Strategy Committee guidelines about using SPARC, Solaris and OPEN LOOK. In fact, we would explicitly build for some other platform, not at all like a workstation. This played like Soundgarden in Seattle. Wayne was so into the mood that he looked like he wanted to do it himself. If he didn't have the choice job of running all of Sun Labs lined up, I'd say he would have joined us then. Wayne sponsored a contest a few years earlier called "Vision Quest" where Sun employees wrote papers about what they thought the Sun environment would be like in say, the distant future of 1992. Most of us were too busy trying to make OpenWindows run in less than 16 megabytes of RAM to enter. To Wayne, this project was his chance to go implement "Vision Quest." Wayne didn't promise anything, but asked me to postpone my departure, which I did much to Leo's chagrin. The rumors of my email were flying back in my group, and I had to admit that I was on my way out. They were planning the official parting dim sum lunch when I got email from Helen, Wayne's assistant saying that he had called from the car and expected to deliver on 100% of what we discussed and could I meet him outside of Scott's staff meeting tonight at six. Wayne stepped out of the executive management group meeting for less than a minute to shake my hand and ask if I would accept. He gave me an offer letter which increased my salary significantly and gave me an equity position in the company. I gave him my verbal acceptance immediately. I wrote an email to Steve Jobs and Leo Hourvitz informing them that against all odds, Sun had come up with an offer that I couldn't refuse. That weekend Steve called me at home to try to change my mind. He did his standard attack of first telling me how pissed he was that I didn't come, then switching to saying how much NeXT needed people like me, then switching back to saying that I had such potential, if I only had come to NeXT, it would have been realized. I thanked him for his time and declined. So I had started a group with a vague charter to create some software environment that was at least as cool as NeWS, could be implemented by a small number of people in less than a year, without any real contact with Sun, nor any specific rules or parameters. Basic ideas were that it should be appealing to mass market users. It should have a compelling user interface that was not Xerox Star derived. It should be equally compelling to software engineers. It would involve art and design much earlier in the design cycle than traditional Sun projects. And, probably most important to us at the time, it would not have anything to do with the other software efforts inside of Sun. Mike Sheridan and James agreed to sign up to this on spec. Mike was available immediately, and James had a month or so to clean up his existing project before he could concentrate on this new venture. The next few months were very hectic as James and Mike and I worked through just what this project would be. We worked long hours on weekends writing up notes about how we could create something that was truly new in such a crowded market? We looked at how other products failed and succeeded. We looked hard at the mess we all made with X11 and NeWS. What about Beta versus VHS? Why had video games boomed, then busted, then boomed again? What role does art and design play in products? We looked at branding and consumer loyalty. We wondered if there would ever be a software equivalent of a vanity purchase? Something akin to a Rolex or a Mercedes, a product that is considered to be so superior that it is worth a substantial premium to consumers. We got a significant amount of Sun founder, Andy Bechtolsheim's time to discuss what a hardware platform might look like in the mid nineties. We discussed portables and PDA's. We bought strange portable devices like the prototype Go Lombard and the Sony Data Discman which only displayed in Kanji. We also shopped for real estate. In mid January 1991, James, Mike, Wayne, Andy and I went out to Aspen to stay at Bill Joy's house for a week to talk about these issues. We alternated between watching the Gulf War turn from Desert Shield to Desert Storm and typing away on Bill's luggable Macintosh about the attributes of this as of yet undefined project. Andy naturally was considering that it would involve new hardware, where I had previously thought of it as a new desktop software environment. Andy and Mike had a strong leaning towards creating a consumer device that was portable. We all talked about how much the Go's handwriting sucked. I had just flown over to England to visit Active Book Ltd., Hermann Hauser's company which was creating yet another bad PDA. This one was based on SmallTalk and had a keyboard that folded underneath. Bill Joy was lying on the floor in his living room during a heated discussion with Andy about folding keyboards and flexible circuit boards when Bill said, "This thing will have no keyboard. Trust me. I'm right; I usually am..." Thus began a long line of sporadic interjections by Bill where he was right. He usually is. One of our last nights there, Wayne and I were sitting upstairs in front of CNN watching the rockets over Baghdad and discussing NeWS as usual. I was trying to explain to him that NeWS was more than dynamically downloadable cross-platform interpreted code. It was a state of mind. It was a way to program that was radically different from any other way to think about the problem. The reason that he inadvertently screwed up the NeWS effort was that he never took the time, or was never able to understand that fine point. We needed to push in parallel on every aspect of the NeWS environment in order to make it succeed. Any of its parts was indefensible by itself. PostScript is fine for imaging, but as programming language, RPN really sucks. Thin wire networking is a great thing, but you have to produce a toolkit which leverages it before you will realize its potential. The lightweight object model is great as long as you don't compare it directly with C++. Understood as a holistic experience, NeWS was wonderful. Picked apart, attacked and compromised with X11, it was hairball. It was then that we heard the screams coming from the loft office and went up to investigate. James was in Bill's office logged in and reading mail and had discovered that Wayne's successor in managing the NeWS morass, Carl Wolfe had attempted to cancel NeWS while we were all out of town. James wrote an epic flame response which must have made Carl's spine tingle before he even read it. James is one of the only people at Sun who can wield such a high grade of lumber and keep his job. As awe inspiring as it seemed at the time, I've come to understand that being calm and collected 99% of the time as James is, adds a wonderful effect when you finally do decide to blow up over something. So it was springtime in the bay area, we've got our lease on the building up on venture capital row, Sand Hill Road, on the fourth floor of the Bank of America building. We had myself, James, Mike and an assistant, and a pretty vague idea about what we should be doing. By this time the project had morphed into something more concrete. It was becoming clear this project would include a hardware prototype, and the target market was "consumer electronics". All this was decided on in a hot tub at Squaw Creek Resort while at the Sun Worldwide VP's and Directors Conference. I had to crash the meeting since I was the only sub-director in the group at the time. Shortly after that, we added a good friend of ours Chris Warth, who was an old-time NeWS toolkit hacker, and fellow Imagination thinker with James. Ed Frank, the CMU Ph.D. crony of James' who built the SPARCstation 10 had just finished and joined us in early April. He brought along his asic jock, Craig Forrest who designed the memory management chip for the advanced graphics accelerator on the SS10. Right away, Ed and Mike took command of the project. Ed who was a fellow Sun DE, "Distinguished Engineer" of James' was a hyper type-A personality wrapped around a wicked smart and sardonically funny brain. Ed could build chips and design motherboards by day and write business plans in his sleep. The six of us bonded pretty tightly that first year. We converged on a target and started digging into it. Ed designed a basic portable SPARC based computer wrapped around a bunch of borrowed consumer electronics. Craig went to work designing the support ASICs for the device. Chris went to work hacking down a copy of SunOS 4.1.1 to fit in a smaller footprint. I started writing a graphics and media toolkit that we could use to create a radically different user interface experience. James was responsible for creating the integrating object software framework for all of this. This the environment into which Java was born. We were a group of outcasts from Sun who made each other more obnoxious the more we spent time together. It would have been interesting for an anthropologist to sit and study the 18 months that was this Green Project. We spoiled ourselves, because we thought we deserved it. We worked so many hours on such impossible tasks, that a few cases of Coke a week and a few dozen boxes of ice-cream bars didn't seem out of the question. Buying every known Nintendo game and input device on Sun's dime made a lot of sense to us. We were six guys who were trading our lives for a year and a half to create something cool for Sun. As our self-imposed deadlines started approaching, we became surly and defensive. I would yell at Ed about hardware problems for no good reason and he would trash on me back more viciously. Our ambiguiity and indecision burned out our UI designer David LaVallée so fast he actually went back to work at NeXT, where we had recruited him from. We escalated so far beyond any HR guidelines that there was no saving us. It felt like we were in some sort of alternate reality, where different rules were in effect. There were different rules of social engagement and proper discourse. Foul language became so common place we had to invent our own lexicon of in-joke vulgarities in order to keep finding humor in the situation. There are still several jokes that we could get laughing about with just the innuendo of one noun in the punch line. We were finishing each others sentences by the end. In the end, we didn't do it alone. In early 1992, we got some help: artwork from Joe Palrang, the designer of Duke(TM), UI design from Chuck Clanton, more awesome UI and application coding from Jonathan Payne, and a bunch of industrial designers and hardware technicians. And we needed it. We were starting to come apart physically and mentally. I tore out my ACL playing ice hockey and was writing code from my recovery bed the next day. James smashed his elbow on his first skate out on roller blades. Chris was ready to flip out and move to Costa Rica. Craig broke his elbow into tiny little pieces playing basketball. Mike was trying to pass a gall stone the size of a golfball. Even Jon, the new guy, tore out his ACL sliding into third base just to fit in. I had also developed several facial ticks and a pinky finger that wouldn't stop twitching. By the end of the summer of '92. James' language, Oak, was running pretty well. Ed and Craig's Star7 hardware prototype had successfully booted Chris' pared down SunOS. My graphics library was running well on the new display hardware. The Oak class libraries that Jon and I wrote were driving the user interface just fine. And we had all written a bunch of fairly credible consumer applications, like a television program guide, a shared message board, wireless paging, and drag and drop VCR programming. Chris, Jon and Craig even got the wireless data radios to call Oak methods over the wire. The Star7 prototype was finished. And no one died getting it there. Star7 was a tiny SPARCstation that Ed and Craig crammed into a box about 6" x 4" x 4". It had a wireless 200kbps radio, an infrared i/o port, a touchscreen, a 6" color LCD, two PCMCIA card slots, two Nintendo GameBoy speakers, and eight AA batteries. We managed to get SunOS, the Oak interpreter, graphics library, user interface classes, applications, images, animations and sound, to all fit on a 4 megabyte flash card, and run successfully in 4 megabytes of RAM. We built about six of these prototypes, which were the embodiment of a new way to think about hardware integration, microkernel operating systems, programming languages, object systems, user interfaces and consumer applications. The Green Project was officially over; we had delivered on our goals within 50% of all time estimates. A brief whirlwind tour of Japan to show off the new toys and we were right back in the thick of it. Mike and Ed had written a business plan about what to do with the technology. The first one was called "Behind the Green Door", which gives you an insight into the sense of humor. The next one was called "Beyond the Green Door". The final one was "The FirstPerson Business Plan". FirstPerson was a name that Mike and I came up with one day when we were designing some of the aspects of the environment which we called Persona. We all proposed to Sun that they start immediately funding a company called FirstPerson, Inc. which would begin commercializing the technology. There was much consternation about how this company would be structured. Mike and Ed were pushing for it to be a completely separate venture, funded by Sun, and possibly a Japanese consumer electronics vendor. But the main point was, new company, new stock, founder's equity. We had a fateful lunch one day at the California Cafe in Stanford Mall. Myself, Andy, James, Wayne, Bill, Ed and a few others. A discussion about the new company ensued and Ed was saying how it had to be an equity startup. Andy was quietly telling me, "I'm sorry, but that's not the way it works," when Ed had a classic outburst. He said, "Bill, you are out in Aspen, you're out of touch with reality!" Bill was not happy with this at all. His retort was basically that if Ed thought that Bill was out of touch, then Ed was even more out of touch. What happened a few weeks later was no surprise after that lunch. Ed wished us good luck, said good-bye and went to hang out in Sun Labs for a few months while he gathered investment capital to start his own company, NeTpower. Next came Mike Sheridan. Mike was pushing Wayne to get the job of President of FirstPerson. Rightfully so, Mike had been the leader and the visionary who got us to where we were. When Wayne balked at promoting Mike to Sun VP and giving him FirstPerson, Mike split. "I don't want to hang around here while the body gets cold," he said. So, just like that, we were alone. Wayne Rosing arrived the next day and was the man in charge. James and I debated long and hard about whether to give up right then, or fight it out. We weighed our options with respect to hiring an outside leader and considered them slim, since Wayne was considered to be a founding father of the project, some two years earlier. So, this was our dilemma: abandon two years of hard work, or take our chances with Wayne. I made the personal decision to stick it out. I told Wayne that I would only take the job if I was in more of a position of control of how things were run. I wanted to be on his staff, and in every high level planning meeting, and every intercompany meeting or presentation. I was deathly afraid of Wayne's reputation for signing checks that his troops couldn't cash. After some haggling, he and I agreed that I would be "Chief Technologist" of FirstPerson and James would be "Chief Scientist." Neither of us was ever very happy with these titles, but they never really mattered much in the long run. We moved the company to the best location in the entire south bay. The old DEC Western Research Lab at 100 Hamilton Avenue in Palo Alto. This is ironically where the OSF, Open Software Foundation was formed by the "Hamilton Group" before they came up with what Scott always called "Oppose Sun Forever". Six blocks of the finest restaurants in the Bay Area, CalTrans across the street for the San Fran commuters, and the nicest looking office buildings around. Things were looking up. Then I got on a plane to Japan with Wayne, and it slid downhill for a year non-stop. I was nervous about our business plan immediately. With the two principal authors no longer with us, I wondered who held the combination of the passion for the practical goals of the company and the business acumen to convert those goals into profits? Wayne had the hots to build some hardware. He was bringing in his old Sun buddies to go talk to various SPARC vendors about modifying a SPARC CPU core to be a low cost engine for Oak for embedded systems. My charter was to develop a staff of engineers who could deliver an tiny operating system which would support the Oak runtime. I went deep at NeXT and got a bunch of the guys who worked on the canceled NRW, NeXT Risc Workstation, a NeXTSTEP box based on the Motorola 88110, then the Power-PC. Peter King, Mike Demoney, John Seamons, Bruce Martin; these guys had the experience to do the job. James continued chairing Oak development, and we put some effort into a development environment, hiring Arthur van Hoff, the god of the best use of NeWS called HyperNeWS, and Lee Boynton, the reigning class hierarchy ace from the NeXTSTEP group. The company grew quickly. Too quickly. We had nice digs, a great logo, good looking stationary, a bunch of talented engineers and no business plan. I spent most of the spring on airplanes going to and from Europe and Japan. It was pretty clear that selling $50 SPARC chips to the consumer electronics industry is like selling ice cubes to Eskimos. These companies were expecting to spend about $5 per device in total incremental costs for R&D on the next year's model. Our cost structures were completely out of line. There won't be a significant operating system running on consumer electronics devices for quite some time. The basic tenets of the FirstPerson business plan were dead in the water, and Mike Sheridan and Ed Frank were not around to help fix them. Mike was now the president of a company called TV Answer in Reston, VA. He quickly renamed the company eon and tried to push them into the nascent interactive television industry. I was leaning the same way. In March of '93, I was in Denver at the introduction of the Time Warner Interactive Television trial scheduled for Orlando, FL in April of 1994. The Request For Proposals, RFP looked like it was written with our technology in mind. They were requesting proposals for a small microkernel operating system, a distributed object oriented runtime, and coincidentally an ability to also produce large real time disk server farms which can stream MPEG video over ATM networks. That was exactly what FirstPerson and Sun had to offer. I came back from Denver energized. FirstPerson turned on a dime to meet this challenge. It was just the battle cry the troops needed. It was never very clear how many people believed that we could pull off getting a multi-megabyte operating environment into a toaster anyway. This was it. The world's largest media conglomerate was begging for our technology. We put together a set-top-box proposal. James scrubbed his Oak slides into shape for this audience. Andy Bechtolsheim and I discussed how we could use a large cluster of small workstation class machines to deliver a multi-terabyte disk farm over MPEG rate ATM with reliability. We threw this proposal together in record time. We priced it pretty much at cost, plus some NRE, non-recurring-engineering costs and presented it to Time Warner with a promise that we would get them up and running in Orlando by their April of 1994 deadline. We then started gearing up for the event that we might very possibly win this contract and have to deliver. We rallied development plans and hiring and hardware designs. It was clear from Wayne's perspective that this was the pony to ride, and we were all going to go down with it if we failed. After commuting between Denver and San Francisco for a few weeks, literally sometimes three trips a week to manage revisions in the proposal, we came to a decision point. In my last meeting with the rank and file at Time Warner, I was told that they had taken a vote the day before and they unanimously picked FirstPerson's solution. They were so confident about it, that they felt comfortable telling us that they only had one more presentation to get through later that day and it would be official. It turns out that the next presentation was SGIs. We all know what happened next. SGI bid the job with complete vaporware. The came in and dazzled the top brass at Time Warner with some nice desktop workstation 3D demos and won the contract by basically doing the work for free. Jim Clark, then CEO of SGI, wanted to get in this business so badly, he was willing to buy his way in. So, now FirstPerson was in a market whose first big contract went to the enemy down the street. Fortunately, or unfortunately now in retrospect, another big cable television trial was coming up, and the chosen vendor, 3DO was very interested in licensing our environment for the trial. We spent the rest of the summer in discussions with 3DO, to the point of actually porting Oak to the 3DO game machine. We had drawn up a very thick legal agreement which took months of Saturdays away from us all to make sure that they had an exclusive license with respect to their enemies, Sega and Nintendo, and that we were still able to stay in business. After months of negotiations, it came down to the two leaders of the two companies, Trip Hawkins and Scott McNealy, in a brief conversation. Trip wanted exclusive rights to all of the Oak technology, and Scott wasn't willing to accept whatever amount he offered for it. End of discussion. We send all of their equipment back and promised to forget we ever saw it. So, here it is eight months later and we still don't have a business plan, nor any major customers. Wayne was insistent that we press on. A deal would come from somewhere. The engineers were getting really down because they didn't have a reference platform against which to design. Our solution for them was not a very palatable one. Wayne wanted to build a set top box from scratch, out of a custom SPARC chip with all of the trimmings. We would use this as our reference platform and use it as leverage in future interactive television trial opportunities. I was dead set against this, and fought to have us use something off the shelf, like a PC motherboard with a 486 on it. That way we would not have to spend millions of dollars on the development of our own hardware. I compromised by having us base the reference platform on a standard SPARCstation with a custom display card installed. We agreed to build this new frame buffer card cheaply with contractors. We would plan on demonstrating this finished environment and reference set-top box platform at the Western Cable Show in December '93. This would mean that we would had to have our PR story together enough to tell the world what we were planning to do as a business. A plan was devised to formally announce the company at the TED5 industry big-wig conference in Monterey. We had a major feature story done by Wired to ship in the December '93 issue. We would show our stuff to the world. We called in some PR people and some industry analysts. Allison Thomas was hired to be our PR firm, and she immediately raised red flags about our lack of a coherent business strategy. She wondered aloud about the lack of a market for real interactive television deployment. My good friend, and noted industry analyst, Denise Caruso came by and was equally down on our plans to go "public." While I spent the better part of the fall on tour to Japan and Europe and Australia with our new story about interactive television and our reference platform, the engineers were growing restless again. There was no one there every day who held enough of the vision in their head and heart to keep people happy. Well meaning engineers turned into surly trouble-makers because they had too much time on their hands and lack of direction from their management. The battle cry from the troops was to give them a business plan they could act on. It was November and time for Scott's annual review of all of his business units, the so-called Ops Review. I wrote a very self-critical review of FirstPerson's prospects for the Ops Review pointing out all of our current shortcomings and, frankly, our lack of direction in the face of a fading market. This is when the bad news finally hit home with Wayne. Scott wanted a real business plan from him or else. Wayne responded in classic style; with a flourish. He declared the business plan his highest priority and that he would get it done by the end of the year. A particularly sarcastic technical writer Xeroxed this proclamation a few dozen times and taped it up in every public space. Much to everyone's chagrin and to be honest, my surprise, the due date came and went without so much as a mention from Wayne as to why he hadn't even produced a draft of the business plan. Everyone's shock turned to anger and then they started putting resumes on the street. When I returned from the holiday, the remaining members of Wayne's staff and I decided to do it ourselves. I enrolled the engineering director, the business development guys and our one marketing person. We hired an outside consultant to help with financials. In a period of about two weeks of almost sleepless work, I managed to alienate most of the other members of the group left to work on the plan. I was single minded in my effort to salvage the last three years of my life. I can only hope they understand that it was nothing personal, I just didn't have the time or the energy left to bring them up to speed enough to where they would understand my motivation. The only person who bought into my vision for how to resurrect this dying project was the product marketing manager for Oak, Kim Polese. Always one to remind me of the size of the desktop PC market that FirstPerson was ignoring, she steered me away from the holy grail of interactive television. Later she became senior product marketing manager for Java and HotJava, and is now the CEO of Marimba, Inc., a Java startup that includes several other Sun old timers, Arthur van Hoff, Sami Shaio and Jonathan Payne. Our goal for that business plan was simple. Remove variables, remove adventurous new markets, stop talking about building hardware, and stop talking about consumers sitting on their couches in front of a mythical interactive television. In January of 1994, it was as clear as it is today, that the Microsoft/Intel PC and the PowerMacintosh had become the consumer electronics devices we had been looking for. Mike Sheridan's premise in 1990 had turned out to be wrong: consumer electronics companies would not rise up from the primordial ooze of 4 bit microcontrollers, which leave VCR's blinking 12:00, but rather the PC industry would gain the consumer marketing and design savvy to be able to out-sell televisions. Best case would be when they meet in the middle -- in some sort of dumbed down TV based PC. The business plan I co-authored in January of 1994 had the audacity to suggest abandoning dozens of jobs and millions of dollars of sunk cost in order to bring the project back into focus where it might be able to capitalize on the rise in consumer spending on desktop entertainment and on-line multimedia. I was later chastised for not targeting the world wide web in this plan. None of these detractors bothered to notice that none of us had ever seen Mosaic at this point. I was ridiculed for suggesting that we could take on Kaleida and MacroMedia. Today, Kaleida is defunct and MacroMedia is a Java licensee. In any event, I delivered this business plan the day before it was due and left Wayne to present it. I had to be on a jet to Mexico to spend a week with Nicholas Negroponte and the Television of Tomorrow Consortium explaining the wonders of Oak for the ten-thousandth time. So, what would you expect as a reward for such a decisive and accurate resolution to our woes? You guessed it. Wayne fired me. Well, he didn't actually clean out my desk and walk me to my car, but when I got back from Mexico he did suggest that I wasn't the Chief Technologist of his company any more, and that I should take a few weeks off while he figured out what to do with me. I refused to leave. I refused to take any time off. I got my HR representative, Rich Stiller, glued to my hip and went hunting to find out what had happened while I was climbing Chichinitza. As it turns out, I had helped write two business plans that last few weeks. Earlier in the year I had suggested to Wayne that we get Sun to form another division which I called "SunInteractive," which would go after the video server business. It was clear that FirstPerson didn't belong in that arena, and that it was a much larger effort than we could deal with. Wayne asked me to help with the SI plan at the same time as I was writing the FP plan. So when Wayne delivered my plan to the FP troops before the executive presentation, he hadn't fully bought into the idea and so he sandbagged the pitch. When he got questions he couldn't answer about how we would compete in the desktop space against such powerhouses as Macromedia and Kaleida, he waffled and backpedaled to the old FP plan-of-record, and the SunInteractive plan. When he saw how well this idea played to the troops, he switched tracks completely to the execs and pitched pretty much the SunInteractive plan, with no real change on the FirstPerson front. The next day in a hastily called meeting with the FP employees again, he denounced my plan, suggesting that I had written it completely without his authorization, calling me a "cowboy." He spent the rest of the week going around one-on-one with each of the key employees re-enforcing that same message. By the time I got back, I was half way in the grave. I didn't speak to Wayne for about a month while I went around clearing my name, and making sure that Rich heard everyone's perspective on what had really happened. I explained to everyone that Wayne had read a draft of the plan about a day before it was finished and understood it, approved of it and even suggested changes which I subsequently made. I felt like I was at a legal deposition for a month. Everyone was amazed that I didn't just quit, but I was too stubborn. I felt I had been unfairly treated and was going to stick around until I got my name cleared. By March, I was reinstated as having some role in the future of the company. I was biding my time, waiting to see if Wayne would show any leadership and direction. Wayne's direction was pretty much status quo, build the reference set top box, finish Oak, think ITV. I had come up with a crazy idea at an earlier offsite with Bill Joy and James Gosling in Breckenridge, CO, which was subsequently attributed to altitude sickness, to take the complete sourcecode to Oak and give it away for free on the Internet. We could figure out what to do with it once it became popular. It solved a lot of problems about barriers to entry and competitive pressures, while getting thousands of people to help you finish and debug your own engineering. After the business plan debacle, this was starting to become a real strategy. SunInteractive happened, and a lot of the pressure was taken off of what to do with the operating system and hardware guys. The FirstPerson name was officially dropped and we became a group inside of Sun's hardware division for political reasons. We became the Live Oak group, under the sponsorship and watchful eye of Bill Joy. Bill had come to my defense and enrolled me in his effort to go understand the new Internet web opportunity. I took some of Bill's equipment and set up web sites for the WELL on-line service in Sausalito and got Will Hearst's San Francisco Examiner and Chronicle service, "SF Gate" on the web. This effort, combined with the Breckenridge altitude ideas and Bill's renewed interest in Oak as a basis for his "language based system", produced a new agenda for us, which was Oak and web focused. Now that we had a plan of record, to ship Oak in source form on the net, things got much more productive. We started focusing on fixing all of the loose ends in the language. Jonathan Payne was working on optimizing the interpreter. Arthur van Hoff rewrote the compiler in Oak itself, replacing the C version that James originally wrote. This was also a good test of the environment since this compiler was the largest single Oak program ever written. A fair number of burned out engineers were using this time as paid vacation by Sun, but for the most part the core team ignored them and got back to work. Wayne's role became more and more fuzzy, and in a fateful meeting to kick off Live Oak planning in Aspen in July, several things came to a head. Bill Joy had always been the guardian angel of this project, swooping in to show his support, or save us from budget cuts, but after my blowup with Wayne, he took a more direct role. He wanted to use Oak as a systems programming language for his new operating system ideas. He was often comparing Oak to more complicated and elegant languages like Python and Beta. He would often go on at length about how great Oak would be if he could only add closures and continuations and parameterized types. While we all agreed these were very cool language features, we were all kind of hoping to finish this language in our lifetimes and get on to creating cool applications with it. The more we argued with Bill about making those changes the more strongly he would fight us. After a while it became a choice between not having Bill involved at all or losing control of the language. James and I got into a rather epic battle with Bill in his office in Aspen one evening about this issue. He started out by insulting both of us about how poorly Oak compared to better languages and then he volunteered to resign from being the Live Oak architect if we wanted him to. James and I agreed that would be best and walked out to go across the street to watch "Speed". What a rush. The next day, Bill was pretty much his normal old nice guy self again, a little relieved, I think, to be out of the role of being directly responsible for our destiny. Bill is annoyingly smart, and I wouldn't put it past him to have planned that whole scenario the night before to force us to defend our positions and take ownership of our project. The interesting thing is that we were right about needing to finish the language even though it had missing features. It was a timing issue, there was only about a three month window in which the whole Java phenomenon could have happened. We barely made it. It is also interesting that Bill was absolutely right about what Java needs long term. When I go look at the list of things he wanted to add back then, I want them all. He was right, he usually is. The other shoe dropped about two that afternoon, as Wayne showed up a day late for the meeting. He and I went for a long walk where we cleared the air a fair amount. I suggested that I didn't think anyone could lead such a technically challenging project unless they had a passion for the subject. If Colin Powell had been around then, I'd have quoted his "fire in the belly" speech. I recalled for Wayne our discussions so many years earlier about NeWS, and how he fundamentally never got the gestalt, and suggested that he never really got Oak either. In the end, he decided that he didn't want to work on a project that he wasn't passionate about. Realizing that he is most passionate about the telescope in his own backyard, he retired from Sun to tend to exactly that. Wayne and I traveled a long and bumpy road together and had market conditions been different, who knows, maybe we could have succeeded together. Regardless of what people might remember from those days, I still have a lot of respect for his career accomplishments, and chalk up our struggles to simple difference of perspective. So, in the end of that fateful week in Aspen, James and I came away with control of our own destiny. James had his language back with incentive to make it better, and I was given the charter as usual, to make something cool out of it. Even as I was struggling to survive the summer of '94, I was putting out feelers for where I would go next should I decide to bail out. The trials of getting through the transition and direction setting for the new project left me with little energy for smaller challenges. I spent a fair amount of time defending the merits of Oak versus various other language projects inside of Sun. Tcl, C++, Self, Clarity, IDL, and other alien technologies were creeping into the scenery. Given the nature of my evangelical role in '93, I had several job offers within a week and started thinking about what I wanted to do before I left. I felt the need to get something working in Oak that was wicked cool on a desktop machine. For the previous year, all we ever saw running in Oak was displayed on a television screen on the set top box simulator. So, I set to work writing a simple abstraction for a window system. I revived a bunch of old Oak interfaces to X11 on my desktop. I wrote a mini-toolkit in Oak which had components and fonts and buttons and scollbars etc. I could then display little windowed applications written in Oak on a desktop computer. I ported a dynamic graph layout algorithm from C++ to my toolkit. I then wrote a simple HTML parser and renderer which could display our group's home page. I showed these applications to Jonathan Payne, one of the few engineers, other than Arthur, hard at work. Jon's interpreter optimizations were in good shape, so he was looking for a new project. After we talked about how my quick and dirty HTML parser was not good long term, Jon dove in bigtime. He got the SGML textbooks and wrote a nice clean HTML parser, then he wrote all the networking classes to actually speak HTTP and FTP. Then he wrote an efficient page renderer. I got GIF image loading working, and added more toolkit components. After about a week or so, we had a pretty credible Mosaic clone web browser which we called WebRunner. This got folks pretty excited, so Chris Warth and Arthur and James and Jon got together and worked out a way to load classes over the net, much the same way that Chris had done back on the Star7 radios. Chris formalized the interface to these downloaded classes, and viola! Executable content. The first Java Applet was born. Duke was waving in a page. I left Sun Microsystems a few days later. The rest, as they say, is history. Someone else's history, and should be written about by them. For my part, I went to work at Starwave, where I have enjoyed being on the other side of the platform war equation. I now sit comfortably between Netscape and Microsoft while they both are compelled to try to make their platforms work well for my company's content. Java has played a major part in our strategy to become the number one destination site on the Internet. A task we succeeded at in short order. Who knows, if Starwave is as successful as Java, it will all have been worth it.
| |
Patrick Naughton |