Забытая история Java:
версия Патрика Ноутона (ч. 1)

Вступление от переводчика

Патрик Ноутон — первоклассный специалист из 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».

При ее редактировании мои редакторы боролись с тремя проблемами: клеветой, оскорблениями и объемом. Они не решились добавить в книгу всё то, что я считал нужным. Мне понятна их точка зрения и причины: ограничение размера книги, а также опасение получить иск от моих коллег, с которыми я работал последние 12 лет.
Тем не менее всё, что я пишу здесь, является лишь моим мнением и эта публикация никоим образом не отражает точку зрения издательства Osborne/McGraw-Hill, а также их сотрудников. И если данный текст оскорбит кого-то настолько, что вы готовы будете позвонить адвокату, то я незамедлительно вырежу информацию о вас, как только вы со мной свяжитесь. (Я также должен сказать, что содержание этого текста никак не связано с корпорацией Starwave, в которой я работаю в данный момент). Довольно слов.
Я много лет спорил с самим собой о том, стоит ли писать обо всём этом. Прошло много времени, и из-за этого факты путаются. Теперь я вижу прошлое по-другому и помню только выборочные моменты, поэтому мне трудно объективно описать те времена. Многие журналисты спрашивали меня о моей версии событий последних лет, и некоторые из них смогли почти точно передать суть происходящего. Но даже после этого я всё равно чувствую необходимость в последний раз заглянуть в прошлое, чтобы каждый мог понять, как мы оказались там, где находимся сегодня. Позволю себе процитировать философа Джорджа Сантаяну: «Те, кто не учится на своих ошибках, обречены повторять их».
Я ничего не утверждаю и ни на чём не настаиваю. Читатель сам несёт ответственность за выводы, которые он сделает после ознакомления с этой главой.

Первое впечатление о Д. Гослинге

Джеймс Гослинг за своим рабочим местом
Впервые я встретил Джеймса Гослинга весной 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
В тот год в один из августовских дней, мы пришли в университет, чтобы занять длинную очередь для подписания бумаг за получение больших коробок с деталями ПК. Затем мы вернулись в общежитие, чтобы разгрузить выданное железо, содержащее невероятно быстрый 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»
Я погрузился в изучение 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, но понимаю, о чём говорит Джеймс.
И вот я стою в кабинете Джеймса Гослинга. Он спрашивает меня о маленьких проектах, которые я включил в своё резюме как профессиональный опыт, хотя на самом деле это были проекты, которые мы с Адамом придумали, чтобы скрасить наши скучные занятия на последнем курсе обучения. Я стою у доски и рисую картинки векторов света, пытаясь объяснить, как работает зеркальное затенение по Фонгу в 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 (DPS), единый набор инструментов, красивый пользовательский интерфейс и невероятные приложения.

Я поспешил домой, чтобы написать эмоциональный отчёт о поездке, ожидая, что он произведет впечатление на коллег. Я ожидал, что люди «проснутся и почуют запах 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

После нескольких дней наставлений от Майка Шеридана, Джеймса и директора научного отдела 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: Майк Шеридан, Джеймс Гослинг и Патрик Ноутон
Следующие несколько месяцев были очень напряженными, так как Джеймс, Майк и я разрабатывали основные идеи будущего продукта. Мы работали долгие часы по выходным, составляя заметки о том, как можно создать что-то действительно новое на таком переполненном рынке. Мы изучали, как другие продукты терпели неудачу и добивались успеха. Мы внимательно проанализировали созданный нами беспорядок при работе с 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, кто может так виртуозно использовать жесткие выражения и при этом сохранить работу.
Первоисточник: «The Long Strange Trip to Java»
Переводчик: Чимаев Максим
Оцените статью, если она вам понравилась!