![](https://habrastorage.org/getpro/habr/upload_files/65c/a64/f64/65ca64f64ee0bc7a985e3bbc0800e7ca.png)
Вступление от переводчика
Патрик Ноутон — первоклассный специалист из Sun Microsystems (в 2010 г. поглощена Oracle), являющийся одним из создателей Star7 и Java. В своё время о нём писал Forbes, а в Disney называли «лучшим в отрасли разработчиком веб‑сайтов с насыщенным контентом».
Именно он был инициатором и организатором запуска проекта (причем через конфликт с руководством Sun и критику их работы, находясь на грани ухода из компании), который привёл к появлению Java.
Если бы Патрику позволили уволиться и перейти в NeXT, возглавляемую Стивом Джобсом, то языка Java не существовало бы.
Данный текст, опубликованный им 18 марта 1996 г., позволяет взглянуть в прошлое на «лихие» 90-е, когда Sun пыталась оседлать перспективные направления, связанные с компьютерами, сетями и сопутствующими технологиями.
Откровения Патрика погрузят вас в атмосферу исследовательского духа в области компьютерных систем, витавшего в те времена во многих университетах и IT-компаниях, позволив прочувствовать настроение людей, переживающих взлеты и крушения своих проектов.
Но Патрика не запомнят, как одного из компьютерных гениев, работавших в Sun над Java. А все потому, что на пике своей карьеры в возрасте 34 лет, в конце 1999 г. он потеряет всё: семью, престижную работу, бо́льшую часть состояния и репутацию. Причиной тому будет поимка его ФБР и обвинение в педофилии.
Но до этого переломного события ещё около трех лет; успех и востребованность начинают кружить голову и кажется, что вся жизнь впереди…
PS: Текст содержит множество метафор, имен, названий, отсылок, которые сложно понять, живя в другое время и в другой культуре. Я сопроводил его необходимыми пояснениями, ссылками, фотографиями и подзаголовками, упрощающими понимание текста.
Это первая публикация из цикла «Забытая история Java глазами её участников». А забытая она потому, что, по моему мнению, все статьи, рассказывающие историю Java, посвящены либо исключительно вкладу Джеймса Гослинга в данный проект, либо в них представлена только его точка зрения в виде воспоминаний. А другие участники упоминаются лишь вскользь. Но Джеймс работал не один, а в команде, и было бы несправедливо забыть его коллег, принижая их вклад в общее дело.
The Long Strange Trip to Java
![Обложка книги «The Java handbook» Обложка книги «The Java handbook»](https://habrastorage.org/getpro/habr/upload_files/1e9/486/d91/1e9486d9173ab4dfaafb6381a70f4d2b.png)
Примечание: это полная версия (несокращенная и неотредактированная) эпилога моей книги «The Java Handbook».
При её редактировании мои редакторы боролись с тремя проблемами: клеветой, оскорблениями и объемом. Они не решились добавить в книгу всё то, что я считал нужным. Мне понятна их точка зрения и причины: ограничение размера книги, а также опасение получить иск от моих коллег, с которыми я работал последние 12 лет.
Тем не менее всё, что я пишу здесь, является лишь моим мнением и эта публикация никоим образом не отражает точку зрения издательства Osborne/McGraw-Hill, а также их сотрудников. И если данный текст оскорбит кого-то настолько, что вы готовы будете позвонить адвокату, то я незамедлительно вырежу информацию о вас, как только вы со мной свяжитесь. (Я также должен сказать, что содержание этого текста никак не связано с корпорацией Starwave, в которой я работаю в данный момент). Довольно слов.
Я много лет спорил с самим собой о том, стоит ли писать обо всём этом. Прошло много времени, и из-за этого факты путаются. Теперь я вижу прошлое по-другому и помню только выборочные моменты, поэтому мне трудно объективно описать те времена. Многие журналисты спрашивали меня о моей версии событий последних лет, и некоторые из них смогли почти точно передать суть происходящего. Но даже после этого я всё равно чувствую необходимость в последний раз заглянуть в прошлое, чтобы каждый мог понять, как мы оказались там, где находимся сегодня. Позволю себе процитировать философа Джорджа Сантаяну: «Те, кто не учится на своих ошибках, обречены повторять их».
Я ничего не утверждаю и ни на чём не настаиваю. Читатель сам несёт ответственность за выводы, которые он сделает после ознакомления с этой главой.
Первое впечатление о Д. Гослинге
![Джеймс Гослинг за своим рабочим местом Джеймс Гослинг за своим рабочим местом](https://habrastorage.org/getpro/habr/upload_files/5d7/e3d/372/5d7e3d372efddd03851fc2af8e054667.jpg)
Впервые я встретил Джеймса Гослинга весной 1988 г. Он был одет в плохо сидящую белую футболку с неясной отсылкой к коту французского философа Жана-Поля Сартра, без обуви и в разных носках.
Его большой угловатый офис в здании четырнадцатого кампуса Sun в Маунтин-Вью, штат Калифорния, был забит кучами книг и бумаг. На боковой панели монитора его рабочей станции Sun 3/60 была наклейка «Macintosh Test Drive». На стенах офиса висела хорошая живопись: не типичные для хакеров динозавры и бесплатные постеры с конференций USENIX, а настоящие японские рисунки, выполненные пером и чернилами. На его книжной полке стояли классики компьютерных наук: Горовиц, Кнут, Фоли и Ван Дам, Xerox Bluebooks, материалы с конференций SIGGRAPH и OOPSLA, произведения Брифеда и Ларсона. Очевидно, Джеймс был не стандартным программистом.
Оглядываясь назад, я чувствую по отношению к нему благоговейный трепет, как будто я лежу на полу в позе актера Уэйна Кэмпбелла и говорю: «Я не достоин». К счастью для меня, я был слишком неопытен, чтобы знать, кто такой Джеймс Артур Гослинг и поэтому не осознавал его значимость.
Учебные годы
Несколько месяцев назад я впервые столкнулся с Sun 3/50 в моём маленьком инженерном университете на окраине замерзшей тундры, известной как Государственный парк Адирондак, штат Нью-Йорк. Недалеко отсюда находится озеро Лейк-Плэсид, ставшее знаменитым благодаря победе американской студенческой команды над сборной СССР в хоккейном матче на XIII зимних Олимпийских играх.
Университет Кларксона, где я учился, был известен тем, что привлекал множество ребят из Канады, играющих в хоккей в NCAA Division I. Он почти не выпускал программистов, которые могли бы работать в Кремниевой долине, но многие годы продолжал выпускать потенциальных хоккеистов НХЛ, таких как капитан команды LA Kings Дэйв Тейлор. Роль кузницы технологических кадров была за такими восточными гигантами компьютерных наук, как CMU и MIT. Кларксон мог надрать задницы в хоккее, но в области компьютерных наук уступал им.
Зная все это, может показаться странным, что в 1983 г., когда у CMU ещё не было ни одного Macintosh, а MIT не начал тратить время на IBM RT, маленький Кларксон смог выдать в личное пользование ПК каждому поступившему первокурснику.
![Новость в газете о выдаче ПК первокурсникам CMU Новость в газете о выдаче ПК первокурсникам CMU](https://habrastorage.org/getpro/habr/upload_files/129/409/d6c/129409d6c6b819f30720e0ee9678fcd9.png)
В тот год в один из августовских дней, мы пришли в университет, чтобы занять длинную очередь для подписания бумаг за получение больших коробок с деталями ПК. Затем мы вернулись в общежитие, чтобы разгрузить выданное железо, содержащее невероятно быстрый 4,77-мегагерцовый процессор 8086 от Zenith Data Systems.
Этот был крутой компьютер Zenith Z-100. В нём было два процессора — 8085 и 8086. Он поставлялся с двумя ОС: MS-DOS от небольшой компании из штата Вашингтон, которая звалась Microsoft и имела уродливый зеленый логотип, и CP/M от Digital Research. У него была отличная подсистема отображения, которая могла показывать 8 цветов при разрешении 640x480.
На тот момент ни мой университет, ни Zenith не считали проблемой то, что данная система оказалась не полностью IBM-совместимой.
Я провёл прошедшее лето, работая на настоящем IBM 5150, и ни одна моя программа, написанная для него, не заработала на выданном нам Z-100. А все потому, что Microsoft создала собственную версию ОС MS-DOS, которая была не во всем совместима с PC-DOS (стояла на IBM 5150). Из-за различий в оборудовании отображения, использующем разные графические стандарты (MDA в Zenith и CGA в IBM), ОС не могла одинаково взаимодействовать с обеими платформами, что приводило к несовместимости ПО. Именно тогда я прочувствовал на собственной шкуре проблему несовместимости, которая будет преследовать меня всю карьеру.
Что я с этим сделал? Ничего. Я приступил к изучению электротехники и вычислительной техники, оставив всю эту героическую разработку ПО профессионалам из CMU и MIT.
Изучая программирование на языке ассемблера, я погрузился во внутренности MS-DOS, PC-DOS, а также в детали работы различных аппаратных устройств, управляемых этими ОС. Я стал экспертом в написании драйверов для видеоадаптеров и библиотек на языке ассемблера. Также научился рендерить графику, читая Фоли и Ван Дама.
Z-100 поставлялся с тремя замечательными языками программирования, разработанными нашими друзьями в Вашингтоне: FORTRAN, Pascal и BASIC. Но ни один из этих языков не имел приемлемых графических библиотек. По этой причине я решил создать для них набор инструментов для работы с окнами и графикой. Но ОС, с которыми я работал, оказались настолько сложными, что в конечном итоге мне проще было использовать язык ассемблера, чем эти языки. Что я и сделал.
Летом 1985 г. мы с Расселом Нельсоном написали клон MacPaint для ПК на языке ассемблера. Мы достали ксерокопию документации для разработчиков Inside Macintosh Эспинозы и Роуза и принялись за дело.
Весь 1986 г. я работал, участвуя в программе в Кларксоне под названием «Семестр в индустрии». Я находился в своём родном городе Рочестере, штат Нью-Йорк, разрабатывая систему, предоставляющую пользователям возможность в публичных местах получать доступ к сетевой мультимедийной информации. Речь идет про ПК с сенсорными экранами, размещёнными в супермаркетах по всей стране.
Я написал много низкоуровневого кода для графики и пользовательского интерфейса, позволяющего смешивать видео с LaserDisc с компьютерной графикой. Это снова была ещё одна система, тесно связанная с конкретной аппаратной платформой, хотя я и совершил гигантский скачок с 100% использования языка ассемблера до Turbo Pascal в пропорции примерно 60/40. Это был строго типизированный и интерпретируемый язык программирования с быстрым компилятором, который научил меня ценить проверки ошибок в коде на этапе компиляции.
Через год производитель этих устройств стал хорошо зарабатывать, и мне стало страшно, что если я останусь здесь дольше, то никогда не закончу учебу. Поэтому я собрал свои вещи и вернулся в Кларксон.
По приезду зимой 1987 г., когда мне оставалось доучиться три семестра, я сменил специализацию на Computer Science. Это было похоже на ситуацию, когда спортсмен тренируется всю зиму для участия в летнем легкоатлетическом сезоне, но когда всё солнечно и легко, решает бросить всё в последний момент. Я лишь желал сосредоточиться на написании ПО и перестать беспокоиться о том, как конструировать усилители и силовые трансформаторы. Так что я успешно прошёл учебную программу по Computer Science, изучив множество интересных и эзотерических языков программирования, таких как LISP, Scheme, Prolog, SETL, Forth и SmallTalk.
Летом я работал главным инженером на неудачном проекте по спасению мира от терроризма. У нас был профессор химии с манией величия, который однажды поскользнулся утром в душе и ударился головой. Когда он очнулся, то осознал статистическую зависимость между емкостью, проводимостью, частотой и количеством взрывчатого вещества в пластинах конденсатора.
Лето 1987 г. мы провели в кампусе SUNY Potsdam в заброшенном общежитии, слушая по NPR судебные процессы по Иран-контрас и параллельно создавая самую дорогую в мире капсулу а-ля Рубика Гольдберга, управляемую вуду-статистикой.
Это было ещё одно упражнение в написании большого количества кода, который работал только на одной платформе. Из-за этого я считал нашу работу пустой тратой времени.
Вскоре, когда мы поняли, что разрабатываемый прибор для обнаружения бомб сам является ещё той «бомбой» и его можно использовать только, как детектор крысиных экскрементов в коробках с хлопьями или цианида в лекарстве под названием Тайленол, наш профессор химии оказался под следствием из-за нарушений его финансовых соглашений с HUD и FAA. Более того, у нас было много студентов без лицензий, которые взаимодействовали с взрывчаткой, цианидом калия, мышиным ядом, кокаином и множеством других контролируемых специальными службами веществ. Я был просто счастлив уйти с этой работы живым.
Наступила осень 1987 г., а я до сих пор ни разу не видел ни одной строчки кода на языке C и не пользовался UNIX-машиной. Я никогда не встречал и не слышал о Джеймсе Гослинге или Билле Джое. Я шесть лет копался во внутренностях компьютера с ОС от Microsoft и был готов бросить всё в один момент. Летом этого года я переехал в старый дом с моим ворчливым другом Адамом Фрицем, у которого загадочным образом были хорошие связи в университете, хотя он был студентом, как и я.
Адам привел меня в мир Интернета, заставив купить модем на 300 бод за 560$ и получить учетную запись на UNIX-сервере. Это был устаревший, используемый для отопления комнаты, компьютер Gould, работающий на ОС UTX-32. Я подумал: ладно, отлично. Теперь у меня есть большой ПК, который будет отображать всё, что мне потребуется на эмуляторе терминала. Но зачем мне всё это нужно?
Тогда Адам показал мне Интернет, который только начинал развиваться. Ну, в то время он назывался ARPANET, USENET и BITNET. Это меня зацепило. Сетевые новости, электронная почта, FTP... Я видел будущее через модем, который едва успевал за моим набором текста.
Затем у нас появились три рабочих станции Sun 3/50. Осенью 1987 г. они казались мне такими невероятными.
На тот момент Sun работала уже более года, но я ничего о них не знал. Мы обсуждали возможность ускорения расчётов по обнаружению бомб на её серверах, но в итоге выбрали более простой вариант, просто установив математические сопроцессоры на свои ПК.
Затем мы с Адамом установили SunView и SunOS 3.5. Sun 3/50 были бездисковыми машинами, которые взаимодействовали с Sun 3/260 по сети через предшественника NFS, называемого ND. Через FTP мы заходили в MIT, чтобы скачать исходники программ GNU. Кто может забыть «ftp prep.ai.mit.edu»? Это то место, где мы все научились писать «anonymous» для анонимного доступа к FTP-серверу.
Мы использовали GNU EMACS в качестве оконной системы, когда однажды наткнулись в MIT на X10.
Там же мы прочитали о перспективном проекте под названием X11, который должен был стать спасением от платформозависимого кода. Это означало, что написанные нами программы для X11 должны работать где угодно! Мы с Адамом скачали документацию по PostScript и, загрузив наши новые лазерные принтеры рулонами бумаги, распечатали все предлагаемые API для X11.
![Обложка журнала «Scientific American» за 1986 г. Обложка журнала «Scientific American» за 1986 г.](https://habrastorage.org/getpro/habr/upload_files/5ce/066/611/5ce066611876672997d69b0a5012f748.png)
Я погрузился в изучение X11 так же как ранее в MS-DOS: освоил основы и начал писать приложения. Первые несколько строк кода, которые я написал для X11, реализовывали алгоритм, опубликованный в журнале «Scientific American» (Сентябрь, 1986). Это была фрактальная последовательность под названием «hopalong», отображаемая на экране в виде гипнотических узоров. Я адаптировал её как экранную заставку и выложил исходный код в Интернет.
Эта программа, под названием «xlock», все ещё работает на каждом Sun, SGI и кто знает, скольких ещё X11-базовых рабочих станциях ночи напролёт. Я несу ответственность за одну из крупнейших в мире растрат компьютерных ресурсов. Простите.
Трудоустройство в Sun
По мере того как я продолжал писать всё больше и больше кода для X11, начал обнаруживать слабые места и недостатки в его дизайне. Оказалось, что почти невозможно было написать переносимую программу для X11.
Именно тогда, в конце 1987 г., я впервые пересёкся с Джеймсом Гослингом.
Однажды из центра вычислений в Кларксоне кто-то принес кассету с программой под названием NeWS от Sun. Аббревиатура расшифровывалась как «Сетевая расширяемая оконная система». Мы сразу загрузили её вместо X11 и пришли в восторг! Это было самое элегантное и красивое ПО, которое я когда-либо видел.
Несколько месяцев назад, когда требовалось настроить наши лазерные принтеры для печати документации X11, нам с Адамом пришлось изучить язык PostScript от Adobe. К нашему счастью X11 использовала этот же язык для отрисовки чего угодно на экране, включая плавное отображение изображений и шрифтов под любым углом и в любом масштабе. На самом деле это была удивительно простая идея: взять проверенный язык программирования, который отображает страницы на принтере, и адаптировать его для работы с экраном.
Погружаясь глубже в NeWS, мы заметили, что он включал в себя собственную концепцию объектно-ориентированного программирования и небольшой набор инструментов для пользовательского интерфейса под названием «lite». Нам стало понятно, что мы обнаружили что-то действительно стоящее.
Весной я заканчивал свой выпускной проект и думал, где буду работать после окончания учебы. Меня не взяли в Microsoft, прислав по почте стандартное отказное письмо. У меня были перспективы с Intel CAD и несколькими другими небольшими компаниями по производству ПК, однако Адам сказал, что если мне так нравится NeWS, то почему бы мне не пойти работать в Sun?
В Sun? Я даже не знал, где они находятся! Мне пришлось достать карту, чтобы найти в округе Санта-Клары городок Маунтин-Вью (Кремниевая долина). Я был ошарашен, узнав, что они находятся в Северной Калифорнии, а не около Лос-Анджелеса, как я всегда представлял.
Звучит как отличная идея — получить работу в Sun. Как я должен это сделать? Почтовая служба США подвела меня с Microsoft, поэтому мне нужен был новый подход. Ах, Интернет. Я зашел на новостную группу «comp.jobs.offered» и начал искать информацию о Sun. Я нашел объявление, опубликованное Стивом Эвансом, уважаемым автором оконной системы SunView, и ставшим недавно миллионером благодаря компании Sun. Я отправил по электронной почте своё резюме Стиву и на следующей неделе получил авиабилеты по почте.
И вот я стою в кабинете Джеймса Гослинга. Он спрашивает меня о маленьких проектах, которые я включил в своё резюме как профессиональный опыт, хотя на самом деле это были проекты, которые мы с Адамом придумали, чтобы скрасить наши скучные занятия на последнем курсе обучения. Я стою у доски и рисую картинки векторов света, пытаясь объяснить, как работает зеркальное затенение по Фонгу в 3D, хотя в моём проекте было реализовано только затенение по Гуро. Я делаю несколько правильных предположений, и мы погружаемся в обсуждение оптимизаций такого же рендера для процессора Motorola 68020. Я объясняю, что работал только с ассемблером Intel, но понимаю, о чём говорит Джеймс.
Интервью заканчивается слишком быстро, но на нём я почувствовал, как следующие шесть с половиной лет будет выглядеть мой рабочий день. И мне это понравилось.
Остальные интервью прошли без особых проблем, и к концу недели я получил письмо с предложением о работе. Два месяца спустя я сдал в полдень последний экзамен и в 12:30 уже ехал в своей машине на запад.
Неделю спустя я прибыл в Пало-Альто со всеми своими вещами, упакованными в мою машину, которая ехала на буксире за машиной моей будущей жены Кенны, решившей поехать со мной по неизвестной мне причине. Это было 18 мая 1988 г.
Мой офис случайно оказался рядом с кабинетом Джеймса. Со временем я понял, что находиться между своим наставником и его маршрутом в туалет — это серьезный стимул для карьеры.
Гонка оконных систем: NeWS vs X10/11
Начав работать в Sun, я быстро обнаружил, что жемчужина разрабатываемого ПО, которое изначально привлекло меня сюда, начала тускнеть и терять свою ценность.
Тогда я ещё не очень хорошо знал Джеймса, но, оглядываясь назад, точно понимаю, что происходило с его проектом. Джеймс был блестящим ученым-компьютерщиком, но не слишком разбирался в политических играх.
В прошлом году Билл Джой, когда Джеймс рассказывал о NeWS, представил его аудитории USENIX как величайшего из ныне живущих программистов в мире. Склонность Билла к преувеличениям и монашеское смирение Джеймса создали довольно неловкую ситуацию для последнего.
Будучи классическим хакером «типа Б» (в старом добром смысле слова хакер) с мягкими манерами, Джеймс не обладал той силой духа, которая позволила бы ему бороться с нападками на NeWS. Политический климат в компьютерной индустрии в 1988 г. был таков, что конкуренты Sun начали воспринимать её как реальную угрозу. Ранее все считали их просто группой студентов из Стэнфорда, собирающих системы из деталей Motorola и поставляющих бесплатную университетскую ОС.
Как только Sun добилась большого успеха в стандартизации NFS, их стали воспринимать как серьезного игрока. Попытка продвинуть на рынок новый продукт NWS, известный как NeWS, рассматривалась конкурентами как слишком большая угроза. Маркетологи Sun пытались использовать успех NFS, сделав название NWS похожим по звучанию.
Интересно, что первая статья Джеймса о NeWS называлась «SunDew - A Distributed and Extensible Window System».
Реакция была быстрой и жёсткой. MIT начал активно совершенствовать X10, параллельно работая над новой версией X11, разработку и продвижение которой поддерживали DEC, HP, IBM и другие технологические компании.
Sun не поспевала за ними, проигрывая гонку даже несмотря на то, что Джеймс и Дэвид С. Х. Розенталь, другой архитектор NeWS, занимались портированием X11 на Sun 3. Сообщество X11 начало оказывать давление на Sun, чтобы они отказались от NeWS и присоединились к разработке X11. Это было началом долгой и изнурительной борьбы для Sun.
К тому времени, когда я прибыл на работу, Sun, по совету исполнительного вице-президента Бернара Лакрута и вице-президента Уэйна Розинга, решила объединить NeWS с X11. Таким образом я присоединился к группе «X11/NeWS». Первый год мы потратили, пытаясь реализовать X11 на базе NeWS, второй год пытались реализовать NeWS с точки зрения архитектуры и возможностей X11. Всё это время сообщество X11 публично критиковало нас за нестандартную реализацию, а сообщество NeWS справедливо жаловалось на отсутствие поддержки этой замечательной платформы. Мы создавали большую, медленную и ошибочную реализацию обеих систем.
К середине 1990 г. я дослужился до руководителя проекта графического отдела слияния X11/NeWS. Мы только что выпустили OpenWindows 2.0, которая была первой версией нашей реализации X11, конкурентоспособной по производительности с продуктом от MIT.
Мы уже даже планировали в версии 3.0 реализовать совершенно новый набор инструментов для NeWS, сохранив производительность и функциональность, эквивалентную X11.
Наша команда, состоящая из 112 человек, занималась поддержкой трёх наборов инструментов, трёх оконных систем, трёх аппаратных архитектур, двух пользовательских интерфейсов и двух версий ОС. Даже простое заявление, что в коде полосы прокрутки есть ошибка, могло указывать на любую из 108 различных конфигураций.
С меня было достаточно — я начал терять терпение и веру в разрабатываемый продукт.
В те дни набирала обороты интересная инициатива, направленная на публикацию исходного кода NeWS в Интернете, что позволило бы ей конкурировать со свободно доступной X11.
Часть инженеров и менеджеров оказались в разногласиях с корпоративными политиками, пытавшимися доказать, что Sun всё ещё может заработать больше денег за счёт косвенных выгод от создания среды для ПК, которая являлась бы кроссплатформенной, поддерживала мультимедиа, была бы расширяемой и распределенной.
В конечном итоге был предложен план «бесплатной» передачи исходного кода любым заинтересованным в нём лицам. При этом «бесплатность» равнялась 10 000$, которыми Sun предполагала покрыть расходы, связанные с рекламой в СМИ и с распространением их продукта. При этом анонимные загрузки NeWS по FTP были запрещены.
Данному плану не суждено было сбыться, и он был отменен после нескольких недель интенсивной критики на comp.windows.news.
Тот опыт, который мы получили, пройдя вместе через неудачи и скандалы с NeWS, значительно облегчил принятие решений в конце 1994 г. в отношении Java.
Я был готов уйти из Sun
После того как Sun отказалась от развития NeWS, я начал думать о новом месте работы.
Я постоянно вспоминал одну январскую ночь 1990 г., когда обнаружил незапертую лабораторию на конференции по X11 в MIT. Внутри находилась рабочая станция NeXT версии 0.9. Я был поражён ей, т. к. она представлялась мне реализованной мечтой о NeWS. Display PostScript, единый набор инструментов, красивый пользовательский интерфейс и невероятные приложения.
Я поспешил домой, чтобы написать эмоциональный отчёт о поездке, ожидая, что он произведет впечатление на коллег. Я ожидал, что люди «проснутся и почуют запах Java»! Но никакой реакции не последовало — только тишина. Единственным человеком, которого я смог мотивировать, был Крис Уорт, один из главных инженеров NeWS.
Мы с Крисом провели несколько ночей, создавая клон пользовательского интерфейса NeXTSTEP для NeWS. Мы скопировали его пиксель за пикселем со снимков экрана, которые я сделал в MIT. Затем мы установили его на нескольких рабочих станциях менеджеров Sun, автоматически переведя все их приложения с интерфейса OPEN LOOK на NeXTSTEP.
Но и в этом случае никакой реакции не последовало. Тогда мне стало ясно, что большая часть работы, которая выполнялась в нашей команде, делалась для галочки. Не высовывайтесь и не говорите слишком много, и тогда всё будет в порядке — таков был всеобщий настрой. И Джеймс соглашался с таким положением дел, не устраивая разборок.
На самом деле он был единственным человеком с достаточным влиянием, чтобы что-то изменить. Джеймс был старожилом Sun, занимавший высокую должность и имевший акции компании, делающими его жизнь комфортной. Он не хотел и не любил раскачивать лодку.
Я же был на тот момент всего лишь 25-летним парнем, которому нечего было терять. Поэтому я решил пойти на собеседование в NeXT. Оно оказалось таким же увлекательными, как и создание пользовательского интерфейса NeXTSTEP.
Поверьте всему, что вам рассказывают о Стиве Джобсе. Он самая харизматичная личность, которую я когда-либо встречал. Мы сразу нашли общий язык на собеседовании. Он отличный оратор и ещё лучший слушатель. Всё, что Стив пытался сделать десять лет назад, сейчас актуально как никогда.
Да, возможно, это не тот человек, которому вы захотели бы доверить свои деньги сегодня, но его идеи заслуживают внимания несмотря ни на что. Если бы кто-то сказал мне десять лет назад, что Стив станет миллиардером благодаря тому, что заставит Pixar создать полнометражный фильм на основе короткометражки под названием «Luxo Jr.» Джона Лассетера, я бы сказал, что он слишком много пьет Kool-Aid.
Итак, я грелся в лучах искажения реальности Джобса, наслаждаясь каждой секундой этого процесса. Я действительно собирался присоединиться к фантастической команде единомышленников, делающих невероятные вещи внутри потрясающего здания, спроектированного I. M. Pei, и всё было бы хорошо.
Я провел бо́льшую часть месяца на завтраках с Лео Хурвицем, отцом NeXTSTEP, протеже Билла Аткинсона и просто отличным парнем. После завтраков мы пили так много кофе, что официантка приносила нам обеденное меню. Я был готов уйти из Sun.
Чего мне не хватало в Sun? Конечно, Джеймса. Он научил меня почти всему, что я знаю. Его обычный ответ на мои предложения всегда звучал так: «Да, это правильное решение». Это был тонкий способ дать понять, что он доверяет мне и моим действиям. Это придавало мне уверенность выполнять свою работу ещё лучше.
Несмотря на любые разногласия, я был уверен, что мы всё равно всегда будем поддерживать связь.
Мои коллеги — Крис Уарт, Джонатан Пейн, Джим Грэхэм и другие — поймут мой уход; и если NeXT окажется достаточно крутой, я постараюсь переманить их всех туда.
В этот момент меня больше всего волновало, как сказать обо всём Скотту Макнили. Я был лоялен к нему, как и остальные сотрудники Sun. Он умел расположить к себе людей. Мы с ним вместе играли в хоккей по вечерам во вторник, субботу и воскресенье в течение нескольких лет, практически не общаясь по работе. Так что, покидая Sun, я чувствовал себя изменником.
Итак, это был вечер вторника, 28 ноября 1990 г. Наша команда только что закончила тренировку, а затем мы собрались в «Dutch Goose» в Менло-Парке, штат Калифорния, выпить пива с бургерами. Скотт заказал свой обычный жареный сыр и Budweiser. Я взял жирный чизбургер и картофель фри.
Критика руководства Sun
Несколько дней назад я принял предложение о работе в NeXT и был готов подать заявление об увольнении из Sun. Всю ночь я переживал о предстоящем разговоре со Скоттом. Наконец я не выдержал и просто выпалил своё решение об уходе в контексте того, что теперь мне придется платить за субботний лёд, так как я скоро перестану быть сотрудником Sun.
Скотт сразу начал меня отговаривать. Судя по тому, как он убедительно это делал, ему следовало бы работать в продажах. Он поставил под сомнение все достижения Стива, умело принизив ценность NeXT. Он также сказал, что слышал о проблемах в моей группе и хочет всё исправить, пообещав, что Sun сможет собраться с силами. Я просто пытался сохранять спокойствие и придерживаться своего мнения. Я сказал, что устал от политических баталий и просто хочу сменить обстановку ради новых вызовов.
Затем Скотт неожиданно попросил меня об одолжении. Он спросил, могу ли я изложить в электронном письме все проблемы, которые меня беспокоят, мотивировав это тем, что в таком случае мой уход принесет хоть какую-то пользу. Я согласился; на что он добавил, что я не просто должен перечислить проблемы, но и предложить их решение. Он попросил меня написать всё в такой форме, как «если бы я был Богом». После моего согласия мы вернулись к разговору с командой о главном моменте матча Detroit Redwings на канале ESPN.
В тот вечер я потратил несколько часов, подробно описывая проблемы и их решения, связанные с нашими 108 вариантами технологий. Затем я кратко изложил, почему, по моему мнению, NeXT делает всё правильно. Я был очень откровенен и, возможно, жесток в своих суждениях по отношению к коллегам, по полной используя режим «будь я Богом». Это было некрасиво. Но в то время я был настолько разочарован бесцельной массой безразличных к своему делу людей в нашей команде, что моим единственным выходом для них была эвтаназия. Я предложил сократить штат на порядок. Оставшаяся небольшая группа людей могла бы гораздо быстрее и эффективнее вносить изменения в продукт, чем постоянный поиск компромиссных решений в большой команде.
Осознав сделанное, я немного отступил и сказал, что если он не может решиться на это, то хотя бы должен отказаться от развития NeWS, избавив всех от страданий. Я сравнил слияние X11/NeWS с сектором Газа, сказав, что компромиссное решение по данному вопросу не является никаким решением вообще. В конце я сказал, что хотя и ценю его просьбу высказать моё мнение, но уверен, что ничего не изменится. И пройдут годы, прежде чем они наконец осознают, что должны отказаться от NeWS и OPEN LOOK (Оглядываясь назад, я был прав на 100%).
Ответ Скотта был типичным — однострочное письмо, в котором говорилось: «Держись, я займусь этим».
Чего я не ожидал, так это того, что он перешлёт моё письмо другим людям, которые сделали то же самое. Вскоре мой почтовый ящик был переполнен комментариями и мнениями. Джеймс Гослинг был одним из первых, кто ответил. За несколько месяцев до этого он покинул команду NeWS и перешел в Sun Labs для работы над инструментом редактирования документов, созданных с использованием SGML, который он назвал «Imagination». Он увидел искру, которую я зажег на руководящем уровне Sun, и начал поливать её бензином так быстро, как только мог.
Билл Джой, которого я знал вскользь через Джеймса, начал присылать мне комментарии. Он предложил мне переехать в Аспен, штат Колорадо, для работы над его проектом, связанным с охраной окружающей среды. Он посоветовал прочитать его статью под названием «Further» для ознакомления с его идеями о создании объектного окружения в плоском 64-битном адресном пространстве с использованием C++ и Spring (экспериментальной ОС Sun).
Джеймс также познакомил меня на той неделе с человеком, который сыграет ключевую роль в создании Java — Майком Шериданом. Майк был директором по развитию нового бизнеса в Sun и отвечал за заключение технологических сделок. Ранее он был основателем компании Folio, занимавшуюся шрифтами, которую купила Sun, а затем чуть не продала Microsoft. Когда прекратилась работа над NeWS, Sun отказалась от разработок Folio, а затем и вовсе приобрели лицензию на Adobe PostScript.
Таким образом, Майк уже успел получить свои первые шрамы в Sun, Джеймс всё ещё был «обожжен» провалом NeWS, а я был «пылающей раной» от работы над NeWS. Какая замечательная команда из нас получилась бы!
Ответ пришел через несколько дней. Sun планировала устранить проблемы, которые я обозначил, и они хотели, чтобы я сыграл ключевую роль в их решении. Я сразу же отказался, так как для меня не было никакой выгоды это делать, да и не верил я их словам.
У меня не было ничего, что можно было бы потерять, а это иногда заменяет смелость.
Уэйн Розинг, вице-президент моего подразделения, готовился возглавить Sun Labs и проявил живой интерес к моему письму Скотту. Уэйн был в основном ответственен за большинство решений, касающихся технологии NeWS, поэтому я не сразу обрадовался разговору с ним. Он был умным парнем и довольно симпатичным в стиле старшего брата или мудрого дяди; всегда увлекался новыми технологиями, особенно теми, которые он мог пощупать руками. По образованию физик, он любил строить «штуковины», которые имели какую-то загадочную цель, но не имели практической пользы. В гараже его огромного дома в горах Санта-Круз размещалась хорошая мастерская, а на заднем дворике была оборудована обсерватория.
История Уэйна принимает разные оттенки в зависимости от того, кто её рассказывает. Его участие в проекте Lisa в Apple всегда было для него больной темой. Принимаемые Стивом решения, связанные с переходом от Lisa к Mac, стали началом конца Уэйна в Apple. У него остались шрамы от взаимодействия со Стивом Джобсом, которые он носил, как значок на своём кармане.
В Sun Уэйн добился больших успехов и не останавливался на достигнутом. Он был ответственен за стандартизацию RISC-процессоров SPARC от Sun, и за создание SPARC International, компании, которая лицензировала SPARC всем желающим за 99$. Эта деятельность не приносила существенного дохода для Sun, что являлось потенциальной проблемой. Он некоторое время руководил группой Desktop Systems and Graphics, но, похоже, так и не понял суть NeWS, хотя был его самым большим сторонником в команде Скотта. Уэйн проявил большой интерес к моим предложениям, организовав в связи с этим ужин для меня и Джеймса за несколько дней до моего ухода в NeXT.
Мы поужинали в ресторане Scott's Seafood в Пало-Альто. Еда там была почти такая же вкусная, как в одноименном ресторане на улице Скотт в Сан-Франциско, но атмосфера напоминала El Toritos. Какое-то время мы обменивались банальностями, очередной раз обсудили проблемы с NeWS, а после нескольких коктейлей наконец-то перешли к делу.
Рождение Green Project
![Логотип Green Project Логотип Green Project](https://habrastorage.org/getpro/habr/upload_files/517/724/ea3/517724ea33b55b76cad4c755adb5664c.jpg)
После нескольких дней наставлений от Майка Шеридана, Джеймса и директора научного отдела Sun Джона Гейджа, у меня было довольно хорошее представление, что сказать. Я выстроил ряд предположений, почему проекты Sun терпят неудачу, что было веским аргументом в пользу создания новой группы, работающей над секретным проектом, которая имела бы полную независимость от политики Sun. Мы бы переехали с кампуса в какое-то неприметное место неподалеку, как это сделали разработчики NFS в Менло-Парке несколькими годами ранее. У нас была бы крошечная команда, не больше, чем круглый стол в Little Garden, нашем любимом ресторане Сычуань/Хунаньской кухни в Пало-Альто. Мы бы смогли лично отобрать несколько ведущих специалистов из Sun, затем привлечь внешних специалистов по дизайну.
Эти меры освободили бы нас от необходимости соблюдать рекомендации Комитета по продуктовой стратегии Sun о необходимости использования SPARC, Solaris и OPEN LOOK. Фактически мы хотели построить устройство нового типа, которое не было бы похоже на рабочие станции Sun.
Мои предложения звучали как музыка рок-группы Soundgarden в их родном Сиэтле — они обрели поддержку. Уэйн был настолько решительно настроен, что казалось, будто он хочет заняться этим сам. Если бы у него не было такой привлекательной работы, связанной с управлением Sun Labs, то я бы сказал, что он не раздумывая присоединился бы к нам.
Несколько лет назад Уэйн спонсировал конкурс под названием «Vision Quest», в котором сотрудники Sun писали статьи о том, какой они представляют себе экосистему компании в далеком будущем. Но большинство из нас на тот момент были слишком заняты попытками заставить OpenWindows работать в рамках 16 Мб ОЗУ, чтобы участвовать в этом конкурсе. Для Уэйна мой проект был шансом реализовать ещё один «Vision Quest».
Уэйн не обещал ничего, но попросил меня отложить отъезд, что я и сделал, к большому огорчению Лео Хурвица. Слухи о моём электронном письме дошли и до моей команды, и мне пришлось признать, что я ухожу из Sun.
Когда они планировали официальный прощальный обед, я получил электронное письмо от Хелен, помощницы Уэйна, в котором говорилось, что он звонил из своей машины и обещал выполнить 100% того, что мы обсуждали. Он желал встретиться со мной и всё обсудить сегодня вечером в шесть.
Уэйн вышел с заседания исполнительного руководства на минуту, чтобы пожать мне руку и спросить, приму ли я предложение. Он дал мне письмо с хорошими условиями, которые значительно увеличивали мою зарплату и гарантировали долю в компании. Я немедленно дал ему своё устное согласие. Я написал письмо Стиву Джобсу и Лео Хурвицу, сообщив им, что вопреки всему, Sun сделало мне предложение, от которого я не мог отказаться. В выходные Стив позвонил мне домой, пытаясь отговорить меня. Он применил свою стандартную тактику: в начале сказал, что он зол из-за того, что я не пришел; затем переключился на то, что NeXT нуждается в таких людях, как я, и что в его компания я смогу полностью реализовать свой потенциал. Я поблагодарил его за уделенное мне время и отказался.
Итак, я собрал группу специалистов для создания некого программное окружение, которое стало бы таким же крутым, как NeWS, и могло бы быть реализовано небольшим количеством людей менее чем за год, без вмешательства со стороны Sun и без каких-либо конкретных правил или ограничений.
Основным пожеланием относительно проекта было желание сделать его привлекательным для потребителя. Создаваемый продукт должен иметь убедительный пользовательский интерфейс не основанный на Xerox Star. Он также должен быть привлекателен и для программистов. Разработка интерфейса и дизайна должна начаться на гораздо более ранней стадии, чем в традиционных проектах Sun. И, наверное, самое важное для нас в то время, конечный продукт не должен был иметь никакого отношения к другим программным разработкам Sun.
Шеридан и Гослинг присоединяются к Green Project
![Костяк Green Project: Майк Шеридан, Джеймс Гослинг и Патрик Ноутон Костяк Green Project: Майк Шеридан, Джеймс Гослинг и Патрик Ноутон](https://habrastorage.org/getpro/habr/upload_files/535/c30/3d2/535c303d2b2c8ecd83153e8c86516ea3.png)
Майк Шеридан и Джеймс Гослинг согласились присоединиться к этому проекту без предварительных условий или гарантий успеха. Майк сразу включился в работу, а Джеймс только спустя месяц, который он потратил на приведение дел в порядок в своём текущем проекте.
Следующие несколько месяцев были очень напряженными, так как Джеймс, Майк и я разрабатывали основные идеи будущего продукта. Мы работали долгие часы по выходным, составляя заметки о том, как можно создать что-то действительно новое на таком переполненном рынке. Мы изучали, как другие продукты терпели неудачу и добивались успеха. Мы внимательно проанализировали созданный нами беспорядок при работе с X11 и NeWS.
Что насчёт борьбы форматов Beta и VHS? Почему видеоигры пережили бум, затем спад, а затем снова процветали? Какую роль играют искусство и дизайн в продуктах? Мы изучали брендинг и потребительскую лояльность; задавались вопросом, возможно ли создать массовый программный продукт, который люди будут покупать из тщеславия, показывая этим свой статус, наподобие Rolex или Mercedes.
Энди Бехтольштейм выделил нам достаточное количество времени на все эти обсуждения и исследования. Мы обсуждали портативные устройства и КПК. Мы покупали странные гаджеты, такие как прототип Go Lombard и Sony Data Discman, который показывал только иероглифы. Мы также искали подходящую недвижимость для офисов.
В середине января 1991 г. Джеймс, Майк, Уэйн, Энди и я отправились в Аспен, чтобы на неделю остановиться в доме Билла Джоя и обсудить все накопившиеся вопросы. Там мы совмещали просмотр войны в Персидском заливе, которая у нас на глазах превращалась из операции «Щит пустыни» в «Бурю в пустыне», с записью идей по проекту на Macintosh Билла.
Энди предполагал, что для реализации задуманного потребуется новое оборудование, в то время как я склонялся к тому, что конечный продукт будет представлять собой программную среду для уже имеющихся ПК. При этом Энди и Майк настаивали на том, что необходимо создать именно портативное бытовое устройство.
Мы также обсуждали низкий уровень распознавания рукописного ввода у Go.
Я только что прилетел в Англию, чтобы посетить Active Book Ltd., компанию Хермана Хаузера, которая создавала ещё один плохой КПК. Это устройство имело складывающуюся клавиатуру и было основано на SmallTalk. Билл Джой лежал на полу в своей гостиной во время оживленной дискуссии с Энди о складных клавиатурах и гибких печатных платах, затем сказал: «У этой штуки не будет клавиатуры, поверьте мне. Я прав; я обычно прав...». Так началась длинная череда спонтанных замечаний Билла, в которых он, как правило, был прав.
В один из наших последних вечеров мы с Уэйном сидели наверху перед CNN и смотрели на ракеты, летящие над Багдадом, обсуждая NeWS. Я пытался объяснить ему, что NeWS — это больше, чем динамически загружаемый интерпретируемый код для различных платформ. Это образ мышления. Это иной подход к программированию, радикально отличный от любых других подходов при решении подобных задач.
Причина, по которой Уэйн непреднамеренно провалил работу над NeWS, заключалась в том, что он не нашел времени или не смог понять все эти тонкости. Нам, чтобы добиться успеха, нужно было параллельно работать над каждым аспектом NeWS. Любая из её частей была беззащитна сама по себе. PostScript хорош для визуализации, но использование в нём RPN делает его неудобным и трудным для написания и чтения программ. Проводная сеть на тонком кабеле — замечательное дело, но прежде чем вы сможете осознать её потенциал, необходимо создать набор инструментов, который будет использовать её. Легковесная объектная модель хороша до тех пор, пока мы не начинаем сравнивать её с C++.
В целом мы получили полезный опыт, разрабатывая NeWS. Но нужно признать, что данная система на фоне X11 представляла собой запутанный клубок ниток.
Во время этих рассуждений мы услышали крики, доносившиеся из офиса на верхнем этаже, и поднялись туда, чтобы понять, в чем дело. Оказалось, что Джеймс, находясь в офисе Билла, вошел в систему и читая почту обнаружил, что Карл Вулф, преемник Уэйна, пытающийся решить проблемы NeWS, захотел закрыть этот проект, пока мы были за городом.
Джеймс написал ему в ответ на критику NeWS настолько эпическое письмо, от которого у Карла наверняка пробежал холодок по спине ещё до того, как он его прочитал. Джеймс — один из немногих людей в Sun, кто может так виртуозно использовать жёсткие выражения и при этом сохранить работу.
Разработка Oak и Star7
В районе залива наступила весна, когда мы арендовали офисы на четвертом этаже на улице венчурного капитала, Сэнд Хилл Роуд, в здании Bank of America. У нас была небольшая команда: я, Джеймс, Майк и ассистент. К этому времени проект стал иметь более осязаемые очертания. Становилось ясно, что он будет состоять из аппаратной и программной части и станет относиться к нише бытовой электроники.
Эти решения были приняты в гидромассажной ванне на курорте Squaw Creek Resort во время конференции вице-президентов и директоров Sun Worldwide. Мне пришлось буквально вломиться на это собрание, так как я был единственным заместителем директора в нашей группе на тот момент.
Вскоре к нам присоединился наш хороший друг Крис Уорт, который был опытным разработчиком NeWS и коллегой Джеймса по проекту Imagination.
Затем в начале апреля пришел Эд Фрэнк, друг Джеймса с докторской степенью из CMU, построивший SPARCstation 10. Он привел с собой своего специалиста по интегральным схемам, Крэйга Форреста, который спроектировал чип управления памятью для передового графического ускорителя SS10.
Эд и Майк сразу же взяли на себя руководство проектом. Эд обладал высшим инженерным титулом «выдающийся инженер», был личностью «типа А» и имел выдающийся ум и прекрасное чувство юмора. Он мог днём создавать микросхемы и проектировать материнские платы, а во сне писать бизнес-планы.
В тот первый год мы вшестером крепко сдружились. Мы видели цель и работали над ней. Эд сконструировал простой портативный компьютер на базе процессора SPARC, состоящий из деталей других бытовых устройств. Крэйг занялся проектированием интегральных схем. Крис приступил к работе над урезанной копией SunOS 4.1.1 с целью уменьшения её размера. Я начал писать графический и мультимедийный инструментарий, который мы могли бы использовать для создания радикально иного пользовательского интерфейса. Джеймс отвечал за создание программного инструмента, который позволил бы связать вместе все разрабатываемые компоненты. Именно в такой обстановке и родился язык Java.
Мы были группой изгоев из Sun, которые чем больше проводили времени вместе, тем более невыносимыми становились друг другу. Наверно, антропологу было бы интересно изучить те 18 месяцев, в течение которых мы работали в команде в рамках Green Project.
Мы баловали себя едой и развлечениями, потому что считали, что заслуживаем этого. Мы работали так много часов над разными сложнейшими задачами, что несколько ящиков кока-колы в неделю и десятки коробок с мороженым не казались чем-то неуместным. Покупка всех известных игр и устройств ввода для Nintendo за счёт Sun имела для нас значение. Мы были шестью парнями, которые положили полтора года своей жизни на создание чего-то крутого для Sun.
Я кричал на Эда по поводу проблем с оборудованием без всякой причины, на что он отвечал мне ещё более жёстко. Наша неопределённость и неуверенность так быстро истощили нашего дизайнера UI Дэвида Лавалли, что он ушел от нас, вернувшись на работу в NeXT, откуда мы его пригласили ранее. Мы настолько вышли за рамки приличия и корпоративных рекомендаций по взаимодействию с персоналом, что спасти нас было уже невозможно.
Казалось, что мы находились в какой-то альтернативной реальности, в которой были установлены совершенно иные правила социального взаимодействия и правильного общения. Нецензурная лексика стала настолько обычным явлением, что нам пришлось изобрести собственный словарь пошлых шуток, чтобы отличать юмор от оскорблений. До сих пор есть несколько шуток, которые могут нас рассмешить от одного только намека на некоторые слова. Уже дошло до того, что мы заканчивали предложения друг за другом.
В конечном итоге мы не смогли справиться с проектом в одиночку. В начале 1992 г. нам оказали помощь: Джо Пэлранг — дизайнер талисмана Java по имени Duke; Чак Клантон — дизайнер пользовательского интерфейса; Джонатан Пейн — разработчик интерфейса и приложений, а также группа дизайнеров и техников. Мы нуждались в их помощи.
Всё дошло до того, что мы начали разваливаться физически и умственно. Я порвал связки в коленном суставе, играя в хоккей, и на следующий день писал код лёжа на кровати для восстановления. Джеймс сломал локоть, впервые катаясь на роликовых коньках. Крис был готов сбежать в Коста-Рику. Крэйг раздробил локоть на мелкие кусочки, играя в баскетбол. Майк пытался вывести камень из желчного пузыря размером с мяч для гольфа. Даже Джон, новичок, порвал связки, проскальзывая на третью базу, лишь бы вписаться в коллектив. У меня также появились нервные тики на лице и всё время дергался мизинец.
К концу лета 1992 г. язык Джеймса, Oak, работал уже довольно хорошо. Прототип аппаратного обеспечения Star7, разработанный Эдом и Крэйгом, успешно заработал с урезанной версией SunOS Криса. Библиотеки классов Oak, написанные мной и Джоном, хорошо справлялись с управлением пользовательским интерфейсом.
Каждый из нас написал кучу полезных приложений, таких как телепрограмма, общая доска сообщений, беспроводная пейджинговая система и программирование видеомагнитофона с функцией перетаскивания. Крис, Джон и Крэйг даже смогли настроить беспроводные радиосистемы для вызова методов Oak по сети. Прототип Star7 был завершён. И никто не погиб при его создании.
Star7 представлял собой крошечную станцию SPARC, которую Эд и Крэйг уместили в коробке размером примерно 6" x 4" x 4". Устройство имело беспроводную связь в 200 кбит/с, инфракрасный порт ввода/вывода, сенсорный экран, 6-дюймовый цветной ЖК-дисплей, два слота для карт PCMCIA, два динамика от Nintendo GameBoy и восемь батареек тип AA.
На флеш-карту Star7 размером в 4 МБ мы сумели разместить SunOS, интерпретатор Oak, графическую библиотеку, классы для UI, приложения, изображения, анимацию и звук. Все эти программы успешно запустились в 4 МБ оперативной памяти.
Мы собрали около шести таких прототипов, реализовав в них новый подход к интеграции аппаратного обеспечения, микроядерным ОС, языкам программирования, объектным системам, пользовательским интерфейсам и приложениям.
Green Project официально завершился; мы уложились в два раза быстрее по времени, чем планировалось.
Далее последовал краткосрочный тур по Японии для демонстрации возможностей нашей новой игрушки, после которого мы снова вернулись к работе.
FirstPerson или попытка коммерциализации Star7
Майк и Эд написали бизнес-план, обосновывающий перспективы использования нашей разработки. Первый его вариант назывался «За зелёной дверью», что дает представление об их чувстве юмора. Следующая версия уже называлась «За пределами зелёной двери». Окончательная версия бизнес-плана называлась «Бизнес-план FirstPerson».
FirstPerson — это имя, которое мы с Майком придумали, когда разрабатывали некоторые аспекты окружения под названием Persona. Мы предложили Sun начать немедленное финансирование одноименной компании (FirstPerson, Inc.) для коммерциализации нашей технологии. Было много споров о её структуре. Майк и Эд настаивали на том, чтобы это было полностью независимое, но финансируемое Sun предприятие и, возможно, японским производителем бытовой электроники. Мы хотели создать новую компанию с новыми акциями и долями основателей.
Однажды у нас состоялся судьбоносный обед в кафе California в торговом центре Stanford Mall, на котором присутствовали Энди, Джеймс, Уэйн, Билл, Эд, я и несколько других участников. Завязалась дискуссия о будущем новой компании, в рамках которой Эд настаивал, что это должен быть стартап с долевым участием. Этот разговор вывел его из равновесия; он тихо сказал мне: «Извини, но это не так работает». Он также сказал: «Билл, ты витаешь в облаках Аспена и утратил связь с реальностью!». Биллу это не понравилось. Он ответил, что если Эд считает, что он утратил связь, то сам Эд утратил её ещё больше.
То, что произошло через несколько недель после этого обеда, не стало для нас неожиданностью. Эд пожелал нам удачи, попрощался и ушел работать на несколько месяцев в Sun Labs, пока искал инвестиции для создания собственной компании NeTpower.
Следующим ушел Майк Шеридан. Он всячески давил на Уэйна, желая получить должность президента FirstPerson. И вполне справедливо, ведь именно Майк был нашим лидером и дальновидным человеком, который привел нас туда, где мы были в данный момент. Когда Уэйн отказался повысить Майка до вице-президента Sun и не позволил ему возглавить FirstPerson, Майк ушел. «Я не хочу торчать здесь, пока тело остывает», — сказал он.
Так мы осиротели. На следующий день пришел Уэйн Розинг и возглавил проект. Джеймс и я долго спорили, стоит ли сразу сдаться или бороться до конца. Мы взвесили наши варианты найма внешнего лидера и посчитали их сомнительными, так как Уэйн считался одним из основателей проекта. Перед нами стояла дилемма: отказаться от двух лет упорной работы, хлопнув дверью, или продолжить начатое, рискнув с Уэйном. Я решил остаться, но при условии, что у меня будет больше контроля над тем, как всё будет организовано. Я хотел быть в его команде, присутствовать на всех совещаниях высокого уровня и на всех встречах или презентациях.
Я смертельно боялся репутации Уэйна, любившего давать такие обещания, которые он и его команда не были в состоянии выполнить. После некоторого торга мы остановились на условиях, что я буду «главным техническим директором» FirstPerson, а Джеймс — «главным научным сотрудником». Никто из нас никогда не был доволен этими титулами, но в долгосрочной перспективе они не имели большого значения.
Мы переехали в самое лучшее место на всем южном побережье — в старую лабораторию DEC Western Research Lab, что на улице Гамильтон Авеню, 100, в Пало-Альто. Ирония в том, что «Группой Гамильтона» здесь была создана OSF ещё до того, как они придумали то, что Скотт всегда называл «Oppose Sun Forever» («Противостоять Sun навсегда»).
Шесть кварталов лучших ресторанов в районе залива, компания CalTrans, предоставляющая транспортные услуги для пассажиров из Сан-Франциско и самые красивые офисные здания вокруг. Дела шли хорошо. Затем я сел на самолет в Японию с Уэйном, и весь последующий год всё катилось под откос. Я сразу же начал волноваться об успехе проекта.
С уходом из нашей команды двух главных участников я задумался, кто теперь сможет вести нас к цели, обладая необходимыми для этого качествами?
У Уэйна было сильное желание заняться аппаратным обеспечением. Он приглашал своих старых друзей из Sun, чтобы обсудить с ними возможность модификации ядра процессора SPARC для оптимизации его работы с Oak во встроенных системах.
Моя задача состояла в том, чтобы создать команду инженеров, которые могли бы разработать миниатюрную ОС, поддерживающую среду выполнения Oak. Я глубоко погрузился в NeXT и привлек несколько ребят, работавших над отмененным NRW — компьютером на базе NeXTSTEP, использовавшим процессоры Motorola 88110, а затем Power-PC. Питер Кинг, Майк Демони, Джон Симонс, Брюс Мартин — эти парни имели необходимый опыт для выполнения данной задачи.
Джеймс продолжал руководить разработкой Oak. Мы вложили усилия в создание среды разработки, наняв Артура ван Хоффа, создателя HyperNeWS, и Ли Бойнтона, мастера иерархии классов из группы NeXTSTEP. Компания росла слишком быстро. У нас были отличные офисы, отличный логотип, красивая канцелярия, куча талантливых инженеров и отсутствие реального бизнес-плана.
Я провел бо́льшую часть весны в самолетах, летая между Европой и Японией. Нам быстро стало понятно, что продавать чипы SPARC за 50$ в индустрии бытовой электроники — это как продавать эскимосам лед. Производители не планировали траты, превышающие 5$ за производство одного устройства. Оказалось, что наши затраты были совершенно несоразмерны их ожиданиям, что ставило под сомнение возможность внедрения нашей ОС в бытовые устройства в ближайшее время.
Разработанный ранее бизнес-план для монетизации FirstPerson, оказался несостоятельным, а Майка Шеридана и Эда Фрэнка не было рядом, чтобы помочь его исправить. Майк был теперь президентом компании TV Answer в Рестоне, штат Вирджиния. Он быстро переименовал компанию в eon и пытался продвинуть её в зарождающейся индустрии интерактивного телевидения. Я его понимал.
В марте 1993 г. я был в Денвере на презентации проекта Time Warner Interactive Television, запуск которого был запланирован на апрель 1994 г. в Орландо, штат Флорида. Тендер на его реализацию выглядел так, как будто был специально написан с учетом использования нашей технологии. Он включал в себя требование на использование небольшой микроядерной ОС, распределенной объектно-ориентированной среды выполнения и возможность создания крупной фермы серверов, способных передавать видео в формате MPEG по сетям ATM. Это было именно то, что могли предложить FirstPerson и Sun. Я вернулся из Денвера полный энтузиазма.
FirstPerson мгновенно переключилась на выполнение этой задачи. Это был тот боевой клич, который как воздух требовался нашей команде. Было не совсем понятно, сколько людей верило в возможность разместить многомегабайтную ОС в тостере, но данный проект был нашим шансом на успех. Крупнейший медиаконгломерат мира умолял о нашей технологии. В кратчайшие сроки мы подготовили коммерческое предложение по ТВ-приставке.
Мы с Энди Бехтольсхаймом обсудили, как мы могли бы использовать большой кластер из небольших рабочих станций для создания многотерабайтной дисковой фермы и передачи MPEG по сети. Оценив наше коммерческое предложение практически по себестоимости, мы представили его Time Warner, пообещав запустить проект в Орландо к апрелю 1994 г.
Мы начали готовиться к получению контракта и продумывали этапы его реализации: написали планы по разработке, найму сотрудников и проектированию оборудования. Это был наш шанс, который мы не могли упустить. В противном случае всё пойдет прахом.
После нескольких недель поездок между Денвером и Сан-Франциско, иногда по три раза в неделю для согласования всех изменений в предложении, мы подошли к решающему моменту. На последней встрече с представителями Time Warner мне было сказано, что накануне они провели голосование и единогласно выбрали FirstPerson. Они были настолько уверены в своих словах, что сообщили нам о своём решении заранее, несмотря даже на то, что у них была запланирована ещё одна презентация в тот же день. Только после её формального проведения, они смогут официально подтвердить согласие. Оказалось, что следующая презентация была от американской компьютерной компании SGI.
SGI презентовала свой проект, который представлял собой нереализованную иллюзию. Но несмотря на это, они смогли впечатлить руководство Time Warner красивой презентацией с 3D-картинками и выиграли контракт, фактически предложив свои услуги за бесценок. Джим Кларк, тогдашний генеральный директор SGI, так хотел войти в этот бизнес, что был готов заплатить за это из своего кармана.
Так FirstPerson оказалась на рынке, упустив свой первый крупный контракт. К счастью или, как выяснилось позже, к несчастью, возникла ещё одна возможность испытать работу кабельного телевидения, и выбранный для этого поставщик — компания 3DO (разработчик игровых приставок) — была очень заинтересована в лицензировании нашей технологии для этого проекта.
Остаток лета мы провели в обсуждениях с 3DO и были готовы даже портировать Oak на их игровую консоль. Мы предоставили очень толстое юридическое соглашение, подготовка которого заняла несколько месяцев. Результатом нашей работы стали переговоры, которые свелись к короткому разговору между двумя лидерами компаний, Трипом Хокинсом и Скоттом Макнили. Трип хотел эксклюзивные права на всю технологию Oak, а Скотта не устраивала сумма, которую он предложил. В итоге не достигнув соглашения, мы отправили всё их оборудование обратно и пообещали забыть, что когда-либо видели его.
Прошло уже восемь месяцев, а у нас до сих пор не было рабочего бизнес-плана и крупных клиентов для его реализации.
Несмотря на неудачи, Уэйн настаивал на продолжении работы, надеясь, что предложение о сделке рано или поздно появится. Инженеры были очень расстроены, потому что у них не было эталонной платформы для проектирования. Уэйн хотел создать телеприставку с нуля, используя специально созданный для неё чип на базе SPARC и все необходимые компоненты. Это решение позволило бы задействовать данную платформу в качестве эталона для дальнейшей её адаптации в качестве испытательного стенда возможностей интерактивного телевидения. Я был категорически против такого подхода и настаивал на использовании готовых компонентов, например, материнской платы ПК с 486 процессором. Таким образом, нам не пришлось бы тратить миллионы долларов на разработку собственного оборудования.
В качестве компромиссного решения я предложил создать эталонную платформу на базе стандартной станции SPARC с установленной специальной видеокартой. Мы договорились с подрядчиками по невысокой цене создать такую видеокарту.
Мы планировали продемонстрировать законченный вариант приставки на выставке Western Cable Show в декабре 1993 г. К этому событию требовалось подготовить PR-стратегию, демонстрирующую миру планы о выпускаемом нами продукте.
Был разработан план официального анонса компании на крупной отраслевой конференции TED5 в Монтерее. Также была запланирована публикация большой статьи в журнале Wired для декабрьского выпуска 1993 г.
Мы пригласили PR-специалистов и отраслевых аналитиков. Элисон Томас, нанятая для ведения PR, сразу подняла тревогу из-за отсутствия у нас ясной бизнес-стратегии. Она сомневалась в наличии рынка для внедрения интерактивного телевидения. Моя хорошая подруга и известный отраслевой аналитик Дениз Карузо также негативно восприняла наши планы по выходу «в свет».
Осенью я провел много времени в поездках по Японии, Европе и Австралии в поисках контрактов для новой концепции интерактивного телевидения и эталонной платформы. Затянувшееся отсутствие интереса к нашим технологиям снова и снова заставляло нервничать наших инженеров. Во время моих разъездов в фирме не было никого, кто бы обладал достаточно ясным представлением о перспективах проекта и мог поддерживать мотивацию в коллективе. Добросовестные инженеры превращались в сварливых смутьянов из-за наличия слишком большого количества свободного времени и отсутствия четких указаний со стороны руководства. Все требовали бизнес-план, которому можно было бы следовать.
Наступил ноябрь — время подведения итогов деятельности всех бизнес-подразделений компании, так называемого Ops Review, проводимого Скоттом. Я написал очень самокритичный обзор FirstPerson для Ops Review, указывая на все наши текущие недостатки и отсутствие перспектив в условиях умирающего рынка. Всё это дошло до Уэйна. Скотт потребовал от него реального бизнес-плана, иначе...
Уэйн ответил в своём классическом стиле с размахом, что на данный момент создание такого бизнес-плана является его главным приоритетом, и что он завершит его к концу года. Один особо саркастический сотрудник размножил это заявление несколько десятков раз и развесил во всех публичных местах.
К всеобщему разочарованию и моему удивлению, установленный срок прошел, а Уэйн даже не заикнулся о том, почему он не представил обещанный вариант бизнес-плана. Шок сменился гневом, и люди начали рассылать свои резюме в другие компании.
Вернувшись после праздников, с оставшимися членами команды, мы решили сделать всё самостоятельно. Я привлек директора по инженерии, специалистов по развитию бизнеса и нашего единственного маркетолога. Мы наняли внешнего консультанта для помощи с финансовыми вопросами.
В течение примерно двух недель почти бессонной работы я умудрился испортить отношения с большинством оставшихся членов команды, с которыми совместно работал над планом. Я был одержим целью спасти последние три года своей жизни. Надеюсь, они понимают, что ничего личного в моих действиях не было, просто я не имел времени и энергии для объяснения своей мотивации. Единственным человеком, кто принял мою концепцию по возрождению умирающего проекта, была наш менеджер Ким Полиз. Она всегда напоминала мне о размере рынка настольных ПК, который FirstPerson игнорировала, подтолкнув тем самым отказаться от священного Грааля — интерактивного телевидения. Позже она стала ведущим менеджером Java и HotJava, а сейчас является генеральным директором Marimba, Inc., стартапа на базе Java, в котором работают и другие старожилы из Sun, Артур ван Хофф, Сами Шайо и Джонатан Пэйн.
При составлении нового бизнес-плана мы хотели: убрать все неизвестные переменные, отказаться от авантюр в виде покорения новых рынков, перестать говорить о создании нового оборудования и о потребителях, сидящих на своих диванах перед мифическим интерактивным телевидением.
В январе 1994 г. стало ясно, что Microsoft/Intel PC и PowerMacintosh стали теми самыми устройствами, которые мы так искали. Предположение Майка Шеридана в 1990 г. оказалось ошибочным: компании, занимающиеся потребительской электроникой, не вырастут из примитивных микроконтроллеров на 4 бита, которые заставляют видеомагнитофоны мигать 12:00, а скорее индустрия ПК приобретет маркетинговую и дизайнерскую проницательность, чтобы превзойти телевизоры по продажам. В лучшем случае они встретятся где-то посередине — в некой упрощенной версии ПК на базе телевизора.
Бизнес-план, в написании которого я принимал активное участие, в январе 1994 г., имел смелость предложить отказаться от десятков рабочих мест и миллионов долларов уже вложенных средств, чтобы вернуть проект в то русло, где он мог бы извлечь выгоду из роста потребительских расходов на настольные развлекательные системы и онлайн-мультимедиа. Позже меня критиковали за то, что в этом плане не было нацеленности на всемирную паутину. Эти критики не обратили внимание на то, что никто из нас на тот момент ещё не видел Mosaic.
Меня высмеивали за моё предположение, что мы могли бы конкурировать с Kaleida и MacroMedia. На сегодняшний день Kaleida больше не существует, а MacroMedia является лицензиатом Java. В любом случае, я закончил этот бизнес-план за день до установленного срока, предоставив Уэйну право презентовать его. Мне нужно было лететь в Мексику, чтобы провести неделю с Николасом Негропонте и Консорциумом «Телевидение Завтрашнего Дня», в тысячный раз объясняя прелести Oak.
Чего бы вы ожидали в награду за такое самоотверженное решение наших проблем?
Когда я вернулся из Мексики, Уэйн предложил мне взять несколько недель отпуска, оставив должность главного технолога его компании, пока он решит, что со мной делать дальше. Но я отказался от его предложений. Вместо этого я заручился поддержкой представителя HR Рича Стиллера, и начал расследование, чтобы выяснить, что произошло, пока я покорял Чичен-Ицу.
За последнее время я помог написать два бизнес-плана. Ранее в этом году я предложил Уэйну, чтобы Sun создала ещё одно подразделение под названием «SunInteractive» (SI), которое занималось бы видеосерверами. Было ясно, что FirstPerson не покрывает эту область, да и при всём желании мы бы не справились с ещё одной задачей. Уэйн попросил меня помочь с написанием бизнес-плана для SI и FirstPerson.
Когда Уэйн демонстрировал мой план команде FirstPerson перед презентацией для руководства, он не до конца разделял идеи, описанные в нём, и существенно упростил изначальную презентацию. Когда ему задавали вопросы, на которые он не мог ответить, например, как мы будем конкурировать на рынке ПК с такими гигантами, как Macromedia и Kaleida, он начинал путаться в разных вариантах планов и часто обращался за ответами к старым версиям.
Когда он понял, что рассказываемые им идеи положительно воспринимаются командой, то полностью переключился на презентацию для руководства и предложил бизнес-план для SI, который почти ничем не отличался от плана FirstPerson. На следующий день на спешно созванной встрече с сотрудниками FirstPerson он осудил мой план, назвав меня «ковбоем» и утверждая, что я написал его полностью без его разрешения. Он потратил остаток недели, общаясь один на один с каждым ключевым сотрудником компании. К тому времени, как я вернулся, я был наполовину похоронен.
Я не разговаривал с Уэйном около месяца, пока ходил и оправдывался, убеждая Рича выслушать всех, кто знал, что на самом деле произошло. Я рассказал всем, что Уэйн читал мой черновик плана за день до его завершения, понял его, одобрил и даже предложил изменения, которые я впоследствии внес в окончательный вариант.
Я чувствовал себя так, словно целый месяц давал показания на допросе. Все были удивлены, что я не только не уволился, а продолжал проявлять упрямство и гнуть свою линию. Я чувствовал, что со мной обошлись несправедливо и собирался остаться, пока не восстановлю своё доброе имя.
К марту меня восстановили в компании на неясной должности. Я ждал своего часа, наблюдая, проявит ли Уэйн лидерские качества и задаст ли направление в развитии компании. Но направление Уэйна оставалось прежним: создавать эталонную приставку, завершить Oak, думать об интерактивном телевидении.
Провал с FirstPerson и ориентация на веб
У меня появилась сумасшедшая идея на одной из встреч за городом с Биллом Джоем и Джеймсом Гослингом в Брекенридже, штат Колорадо, которую затем приписали горной болезни: я предложил бесплатно выложить исходники Oak в Интернет. Это решило бы множество проблем, связанных с ограничениями выхода языка на рынок и конкурентным давлением; тысячи людей помогали бы разрабатывать и отлаживать наш собственный продукт. После провала с бизнес-планом эта идея стала превращаться в реальную стратегию.
Подразделение SI вскоре было открыто, и многие вопросы о том, что делать с ОС и нашими разработчиками «железа», отпали сами собой. Название FirstPerson было официально упразднено, а мы стали группой внутри аппаратного подразделения Sun, названной Live Oak, под покровительством и пристальным вниманием Билла Джоя.
Билл был на моей стороне, направляя мои усилия на изучение новых возможностей, связанных с Интернетом. Я воспользовался его оборудованием для создания ряда веб-сайтов: онлайн-сервиса WELL в Сосалито и службы San Francisco Examiner and Chronicle, «SF Gate».
Эта демонстрация возможностей нового языка, в сочетании с идеями, появившимися под влиянием разреженного воздуха в высокогорном городе Брекенридже, и интерес Билла к Oak, привели к новому плану, который предполагал использование его и вебе.
Теперь, когда у нас был утвержденный план размещения исходников Oak в Интернете, работа стала гораздо продуктивнее. Мы сосредоточились на устранении недочетов языка. Джонатан Пейн занимался оптимизацией интерпретатора. Артур ван Хофф переписал компилятор на самом Oak, заменив версию на C, написанную изначально Джеймсом. Этот шаг стал хорошим тестом для языка, поскольку на тот момент его компилятор был самой большой программой когда-либо написанной на Oak. Довольно много вымотанных нашими блужданиями инженеров использовали этот период для отпуска за счёт Sun, но основная часть команды вернулась к работе.
Роль Уэйна становилась всё более неопределенной, и на судьбоносной встрече в Аспене в июле, где мы обсуждали будущее Live Oak, стало невозможно продолжать игнорировать накопившиеся проблемы. Билл Джой всегда был ангелом-хранителем этого проекта, поддерживая нас или спасая от урезания бюджета, но после моего конфликта с Уэйном он занял более активную позицию. Он хотел использовать Oak как язык системного программирования для своих новых идей, связанных с операционными системами. Он часто сравнивал Oak с более сложными и элегантными языками, такими как Python и Beta. Он долго говорил о том, насколько лучше был бы Oak, если бы мы добавили в него замыкания, continuations и параметризованные типы. Хоть мы и соглашались, что это отличные функции языка, но в первую очередь нам хотелось завершить его при нашей жизни и начать создавать на нём крутые приложения.
Чем больше мы спорили с Биллом о внесении этих изменений, тем сильнее он сопротивлялся. В какой-то момент пришлось выбирать между отстранением его от участия в развитии языка, или потерей контроля над Oak.
Однажды вечером в офисе Билла в Аспене мы с Джеймсом вступили с ним в эпическую битву по поводу развития языка. Билл начал с того, что оскорбил нас, заявив, что Oak значительно уступает другим языкам, и сказал, что он покинет пост архитектора Live Oak, если мы этого хотим. Джеймс и я согласились, что это будет лучше всего, и просто ушли смотреть фильм «Скорость». Какой это был адреналин!
На следующий день Билл вёл себя как ни в чем не бывало, испытывая облегчения из-за того, что его освободили от тяжёлой ноши. Билл невероятно умён, и я не исключаю, что он заранее спланировал всё это, чтобы заставить нас взять на себя ответственность за проект.
Важно отметить, что в конечном итоге мы оказались правы в желании закончить язык, даже несмотря на отсутствие некоторых фич. Время работало против нас: у нас было всего около трёх месяцев, чтобы Java могла выстрелить. Мы едва успели. Интересно также, что Билл был абсолютно прав в том, какие фичи языка следовало бы реализовать в долгосрочной перспективе. Когда я смотрю на список того, что он хотел добавить тогда, то теперь хочу их все. Как обычно он оказался прав.
Решающий момент наступил около двух часов дня, когда Уэйн прибыл на встречу на день позже. Мы провели с ним долгую прогулку, в ходе которой удалось прояснить множество вопросов. Я сказал, что, по моему мнению, никто не сможет руководить таким технически сложным проектом без страсти к этому делу. Если бы тогда был рядом Колин Пауэлл, я бы процитировал его речь об «огне в животе». Я напомнил Уэйну наши давние обсуждения NeWS, сути которой он так и не понял, и предположил, что тоже самое произошло и с Oak.
В конечном итоге он понял, что не хочет больше работать над проектом и ушёл из Sun, решив посвятить себя телескопу, что находится во дворе его дома. Мы с Уэйном прошли долгий и непростой путь, но не добились успеха. Независимо от того, что люди помнят о тех днях, я всё ещё уважаю его карьерные достижения и считаю наши разногласия простым различием во взглядах.
Итак, в конце той судьбоносной недели в Аспене мы с Джеймсом получили контроль над проектом: Джеймс продолжил работу над Oak, желая сделать его лучше, а мне, как обычно, поручили написать на нём что-то крутое.
Лето 1994 г. выдалось крайне тяжелым; потихоньку я уже начинал искать новую работу на случай, если решу сдаться. Испытания, связанные с переориентацией нашего проекта, вымотали меня окончательно. Я много времени потратил на отстаивание Oak, сравнивая его с другими языками внутри Sun. Тем временем на горизонте начали появляться Tcl, C++, Self, Clarity и IDL.
Учитывая мою активную роль в продвижении проекта в 1993 г., мне быстро поступило несколько предложений о работе, и я начал задумываться, чем бы заняться перед уходом. Мне хотелось создать что-то действительно крутое на Oak для ПК. За последний год мы видели, как Oak работает только на экране телевизора через симулятор приставки, и это не давало полного представления о его возможностях.
Я начал работать над созданием простой абстракции для оконной системы; возродил несколько старых интерфейсов Oak для X11 на своём рабочем столе. Затем я написал несколько инструментов на Oak с компонентами, шрифтами, кнопками, полосами прокрутки и т. д., что позволило запускать небольшие оконные приложения на ПК. Я также портировал в этот набор инструментов алгоритм размещения и визуализации графов, изначально написанный на C++. Далее создал простой HTML-парсер и рендерер для отображения домашней страницы нашей команды.
Я показал эти приложения Джонатану Пейну; оптимизация интерпретатора, которой он занимался в то время, шла хорошо, и он искал новый проект. Мы обсудили мой HTML-парсер и пришли к выводу, что он не подходит для долгосрочного использования. Джонатан заинтересовался моими инструментами: он изучил учебники по SGML, создал более качественный HTML-парсер, а затем написал все сетевые классы для поддержки HTTP и FTP.
Он также реализовал более эффективный рендерер страниц. Я настроил загрузку изображений в формате GIF и добавил новые компоненты в набор инструментов. Примерно через неделю мы написали клон веб-браузера Mosaic, назвав его WebRunner (дань фильму Blade Runner). Это всех очень взволновало и вызвало живой интерес. Крис Варт, Артур, Джеймс и Джон придумали способ загрузки классов через Интернет, подобно тому, как Крис делал это через радиоприёмники в Star7. Крис формализовал интерфейс для этих загружаемых классов, и, вуаля, появился первый Java-апплет с машущим на странице рукой Дюком.
![Дюк машет рукой Дюк машет рукой](https://habrastorage.org/getpro/habr/upload_files/164/79e/5b4/16479e5b484fd4f41af5e963764c5c74.gif)
Через несколько дней после этого я уволился из Sun Microsystems. Остальное, как говорят, уже история. Но не моя история, и пусть её расскажут другие. Я перешёл работать в Starwave, оказавшись по другую сторону «платформенной войны». Я комфортно устроился, разместившись между Netscape и Microsoft, наблюдая, как они вынуждены поддерживать работу своих платформ для корректного отображения контента моей компании.
Java сыграла важную роль в стратегии моей новой компании, что вывело наш сайт в лидеры в Интернете. Кто знает, если Starwave будет так же успешен, как Java, то все наши усилия были не напрасны.
Патрик Ноутон
18 марта 1996 г.
Сиэтл, Вашингтон