Данная статья является сокращенным переводом известной статьи Майкла О'Коннелла "Java: The inside story", написанной им для журнала SunWorld Online в июле 1995 г. Статья интересна не только тем, что в ней история возникновения языка Java рассказывается его непосредственными создателями, но и тем, что с ее публикации фактически началась история самого журнала JavaWorld, а автор статьи стал главным редактором этого издания. Читая статью, не забывайте, что она написана больше двух лет назад, а за это время многие взгляды создателей Java на дальнейшее развитие этой технологии безнадежно устарели (по этой причине мы не публикуем раздел статьи, названный "Заглядывая в будущее"). Полный вариант статьи на английском языке можно найти по адресу http://www.sun.com/sunworldonline/swol-07-1995/swol-07-java.html.

Сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы и для создания распределенных не зависящих от платформы приложений. Первоначально же язык Java корпорации Sun предназначался для устройств бытовой электроники, и в некоторых из них еще может использоваться его ранний вариант, известный под названием Oak. Однако настоящей стартовой площадкой для стремительного взлета Java стала сеть Internet.

Некоторые полагают, что для успеха любого дела прежде всего необходимо продумать и четко поставить задачу. Однако, совершенно очевидно, что в случае с языком программирования Java компании Sun Microsystems задача оказалась решенной до того, как ее сформулировали.

Создатель Java Джеймс Гослинг считает, что генезис этой технологии можно проследить с начала 1991 года, когда для изучения перспектив на рынке бытовой электроники в компании Sun была создана небольшая группа инженеров. В то время сеть World Wide Web существовала только в проектах.

Потребители против инженеров

"Группе была поставлена задача создать распределенную систему, которую можно было бы в качестве современной программной технологии продавать производителям бытовой электроники," - вспоминает Гослинг.

Гослинг, которому сейчас 40 с небольшим лет, перешел в Sun в 1984 г. из исследовательского отдела IBM. Его первая работа - интересный технически, но не имевший коммерческого успеха оконный интерфейс NeWS. Он также написал GOSMACS - первую реализацию текстового редактора EMACS на языке С.

Эта деятельность в области бытовой электроники (которая потом стала называться проектом "Green") показала Гослингу и его коллегам, как важны для потребителя такие показатели, как надежность, стоимость, соответствие стандартам и простота. Если пользователи рабочих станций заинтересованы в большой мощности и терпимы к высоким ценам, необходимости длительного обучения и наличию различных ошибок, то рядовым потребителям нужны дешевые, относительно простые и надежные устройства.

Чтобы успешно конкурировать на рынке бытовой электроники, компании должны рассматривать процессоры как обычный товар, который в любой момент можно заменить более дешевым, а также обеспечивать обратную совместимость и соблюдать стандарты, установившиеся на устройства длительного пользования типа тостеров и телевизоров.

В начале был С++

Чтобы не связывать разработку с конкретной платформой, Гослинг начал с расширения компилятора С++. Со временем, однако, он понял, что один С++, как его ни расширяй, не сможет удовлетворить все потребности. Поэтому в середине 1991 года был задуман язык Oak. (Впоследствии при поиске торговой марки его название было заменено на Java). "В конце концов, язык - это средство, а не самоцель, - поясняет Гослинг. - Мы не собирались зацикливаться на С++, а хотели разработать систему, которая позволяла бы создавать большую распределенную разнородную сеть из бытовых электронных устройств, способных взаимодействовать между собой".

В конце 1992 года, предприняв, по выражению тогдашнего инженера проекта Патрика Нотона, "огромные усилия по доработке Oak и других компонентов", коллектив проекта "Green" выпустил "*7" - устройство типа PDA, названное Гослингом "ручным пультом дистанционного управления".

"За полтора года мы сделали столько же, сколько иные большие коллективы в Sun делали за три года, - с гордостью отмечает Нотон. - Операционную систему GreenOS, язык, инструментарий, пользовательский интерфейс, новую аппаратную платформу, три заказных микросхемы... и каждый этап был связан с риском, т.к. мы использовали совершенно новые технологии".

30-летний Нотон до прихода в команду Green возглавлял проект Sun по разработке пользовательской среды Open Window.

Малогабаритность устройства *7 выгодно подчеркивала компактность и эффективность кода, являвшегося ядром технологии. Этот продукт широко демонстрировался в Sun и произвел впечатление на таких важных персон, как Скотт Макнили и Билл Джой, однако его дальнейшая судьба оставалось неясной.

Конкурс на разработку

