Продолжение. Начало в #2 1996. (c) Forbes, 1995. George Gilder, The Coming Software Shift, Forbes ASAP, August, 1995 Переведено и перепечатывается с разрешения компании Forbes.
Чтобы добиться успеха, каждые выдающийся человек должен иметь верного партнера. У Билла Гейтса был Пол Аллен, у Джобса был Стив Возняк. У Андрисена был Эрик Байна, как бы служивший ему комплементарным дополнением.Он невысок и худощав, в то время как Андрисен смахивает на медведя; первый осторожен там, где второй идет напролом; он сосредоточен на мелочах, когда его друг старается охватить все сразу; он стремится докопаться до сути вещей там, где его товарищ может принять что-то новое на веру. Он готов прорабатывать мелочи, когда Андрисена посещают новые идеи, и оставаться дома и писать программу, когда его товарищ отправляется в очередную поездку на край света. Такие разные, и все же полностью доверяющие друг другу и удачно дополняющие достоинства каждого, они вдвоем, охваченные необычайным творческим воодушевлением, создали Mosaic, начав работу в январе и закончив ее в марте 1993 года.
Обладая визуальным интерфейсом и богатыми возможностями доступа к Web и другим частям Internet, эта программа требует от пользователя не больше знаний о своем внутреннем строении, чем требуется знаний об устройстве автомобиля от человека, сидящего за его рулем. Mosaic, состоявшей всего лишь из 9 тысяч операторов (сравните это с 11 миллионами операторов программы Windows 95, включая 3 миллиона строк программы MSN), суждено было стать самым быстро распространившимся в мире продуктом из всех когда-либо созданных программных средств.
Андрисен не испытывал страха за систему Internet, которой якобы угрожала гибель от того, что информационные потоки выйдут из берегов; он вращался в таких областях, где не было недостатка в скорости пропускания информации и где всегда было изобилие волоконно-оптических линий связи. Он полностью усвоил закон гиперпространства. Каждый новый компьютер, включаемый в Сеть, не только начинает эксплуатировать ее ресурсы, но и сам становится источником информации, превращаясь в передаточное звено для информационных потоков и в ячейку хранения данных. Каждая новая волна мегабайт информации делает Сеть более интересной, полезной и привлекательной, хотя и увеличивает нагрузку на основные информационные магистрали, по которым информация перекачивается со скоростью в несколько гигабайт в секунду и выше. Internet должна была быть приспособлена для людей, имеющих глаза и уши. Люди не станут злоупотреблять использованием Сети, убеждал своего товарища Андрисен. В конце концов, он понимал, что ему придется положится на Эрика во многом, что касалось программирования графики.
"Я был прав, - говорит теперь Байна. - Люди начали допускать чудовищные злоупотребления. Они, например, переводили в графический формат тексты, созданные на языке PostScript, и при этом на одну страницу требовалось больше мегабайта, в то время как в текстовом формате та же информация заняла бы объем всего около 1000 байт. Но Марк тоже был прав. В результате такого использования Сети тысячи людей потратили массу времени, чтобы сделать доступными через сеть красивые картинки и ценную информацию, обогатив таким образом "Паутину", которой теперь пользуются миллионы людей".
Работая день и ночь в центре NCSA, споря о своей работе, об искусстве, о музыке, о своей программе, проводя долгие часы в кафе Эспрессо Рояль, два программиста достигли небывалого синергизма в своем творчестве. "Каждый из нас делал ту работу, которая казалась ему наиболее интересной, - рассказывает Байна, - поэтому каждый думал, что другому досталась более трудная часть". Байна написал большую часть нового текста программы, и в частности, графику; модифицировал язык HTML так, чтобы с его помощью можно было работать с графическими объектами, добавил декодер формата обмена графическими данными (GIF) и инструменты управления цветами. Андрисен перекомпоновал и частично переписал библиотеку коммуникационных программ из CERN таким образом, чтобы они работали в сети более быстро и эффективно.
Со временем они подключили к работе других молодых программистов из NCSA, среди которых были Крис Уилсон, Джон Миттельхаузер, Крис Хоук и Алекс Тотик. Их задачей стало обеспечить совместимость программы с операционными системами Windows и Macintosh. При участии этих новых членов коллектива были разработаны такие динамические формы как текстовые поля и контрольные окошки в диалоговых окнах, переключающие кнопки и другие способы упорядоченного ввода простого текста для организации поиска и реализации других функций кроме уже имевшейся возможности подключаться к гипертекстовому локатору ресурсов. В конце концов, поскольку каждое изменение в программе просмотра требовало соответствующих изменений в серверах CERN (а тамошние физики были очень занятыми людьми и не слишком приветливо относились к затеям молодых программистов), Байна и Андрисен решили создать свои собственные серверы. Ответственность за выполнение этой важной задачи взвалил на себя их коллега по NCSA Роберт Мак-Кул.
В конце концов они создали совершенно новый интерфейс для сети Internet и новое коммуникационное программное обеспечение, которое делало сеть легко доступной для каждого. Благодаря своей простоте созданный ими программный интерфейс имел такие пользовательские характеристики, что они почти мгновенно заставляли любого, кто пользовался программой, понять, что это был действительно прорыв в будущее. В феврале 1995 года Боб Меткалф предсказал, что сетевые программы просмотра превратятся, по сути дела, в господствующую операционную систему следующего поколения.
Теперь сетевых программ просмотра существует очень много. Их создают все крупные компании и многие компании помельче. Число пользователей этих программ достигает 8 миллионов. IBM, AT&T, Novell, Microsoft, NetCom, Sun, Silicon Graphics, America Online, NetManage, Quarterdeck, Quadralay, Apple, SPRY-CompuServe, Frontier Technologies, Delphi, MCI, Wellongong и даже отпочковавшаяся от NCSA компания Spyglass и еще много, много других, - все эти компании разрабатывают свои, лицензируют, усовершенствуют или составляют из отдельных частей просмотровые программы. Многие из этих фирм, подстегиваемые удачно придуманными компанией Quarterdeck списками популярных программ и необычайной простотой использования технологии "drag-and-drop", уже превзошли Mosaic в начавшемся соревновании программ.
Вот что случается, когда появляется человек, на долю которого выпадает совершить подлинную революцию, добавив к имеющимся уже предпосылкам всего лишь небольшое недостающее звено, которое, по выражению Друкера, преобразует беспорядочный набор элементов в работоспособную систему, инициировав своеобразную мутацию, в результате которой на свет появляется новое жизнеспособное создание. В 1977 году подобный беспорядочный набор представляли собой малые компьютеры, микропроцессоры и программирование на языке ассемблера. Гейтс и Аллен стали теми людьми, которые нашли и предложили недостающее слагаемое - инструментальные программы и Бэйсик, и это привело к рождению первого ПК. В 1993 году Андрисен и Байна нашли ту небольшую составную часть, с помощью которой им удалось превратить глобальную Сеть с включенными в нее тогда одним или двумя миллионами компьютеров (теперь их число число в Сети оценивается в семь миллионов) и неизмеримыми информационными ресурсами в гиперпространство, так же легко доступное даже ребенку, как жесткий диск или CD-ROM на ПК с операционной системой Mac или Windows.
В результате мы видим, что те же силы, которые заставляют сеть расти и шириться, те же законы развития мира телекоммуникаций, которые производят революцию в аппаратуре, фактически лишая компьютеры их былого содержания - превращая их центральные процессоры в периферийные устройства и делая их главным элементом соединение с Сетью - эти же законы изменяют и программное обеспечение. Аналогично тому, что происходит с "железом", программы - операционные системы, приложения и утилиты - тоже переходят в разряд периферийных элементов. Непрерывно растущие и множащиеся ресурсы Internet всегда будут превосходить те мощности те функции, которые можно будет мобилизовать на любом персональном компьютере или даже суперкомпьютерной станции.
Есть хороший пример, подтверждающий эту мысль. В 1994 году четыре ученых из Массачусетского Технологического Института, университета штата Айова, компании Bellcore и Оксфорда (Великобритания) торжественно заявили о своем желании получить премию в 100 долларов, обещанную за разрешение одной трудной задачи. Они объявили о том, что им удалось раскрыть 129-разрядный код созданный с помощью шифровального алгоритма Ривеста-Шамира-Эдльмана (RSA). Один из создателей этого алгоритма, Р. Л. Ривест, устанавливая в 1977 году премию в 100 долларов за успешную дешифрацию кода, заявил, что, по его подсчетам, на это потребуется четыре квадриллиона лет работы суперкомпьютера. Четыре исследователя добились успеха, работая, конечно, не на одной машине (да такого компьютера, который был бы способен производить все необходимые вычисления, и не существует), а на виртуальном компьютере, состоящем из примерно 1600 рабочих станций средней мощности, разбросанных по сети Internet. Другой сходный пример. В 1992 году Гордон Белл впервые присудил свою ежегодную премию за лучшее соотношение цены и быстродействия в области вычислительной техники не какому-то одному компьютеру, а виртуальной распределенной вычислительной системе в сети Internet.
Успех модели Internet даже в области таких приложений, где требуются большие вычислительные мощности, предвещает и символизирует формирование новой реальности, которая входит в нашу жизнь по мере того, как возможности сети начинают превосходить возможности компьютерных микропроцессоров. Отныне современным компьютером становится сеть, а соответствующим программным обеспечением служат сетевые программы для Internet.
Посылая Мозаику в Сеть, Андрисен перевел программу в двоичный формат и позаботился о том, чтобы были скомпилированы ее версии для всех наиболее популярных платформ. В результате через шесть месяцев после появления Мозаики в Сети число пользователей Web увеличилось больше чем на миллион человек. Довольно скоро такой рост популярности сети привлек внимание руководства NCSA. Когда один коллега в Национальном научном фонде в Вашингтоне продемонстрировал Мозаику Ларри Смарру, приехавшему туда из Иллинойса по делам, тот был поражен, узнав, что это программное чудо было создано в одной из лабораторий его центра. Возможно, по возвращении ему стоило заняться этим вопросом. Возможно, что его центр сможет продать Вашингтону кое-что помимо каналов волоконно- оптической связи, соединяющих ученых с суперкомпьютерами Cray. С этого момента продвижение Мозаики стало "одной из приоритетных задач" суперкомпьютерного центра при университете штата Иллинойс.
После того, как Андрисен закончил учебу в колледже в декабре 1993 года, Джон Хардин, руководитель NCSA, предложил ему остаться на работе в центре. Он, однако, поставил одно условие: молодой программист должен был прекратить заниматься Мозаикой. "В работе над этой программой принимали участие около 40 человек, -сказал тогда в разговоре с Андрисеном Харлин. - Не думаете ли вы, молодой человек, что пора дать и другим шанс разделить этот успех?" Ответив, что эти другие будут иметь еще больше шансов, если он уйдет из центра, Андрисен переехал в Кремниевую Долину.
Спустя несколько месяцев, когда Андрисен занимался разработкой средств обеспечения безопасной передачи данных по Internet в компании EIT, он привлек внимание легендарного Джима Кларка, основателя компании Silicon Graphics и изобретателя Geometry Engine, ставшей причиной коммерческого успеха компании. Не занимаясь ничем серьезно, так же как и большинство предпринимателей, пытающихся поймать свою удачу в бизнесе, Кларк выискивал возможности в разных довольно неожиданных областях - в трехмерных играх, интерактивном телевидении, в Голливуде. Едва познакомившись с Мозаикой, он понял, что чем больше он работает с нею, тем больше она притягивает его. Узнав, что автор этой программы теперь находится в Кремниевой долине, Кларк послал ему в начале февраля по электронной почте письмо.
Продолжение сюжета этой истории очень хорошо знакомо обитателям тех краев. Джим Кларк встретился с Андрисеном, и тот стал первым сотрудником новой компании. "Какова судьба остальных программистов из NCSA?" - спрашивал Андрисена Кларк. Узнав, что Крис Уилсон, который адаптировал Мозаику для работы на персональных компьютерах, покинул центр и теперь работает в компании SPRY, Кларк решил действовать решительно. Он пригласил Эрика Байну в Кремниевую Долину и встретился с ним на борту соей яхты. Борясь с большим искушением (у жены Байны был контракт, в соответствии с которым она занимала должность профессора по технологиям баз данных в Шампейн-Урбане и к тому же очень настороженно относилась к быстрым карьерным взлетам), Байна все же отклонил предложение Кларка. Андрисен написал ему по электронной почте: "Жаль. Было бы здорово, если бы ты согласился".
Через некоторое время Андрисен позвонил Байне и предупредил, что он и Кларк собираются приехать в Шампейн-Урбану, чтобы опять повстречаться с Байной и другими главными участниками работы над Мозаикой. "Когда я вышел из лифта в гостинице, где была назначена встреча,- вспоминает Байна,- этот белокурый парень, своей внешностью напоминавший мне моего отца, увидев меня, отступил на шаг назад, оглядел с головы до ног и произнес: Марк говорил, что Вы можете творить чудеса. Никогда не встречал раньше таких людей"". Вскоре они договорились, что Байна сможет работать, не покидая Иллинойса.
Как рассказывает Байна, Кларк, будучи умелым предпринимателем, нарисовал заманчивые перспективы успеха новой компании. Затем, одному за другим, он сделал семерым программистам предложения перейти на работу к нему. Все дали свое согласие. В начале апреля работа над Мозаикой была продолжена, и Джим Кларк забыл об интерактивном телевидении.
Однако рождение новой компании было омрачено разговорами о возможном судебном иске к ней со стороны NCSA по поводу нарушения прав на интеллектуальную собственность. Эта новость исключала возможность дальнейшего использования Мозаики в любой форме. Но это их не сильно огорчало. Они знали, что Мозаика была довольно наскоро написанной программой для работы на линиях связи типа Т1 и Т3 со скоростью передачи до 45 Мбит/с, которые использовались в NCSA. "Мы знали, что Мозаика теперь есть у всех,- говорит Байна,- и мы были рады опять все начать сначала". Переехав в крохотный офис в Маунтин-Вью, за аренду которого они платили меньше чем по 1 доллару за квадратный фут, они вновь принялись за работу.
В новой компании, называвшейся тогда Mosaic Communications, Андрисен занял пост главного администратора. Байна, оставаясь в Иллинойсе, мог выделять на эту работу всего по одной неделе в месяц. Зато это была неделя совершенно бешеной работы, когда он с головой уходил в написание новой программы. Программа была переделана так, чтобы она могла работать с модемом, имеющим скорость передачи 14,4 кбит/с. Ее создатели постарались сделать эту программу единственной, которая бы полностью обеспечивала защиту передаваемых данных. Они добавили к ней поддержку более элегантной оболочки и более богатых документов. Уже через несколько месяцев после того, как новая программа, названная Netscape, была размещена в Сети, она завоевала 70 процентов рынка сетевых программ просмотра и удерживает эти позиции до сих пор.
Самым важным для успешного развития компании оказалось то, что группа молодых энтузиастов разработала целый ряд новых программ-серверов, которые нашли спрос у большинства ведущих и вновь возникающих компаний, предлагающих сетевые услуги, например, у телекоммуникационной компании MCI, и применение в таких программах как Prodigy компании IBM и Delphi компании Murdoch. В общей сложности они выпустили 11 новых программ, стоимость которых находится в широких пределах - от 50 000 долл. за приложения для безопасного сервера до 39 долл. за программу Netscape Navigator Personal Edition, которая снабжена стеком протоколов TCP/IP и благодаря которому она может за 10 минут обеспечить полную совместимость с Internet любого компьютера, находящегося где угодно.
Когда финансовые круги стали вкладывать деньги в сетевые продукты, выпускаемые конкурентами создателей программы Netscape, те поняли, что пора готовить плацдарм для завоевания фондового рынка. Здесь Кларк столкнулся с одной проблемой. Для него не составляло большого труда возбудить среди пользователей волну интереса к Netscape. Вопрос, который его беспокоил, звучал так: "Как при этом сохранить в компании Андрисена?" Но вместо того, чтобы прятать его от представителей компьютерного сообщества, он пошел другим путем. Он решил дать этому молодому человеку с медвежьими повадками представление о хороших манерах, приучил его носить галстук и появляться на работе несколько раньше 8:30... вечера. Он познакомил его с Джоном Доерром из компании Kleiner Perkins Caufield & Byers и другими влиятельными в Кремниевой Долине людьми. Затем он решил устроить ему небольшое паблисити, что подняло бы стоимость акций их компании до нескольких сотен миллионов долларов, и в результате, при удачном стечении обстоятельств и правильной обработке умов, получить нового Билла Гейтса конца 1990-х годов.
В девятом часу вечера он мчится по автостраде Эль-Камино Реаль в своем красном "мустанге" модели 1994 года, салон которого заполнен недоеденными кусками пиццы, пустыми жестянками из-под Спрайта, изодранными листами местной газеты San Jose Mercury News и пухлым номером MicroTimes, носящим жирные следы поп-корна. Управляя машиной и одновременно жестикулируя обоими руками, он увлеченно разговаривает с журналистом из Forbes ASAP, который, замерев на соседнем сиденье, тревожно ощупывает ремень безопасности.
Андрисен удивительно свободен от боязни всего, что придумано не им самим,- синдрома, поразившего многих из его старших коллег. В его сетевую программу просмотра входят компоненты из 17 разных источников. Теперь он рассуждает о достоинствах языка программирования Java, появление которого, по его мнению, предвещает новый этап развития в мире телекоммуникаций, еще более важный и продолжительный, чем тот, который обеспечило появление серверов и программ просмотра.
Для того, чтобы создать нечто новое в Сети, объясняет Андрисен, "другие языки совершенно не годятся. Perl ограничен работой с текстами. Telescript, созданный компанией General Magic, тоже не подходит, так как это патентованная разработка. Языку Tickle (Tcl) не хватает мощности и разветвленности. Scheme и LISP - это уже вчерашний день. Visual Basic недостаточно выразителен и, кроме того, он слишком жестко контролируется компанией Microsoft. Язык Dylan еще не прошел стадию научной разработки в компании Apple. Ни один из них не подходит на сто процентов для работы в сетевом окружении. А вот Java так же революционен, как сама сеть". Если разработчикам удастся адаптировать программу Netscape к языку Java, то это обеспечит компании центральную роль в грядущем расцвете Сети, который по своим последствиям обещает быть еще более значительным, чем процессы, происходящие в Сети сейчас. Нас ждет переворот в области создания программного обеспечения, в результате которого Microsoft навсегда утеряет командные высоты в этой сфере.
Конечно, основной движущей силой этого развития является не какой-то 24-летний парнишка из суперкомпьютерного центра, а фигура более весомая - второй после Билла Гейтса авторитет в компьютерной индустрии, наиболее настойчивый критик и конкурент Гейтса и наиболее выдающийся из всех его пока что побеждаемых соперников. Это Билл Джой из компании Sun Microsystems. Задумывая и создавая Мозаику и Netscape Navigator, расширяя коммуникационные возможности сетевых программ и распространяя эти программы в Сети, Андрисен следовал в профессиональном отношении по пути, указанному Джоем.
Джой был не только основателем компании Sun Microsystems, он был также главным создателем берклеевской версии Unix - BSD (Berkeley Software Distribution) Unix,-над которой он работал еще будучи студентом в университете. BSD Unix стала не только главной программной технологией Sun, но она превратилась в эталонную платформу для TCP/IP, основного протокольного набора, использованного в сети Arpanet, которая стала прообразом современной сети Internet.
Модернизировав протокол TCP/IP так, чтобы он стал применим в сетях с более низкой пропускной способностью, чем сеть Arpanet, где скорость передачи достигала 50 кбит/с, и затем распространив его в Сети, Билл Джой положил начало существованию Internet. Когда в 1988 году компания Sun заявила о том, что сеть теперь начинает выполнять роль компьютера, то в той сети, которая имелась в виду, использовалась файловая система Джоя NFS (Network File System), основанная на TCP/IP. Как говорит об этом Эрик Шмидт, товарищ Джоя по учебе в Беркли, а ныне технический директор Sun и предтеча грядущего переворота в концепции создания программного обеспечения, "Sun начала продавать Internet еще до того, как эта сеть появилась в природе".
И действительно, поскольку компьютеры, создаваемые компанией Sun и использующие операционную систему BSD Unix, были лучше других приспособлены для поддержки TCP/IP, львиную долю всех компьютеров в Сети сейчас составляют машины этой компании, и Sun до сих пор получает экономические дивиденды благодаря расширению Сети. Используя сетевую программу просмотра, созданную Марком Андрисеном, представители компьютерного мира тем самым срывают центр своей вселенной с мертвого якоря, брошенного в Рэдмонде. Даже Билл Гейтс, самый ярый противник сетевого стандарта, предложенного Джоем, включил TCP/IP в свою операционную систему Windows 95. Наверное, Джой должен чувствовать, что теперь компьютерная промышленность наконец-то начинает развиваться правильно.
Подобно тому, как Гейтс положил начало эпохе персональных компьютеров, создав для них язык Бэйсик, Джой начинает новую сетевую эру, предлагая соответствующий ей язык Java. Впервые Джой публично заявил об этом языке в 1990 году на страницах журнала PC Forum, заявив: "Большие программы приводят меня в некоторое смущение, потому что они содержат ограниченный набор идей и так велики в объеме, что их трудно корректировать. Кроме того, они стремятся всего лишь интерпретировать уже существующие метафоры, не создавая новых. Сейчас все используют язык С++. Это довольно "топорный" язык, его трудно понять.
Я организую небольшую группу, чтобы попробовать сделать что-нибудь небольшое, и назову эту группу Sun Aspen Smallworks. Я считаю, что вполне возможно создавать небольшие программы - в несколько сотен тысяч операторов - которые не только будут жизнеспособны в мире распределенных объектов и открытых протоколов, но и окажут на этот мир громадное влияние, гораздо большее, чем то, которое способны оказать 100 тысяч новых строк на программу, содержащую 10 миллионов операторов. Поэтому я ищу себе нескольких талантливых помощников".
Одного из таких людей звали Джеймс Гослинг. Это бородатый человек со всклокоченными светлыми волосами, которого Джон Доерр из компании Kleiner Perkins назвал "возможно, самым великим из современных программистов". Он обладает скромно потупленным взглядом, возможно, выработавшимся у него в результате его предыдущей карьеры, которая на тот момент состояла в основном из серии блестящих неудач. Но, как и Джой, Гослинг горел желанием создать что-нибудь маленькое, например, открыть для Sun дорогу в мир бытовой электроники, где большой считалась программа, состоящая из нескольких тысяч операторов. Для этой цели в 1992 году Sun организовала дочернюю компанию, получившую название FirstPerson.
Целью их нового проекта было разработать способ, с помощью которого можно было бы брать информацию, хранящуюся в базовых компьютерах в форме текстовых, графических и анимационных файлов и других интерактивных формах, и загружать ее в малогабаритные портативные устройства типа цифровых сотовых телефонов. Однако в результате коммерческой неудачи, постигшей устройство Newton, портативные компьютеры с бесклавиатурным вводом стали терять популярность у потребителей, и Sun, вместе с другими компаниями, работавшими в этой области, решила попытать счастья в другой сфере, показавшейся вдруг чрезвычайно заманчивой - в сфере интерактивного телевидения. И здесь они тоже использовали язык Java (в то время называвшийся Oak), но теперь он был адаптирован для работы в интерактивных телевизионных приставках. И здесь программы должны были быть элегантными и компактными, чтобы помещаться в небольшой объем памяти бытовых электронных приборов. Однако вскоре Джим Кларк (как, впрочем, и все остальные) понял, что интерактивная функция - это не более, чем, так сказать, припарка для умирающего организма телевидения.
Руководители проекта были в замешательстве, и Уэйн Розинг, один из создателей компьютера Apple, отвечавший в тот момент за проект в целом, собрался уходить в отставку. В мае 1994 года за спасение ситуации взялся Эрик Шмидт. Он свернул проект с интерактивными приставками в совместное предприятие с компанией Thomson Consumer Electronics, которая к тому моменту уже купила компанию RCA, и вызвал из Эспена Билла Джоя. Тот приехал, и они втроем - Джой, Шмидт и Гослинг - проработали все лето 1994 года в Пало-Альто, создавая новую стратегию использования языка Java. По мере продвижения работы им становилось все яснее, что язык, пригодный для работы с портативными устройствами типа "электронный секретарь" не только удовлетворяет закону Джоя о программном обеспечении, но и практически идеально подходит для использования в Сети.
Со стороны часто кажется, что удачное решение задачи рождается в голове гения в готовом виде. На самом же деле язык Java - продукт напряженного интеллектуального труда, продолжавшегося много лет. Научная карьера Гослинга началась, когда ему было 14 лет и он жил в Калгари. Однажды, посещая со школьной экскурсией компьютерный центр тамошнего университета, он запомнил цифровой код на замке компьютерного класса. С тех пор он не раз приходил туда, чтобы читать компьютерную литературу и осваивать работу на машине PDP-8. Вскоре он достиг таких успехов, что через год поступил на работу в компанию DEC и стал заниматься созданием программы для обработки данных в эксперименте по изучению северного сияния, получаемых со спутников Isis.
В университете Карнеги-Меллона, учась у таких выдающихся людей как Роберт Спраул и Радж Редди, он реализовал текстовый редактор EMACS, компилятор для языка Pascal и написал диссертацию, за которой последовало создание программы, помогающей визуализировать команды и связи между объектами в интерактивных моделях. После окончания университета в 1981 году он стал работать в лаборатории IBM в Питтсбурге, где создал программу, получившую название Andrew Windows System. Это была первая большая программа, которая управляла через сеть окнами на экране удаленного компьютера. Она так и не нашла серьезного применения, но стала первым шагом Гослинга в его 15-летних поисках способа того, как можно посылать по сети программы, которые бы исполнялись на удаленных компьютерах.
Поворотный момент настал для Гослинга в 1983 году. На конференции, организованной в Сан-Хозе компанией Sun Microsystems, Гослинг продемонстрировал Джою работу своей программы Andrew Windows System. Джой убедился, что она существенно превосходит по своей эффективности рабочую станцию Sun View и начал уговаривать программиста перейти в его компанию. Вскоре Гослинг стал сотрудником Sun и занялся разработкой программы управления оконным режимом на удаленном компьютере, получившей название NeWS (Network Extensible Windows System - сетевая расширяемая оконная система). Хотя эта программа первоначально была встречена на ура в промышленных компьютерных кругах, ее распространение было в конце концов заблокировано консорциумом по разработке X Window несмотря на то, что последняя система заметно уступала системе NeWS в эффективности при работе в сети. Затратив изрядное количество времени на изучение объектно-ориентированного программирования, начиная с языка Simula, Гослинг обогатил систему NeWS архитектурой составных документов, обеспечив возможность объединения текста и графики. Эта версия встретила такой же теплый прием и получила столь же неширокое распространение.
Затем был эпизод с неудачной попыткой выхода Sun на рынок бытовой электронной техники. Гослинг занимался созданием соответствующих программ на языке С++. Но довольно скоро ему стало ясно, что этот язык не удовлетворял практически ни одному из важных для этих задач критериев. В частности, он не был ни достаточно надежен, ни безопасен, и этим, как ни удивительно, исчерпывался перечень его "достоинств". "Ружье, предназначенное для защиты от воров, может ранить и хозяина" - эта поговорка как нельзя кстати подходила для языка С++. Присущая этому языку система ссылок позволяла посторонней программе вмешаться в процесс выполнения основной программы и нарушить работу операционной системы на удаленном компьютере.
Поэтому Гослингу пришлось переработать язык С++ в нечто новое, что он окрестил "С++ минус минус". Охваченный вдохновением, подобным тому, с которым он работал в свое время над системами Andrew и NeWS, он адаптировал этот язык для выполнения сетевых операций в реальном времени. Чтобы обеспечить возможность работы разных программ на разных сетевых устройствах - от приставок для интерактивного телевидения до удаленных сетевых устройств - он сделал новый язык принципиально не зависящим ни от какой платформы, придав ему роль своеобразного сетевого скитальца. Это был язык, для которого сеть должна была стать родным домом.
Так в результате длительной работы появился язык Java, эффективный, безопасный, простой и надежный язык программирования в реальном времени, знакомый каждому, кто имел дело с С или С++. Разработанный первоначально для портативных устройств типа "электронный секретарь", использующих инфракрасную связь, он идеально подошел для работы в Internet. Многие из достоинств этого языка объясняются тем, что по своему характеру он интерпретируемый, а не компилируемый. Это означает, что программа, написанная на нем, транслируется во время своего исполнения на компьютере пользователя оператор за оператором, а не переводится предварительно на язык машинных кодов.
Большинство программ создаются в два этапа. Сначала пишется исходная программа, текст которой достигает такого уровня абстракции, на котором уже редко можно проследить за алгоритмическими процедурами и распознать конечную цель ее работы. Обычно исходный текст программы не доступен конечному пользователю.
Второй этап - это компиляция. Программа компилятора переводит абстракции исходного текста в двоичный код, понятный данному компьютеру и представляющий собой набор элементарных инструкций, которые выполняет центральный процессор машины.
В отличие от этой схемы, программа на языке Java компилируется не в набор инструкций для конкретного микропроцессора, а в команды для виртуальной машины, или обобщенного компьютера. Перевод текста в промежуточный двоичный формат позволяет создавать программы, которые не ограничены какой-либо одной аппаратной платформой и которые могут быть адаптированы на каждой из платформ для эффективной работы. Этот промежуточный код транслируется построчно программой, размещающейся на удаленном компьютере и называемой интерпретатором.
Интерпретаторы языка Java занимают всего-навсего 45 Кбайт компьютерной памяти. Компания Sun уже работает над созданием интерпретаторов для операционных систем Windows 95, Macintosh, Windows NT и для нескольких версий Unix. Последующие версии программы просмотра Netscape будут включать в себя соответствующий интерпретатор. Это означает, что любая программа, написанная на языке Java, будет совместима с любой компьютерной платформой. На первый взгляд может показаться, что такая совместимость не является чем-то особенным: любая программа, написанная на С, С++ и других компилируемых языках, может быть совмещена с любой платформой, если она будет обработана соответствующим компилятором. Именно так были скомпилированы для разных платформ версии программы Мозаика, созданной некогда в NCSA. Разница состоит в том, что язык Java может "компилироваться" построчно в ходе выполнения программы, и это очень существенно.
Это означает, что теперь программы не обязательно должны находиться на той машине, на которой они выполняются, или должны быть специально написаны для этой машины, чтобы работать на ней. В принципе, программа на языке Java может находиться где угодно в Сети и при этом выполняться на любом из компьютеров, имеющих связь с Internet. Маленькие программы-интерпретаторы, безусловно станущие вскоре дешевыми и легкодоступными, поскольку они будут распространяться компанией Netscape и другими поставщиками просмотровых программ, сделают программы на языке Java "динамически совместимыми" с любой системой прямо в процессе их выполнения.
Динамическая совместимость - характеристика, более подходящая для сетевых программ, живущих в Сети, чем для тех, которые постоянно обосновались на какой-либо настольной системе. Таким образом, Java освобождает программное обеспечение от привязанности к аппаратной архитектуре. Он предлагает концепцию программирования, радикально отличающуюся от модели, предложенной Microsoft, основой для которой служит не только статичная компиляция, но и зачастую скрываемые от пользователя запатентованные тексты программ.
С появлением языка Java все многообразие нового программного обеспечения становится доступным каждому пользователю компьютера. Вместо того, чтобы быть ограниченными набором тех программ, что хранятся на жестком диске вашей машины, вы можете использовать любую программу в Сети точно таким же образом, каким вам уже сейчас доступна любая информация, имеющаяся в сети. Теперь у кончиков ваших пальцев не только информация, но и программное обеспечение. Так определяет Джой значение термина "исполняемое содержание", а Джон Гейдж блистательно продемонстрировал его в действии на конференции в отеле Св. Франциска на Уэстин-стрит, о которой я рассказывал в начале статьи. Будь то фильм, графическое изображение, мультипликация или изображение идущих часов финансовой компании NASDAQ, информационный канал агентства Рейтер, виртуальная реальность или компьютерная игра,-любая информация может быть загружена в ваш компьютер из сети при помощи соответствующей сетевой программы.
С появлением языка Java авторские права на операционную систему и связанные с нею инструментальные программы перестают определять право на продажу прикладных программ. Право на продажу прикладных программ или на владение информационным каналом перестает определять право на продажу через него конкретной информации. Чем шире Java или другой аналогичный язык войдут в практику программирования, тем более открытым станет программное обеспечение. Настольный компьютер переходит в разряд товаров широкого потребления, его центральный процессор превращается в периферийное устройство; в интерпретаторе Java есть даже переменная "microprocessor".
Однако независимо от того, будут ли программы интерпретируемыми или нет, они не должны попадать в Сеть прежде, чем станут безопасными. Некоторые серьезные изменения, которые Гослинг внес в язык С++, были как раз направлены на то, чтобы сделать язык Java безопасным. Действие многих из существующих вирусов основано на том, что они используют целое число для адресации одной из нижних ячеек памяти компьютера, в которые загружена выполняемая программа. Java исключает такую операцию псевдоадресации. Кроме того, в интерпретаторе Java "зашит" верификатор кода: как только прикладная программа загружается из сети в компьютер, интерпретатор производит ее проверку на наличие вирусов. И, наконец, когда двоичный код Java загружается в память машины, он приносит с собой цифровую подпись в стандарте RSA, которая указывает на источник этой программы и гарантирует, что в процессе передачи текст программы не был изменен или испорчен.
Такая забота о безопасности делает программы, созданные на языке Java, первыми обитателями Сети, обладающими свидетельствами о своей благонадежности. По мере того как интерпретаторы Java все шире будут распространяться среди пользователей, программы, привязанные к какому-либо определенному типу компьютера и программной платформе, все больше будут смахивать на инвалидов, напоминая профессиональных гимнастов, боящихся оторвать ноги от земли.
Компьютер как самостоятельный инструмент теряет свое былое содержание, и пользователей перестают интересовать его технические характеристики, его операционная система, набор исполняемых инструкций и даже имеющиеся прикладные программы. Вместо этого пользователи могут сосредоточиться на содержании своей работы, а не на архитектуре настольной системы. Если вы хотите спроектировать вертолет на экране вашего компьютера, вам не нужно беспокоиться о том, есть ли на жестком диске система AutoCAD. Вы можете получить на экране изображение вертолета, даже не имея соответствующего декодера, - Indeo (стандарт Intel), MPEG-4 (разработан для портативных компьютеров) или динамического JPEG. Вертолет прилетит к вам по Сети со своей собственной исполняемой программой. Сеть перестает быть пространством, которое пугает пользователя. Если вы хотите использовать программу, созданную где-нибудь в Финляндии, вам не нужно бояться, что она заразит вашу машину злокачественным вирусом.
Ваш компьютер никогда не будет одним и тем же. Его технические параметры больше не будут определяющими для характеристик системы в целом. Емкость вашего жесткого диска или размер базы данных в локальной сети не будут ограничивать масштабы обрабатываемой вами информации. Программы, хранящиеся на вашей машине, больше не будут определять набор тех операций, которые вы сможете производить. Вашим компьютером становится Сеть. Компьютер превращается в периферийное устройство в сети Internet и глобальной информационной "паутине" Web.
После того, как на сетевой странице компании Sun были опубликованы язык Java и демонстрационная версия программы просмотра, которая была названа HotJava, Гослинг мгновенно стал знаменитостью в Internet, и ему досталась слава, лучи которой прежде уже коснулись Андрисена и Байны. В отличие от Андрисена, Гослинг, похоже, озадачен этим. Однако, в конечном, счете, его вклад может оказаться более значительным. Программы просмотра и серверы могут меняться, но удачные языки программирования появляются чрезвычайно редко. Java или нечто подобное ему - это ключ к истинно интерактивной сети Internet, с формированием которой компьютер полностью утратит свое прежнее самостоятельное значение.
Недавно Билл Джой выступал перед правлением компании Sun с докладом о путях модернизации нового языка. Джой убежден, что языку Java уготована иная судьба, чем та, которая постигла Andrew и NeWS. Подобно Джиму Кларку, он обратил свое внимание на область суперкомпьютеров в надежде найти там талантливых программистов. Компания пригласила около 20 новых сотрудников из хорошо начавших, но все же недавно закрывшихся компаний Thinking Machines и Kendall Square Research. Возможно, эти люди сумеют научиться думать о малых вещах.
Глядя на весь этот ажиотаж, Гослинг только качает головой. Он уже отчаялся успевать просматривать свою электронную почту, и тысячи сообщений так и остаются непрочитанными. Подключенный к Сети всего лишь с помощью линии Т1, сервер компании не выдержал информационной перегрузки и вышел из строя. Но сам Гослинг, кажется, пока держится неплохо. Он делает доклады по три раза в неделю. Множество людей говорят ему, что они используют созданный им язык вместо языка С для написания рабочих программ источников информации и для разработки других приложений общего назначения. Его осаждают с предложениями такие гиганты японской индустрии как Sony и Sega. Наконец, в июне 1995 года даже Бернерс-Ли одобрил язык Java, охарактеризовав его как "одну из наиболее восхитительных вещей, появляющихся сейчас в Сети".
Будучи заядлым любителем кино, Гослинг представляет себе, как язык Java, программа Netscape и подобные ей преображают образ гиперпространства, превращая его из негостеприимной и угрожающей среды, изображенной в фильме "Бегущий по лезвию бритвы" (Blade Runner), в область, подобную той, которая создана авторами фильмов серии "Звездный путь" (Star Trek), где персонажи полностью доверяют своим кибернетическим помощникам. Возможно, это превращение будет содействовать становлению любезного и общительного Марка Андрисена в роли нового рыцаря гиперпространства, приходящего на смену блистательному, но все же вызывающему у многих страх Биллу Гейтсу.
Но, как допускает и Андрисен, более вероятно, что в ближайшем будущем Microsoft вступит в битву, в которой примет участие и множество других соперников. В августе 1995 года Microsoft объявила о создании целого ряда сетевых услуг, объединенных в программу Blackbird. Многие из этих услуг обладают очень интересными возможностями, но их недостаток в том. что все они работают только в системе Microsoft Network Services, которая не будет широко доступна по крайней мере до середины 1996 года. Начиная в области Internet практически с нуля и отставая от Sun почти на полтора года, Билл Гейтс в конце концов окажется побежденным. Возможно, это заметят даже в Министерстве юстиции. В эпоху, когда компьютер теряет свое самостоятельное значение, империи настольных систем суждено уйти в прошлое вместе со своим правителем.
(c) Forbes, 1995. George Gilder, The Coming Software Shift, Forbes ASAP, August, 1995 Переведено и перепечатывается с разрешения компании Forbes.