Пока коллектив работал над Oak и *7, два его члена - специалист по оборудованию и технологии Эд Фрэнк и специалист по планированию бизнеса Майк Шеридан - подготовили примерную деловую и технологическую программу, которой могла бы воспользоваться какая-либо сторонняя компания типа Dolby Labs, чтобы создать и лицензировать технологию, и поместила бы логотип Sun на бытовую электронику вместе со своим. Ко времени появления демонстрационной модели *7 были готовы несколько версий этой программы. Однако в начале 1993 года, когда в Sun анализировались возможности применения Java, коллектив проекта Green, преобразованный к этому моменту в компанию FirstPerson, узнал об объявленном компанией Time-Warner конкурсе на разработку операционной системы для телевизионных приставок и технологии "видео по запросу". "Это было то, что надо", - вспоминает Гослинг.

FirstPerson быстро переориентировалась на рынок ОС для телеприставок и сделала Time-Warner предложение. Однако оно было отвергнуто, по мнению Гослинга и Нотона, чисто по политическим соображениям, хотя ее технология была признана лучшей.

FirstPerson продолжала работать над телеприставками до начала 1994 года, когда ее коллектив пришел к выводу о бесперспективности этого рынка. "Было много совершенно необоснованной рекламы", - поясняет Гослинг. Ряд недавних событий показал, что и сейчас рынок интерактивного ТВ еще не сформировался.

Тогда Нотон сумел доказать необходимость сворачивания работ над телеприставками и концентрации усилий в области онлайновых служб, CD-ROM и платформ для настольных систем. FirstPerson была распущена, и около половины ее сотрудников ушло в компанию Sun Interactive, где они стали заниматься разработкой серверов цифровых видеоданных. Но некоторые из них по-прежнему пытались найти пути применения технологии Java в объединенных в сеть настольных системах.

Обращение к Web

К середине 1994 года сеть World Wide Web выглядела уже вполне солидно. "Мы поняли, что сможем создать действительно первоклассный браузер, - говорит Гослинг. - Это один из немногих компонентов архитектуры клиент-сервер, который мы могли бы наделить такими необходимыми ему качествами, как независимость от архитектуры, работа в реальном времени, надежность, безопасность, не имеющие такого значения для рабочих станций. Поэтому мы и разработали браузер".

К осени Нотон и его коллега по Sun Джонатан Пэйн закончили писать WebRunner - Web-браузер, написанный на языке Java. Эта первая реализация HotJava проявила Java-технологию в новом свете, и эта демонстрация произвела впечатление на директора подразделения SunLabs Берта Сазерленда и главного технолога Sun Эрика Шмидта.

Что все это значит

Гослинг считает браузер таким компонентом, который "создает рынок" для инструментальных средств, серверов и сред разработки. И во всех этих средствах язык Java играет ключевую роль. "До появления Java страница WWW фактически представляла собой листок бумаги. В появлением Java браузер задает структуру и резко расширяет возможности провайдеров содержания".

Гослинг полагает, что технология Java заставит людей переосмыслить роль вычислений клиент-сервер. "В стандартной модели вы имеете определенные базы данных, пишете пакеты клиентского ПО, взаимодействующего с ними, и создаете какой-то интерфейс". В рамках этой модели трудно создавать распределенные системы и осуществлять их модернизацию, особенно если их части имеют разное происхождение, указывает Гослинг.

Имея же такие инструментальные средства как Java и Web, вы получаете исходно организованную систему, подчеркивает он. "Если вы создаете на языке Java клиентскую часть приложения, то его запуск сводится просто к переходу на соответствующую страницу. Инсталляция тривиальна - просто поместите необходимое ПО на Web-сервер. И никаких проблем с переносом, поскольку имеется только одна версия приложения". Многие компании, по словам Гослинга, уже организуют базы данных в виде Web-страниц с использованием интерфейса Common Gateway Interface (CGI) - специфического стандарта для работы внешних программ на сервере HTTP.


Этапы развития языка Java

История разработки языка Java, изложенная Патриком Нотоном, соавтором браузера HotJava и нынешним вице-президентом по технологии корпорации Starwave.

5 декабря 1990 г. - Нотон отказывается от предложения перейти в компанию NeXT и начинает работу в компании Sun над проектом, получившим впоследствии название Green.

15 января 1991 г. - Совещание типа мозгового штурма по проекту Stealth (названном так Скоттом Макнили) в Аспене, в котором участвовали Билл Джой, Энди Бехтолсхейм, Уэйн Розинг, Майк Шеридан, Джейм Гослинг и Патрик Нотон.

1 февраля 1991 г. - Гослинг, Шеридан и Нотон всерьез берутся за работу. Нотон занимается графической системой Aspen, Гослинг - идеями языка программирования, Шеридан - бизнес-разработкой.

8 апреля 1991 г. - Переезд по новому адресу и разрыв прямого соединения с локальной сетью (и большинством других средств связи) компании Sun; проект продолжается под названием Green.

15 апреля 1991 г. - К проекту Green присоединяются Эд Фрэнк (архитектор системы SPARCstation 10), Крейг Форрест (дизайнер чипа SS10) и Крис Уорт (разработчик системы NeWS).

Май 1991 г. - Эд Фрэнк присваивает прототипу аппаратуры название *7 (или Star7; *7 - код, который было необходимо набрать в офисе Sand Hill, чтобы ответить на любой звонок с любого телефона).

Июнь 1991 г. - Гослинг начинает работу над интерпретатором Oak, который через несколько лет (при поисках торговой марки) переименован в Java.

1 августа 1991 г. - Осуществлено объединение Oak и Aspen; заработала их первая реальная программа.

19 августа 1991 г. - Коллектив разработчиков Green демонстрирует идеи базового пользовательского интерфейса и графическую систему сооснователям компании Sun Скотту Макнили и Биллу Джою.

17 октября 1991 г. - Шеридан и Нотон присваивают конструкторской философии своего коллектива девиз "1st Person", который со временем становится названием компании.

17 ноября 1991 г. - Офис проекта Green снова подключается к главной сети компании Sun линией на 56 Кбит/с

1 марта 1992 г. - К проекту Green присоединяется Джонатан Пейн, который позднее участвует в написании HotJava.

Лето 1992 г. - Интенсивная деятельность по доработке Oak, Green OS, пользовательского интерфейса, аппаратуры Star7 и соответствующих компонентов.

4 сентября 1992 г. - Завершена разработка устройства Star7; оно продемонстрировано Джою и Макнили.

1 октября 1992 г. - Из компании SunLabs переходит Уэйн Розинг, принимающий на себя руководство коллективом.

1 ноября 1992 г. - Организована корпорация FirstPerson.

15 января 1993 г. - Коллектив переезжает в Пало Альто в здание, где раньше находилась лаборатория Western Research Lab компании DEC и была основана исходная группа Hamilton Group (она же OSF).

15 марта 1993 г. - После ознакомления с результатами испытаний кабельного интерактивного телевидения, проведенных компанией Time Warner, корпорация FirstPerson сосредотачивается на этой тематике.

Апрель 1993 г. - Выпуск первого графического браузера для Internet - Mosaic 1.0, разработанного в центре NCSA.

14 июня 1993 г. - Компания Time Warner продолжает проводить свои испытания интерактивного кабельного ТВ с компанией SGI, несмотря на признанное превосходство технологии компании Sun и уверения, что Sun выиграла эту сделку.

Лето 1993 г. - Нотон пролетает 300 тыс. миль, продавая Oak всем, занимающимся бытовой электроникой и интерактивным телевидением; тем временем темп, с которой люди получают доступ к Internet, головокружительно нарастает.

Август 1993 г. - Через несколько месяцев многообещающих переговоров с компанией 3DO относительно разработки ОС для приставок, президент 3DO Трип Хокинс предлагает купить технологию. Макнили отказывается, и сделка срывается.

Сентябрь 1993 г. - К коллективу присоединяется Артур Ван Хофф, поначалу - чтобы создать среду разработки приложений, предназначенных для интерактивного телевидения, а потом разрабатывающий, главным образом, сам язык.

7 декабря 1993 г. - Экспертиза операций на высоком уровне в FirstPerson обнаруживает, что эта группа не имеет реальных партнеров или маркетинговой стратегии и неясно представляет себе дату выпуска.

8 февраля 1994 г. - Отменено публичное заявление компании FirstPerson о выпуске, которое должно было состояться на конференции Technology, Entertainment and Design (TED).

17 февраля 1994 г. - Исполнительным лицам компании Sun для разносторонней экспертизы представлен альтернативный бизнес-план корпорации FirstPerson по разработке мультимедийной платформы для CD-ROM и онлайновой работы.

25 апреля 1994 г. - Создана компания Sun Interactive; в нее переходит половина сотрудников FirstPerson.

Июнь 1994 г. - Начат проект Liveoak, нацеленный Биллом Джоем на использование Oak в крупном проекте небольшой операционной системы.

Июль 1994 г. - Нотон ограничивает область применения проекта Liveoak, просто переориентировав Oak на Internet.

16 сентября 1994 г. - Пейн и Нотон начинают писать WebRunner - браузер типа Mosaic, позднее переименованный в HotJava.

29 сентября 1994 г. - Прототип HotJava впервые продемонстрирован исполнительным лицам компании Sun.

11 октября 1994 г. - Нотон уходит в компанию Starwave.

Осень 1994 г. - Ван Хофф реализует компилятор Java на языке Java. (Ранее Гослинг реализовывал его на языке С).

23 мая 1995 г. - Компания Sun официально представляет Java и HotJava на выставке SunWorld '95.