В случае с Java модель «безопасного дорожного движения» была заложена на ранних этапах развития технологии, по сути стала ее фундаментом. В Sun уверены, что время подтвердило правильность выбранного подхода. Самой природой Java была обусловлена неизбежность формирования подлинно всемирного сообщества разработчиков. Но технологии требовалось быть готовой к этому, чтобы развитие шло своим чередом, не затрагивая базовые принципы
Джон Гейдж: «Развитие Java еще далеко не закончено. Вариантов дальнейшего продвижения много, поэтому необходимо, чтобы кто-то нес ответственность за выбор в пользу тех или иных направлений»

Джона Гейджа мне впервые довелось увидеть в марте 1998 года в Сан-Франциско во время конференции JavaOne. Он был тогда ее ведущим. Открывая конференцию, Гейдж пригласил на сцену... Билла Гейтса. Следом на сцене появился человек, на лице которого красовалась маска «редмондского властителя». Долго выступать ему не дали. «Гейтс» успел произнести лишь пару фраз, после чего незаметно подкравшийся сзади Джеймс Гослинг, «отец» языка Java, от души «угостил» его кремовым тортом. Шансов увернуться и тем самым спасти свою физиономию у «Гейтса» не было ни единого. «Я всегда мечтал это сделать!» — победно произнес Гослинг. В ответ раздались аплодисменты.

С тех прошло уже больше шести лет, и многое изменилось в ИТ-индустрии. Прежние непримиримые враги снова стали друзьями, и их уже совместные постановки ничуть не уступают прежним моноспектаклям по части театральных эффектов. Sun покинул один из основателей компании, Билл Джой, оставив всех в недоумении относительно истинных причин своего ухода.

Жизнь Джона Гейджа по-прежнему связана с Java (как, кстати, и Джеймса Гослинга, но немного в другом русле). Директору по исследованиям и руководителю научных работ Sun Microsystems по роду своей деятельности (Гейдж отвечает за взаимодействие компании с академическим сообществом, исследовательскими институтами и технологическими ассоциациями) часто приходится путешествовать. Недавно он был в Москве и ответил на ряд вопросов Computerworld Россия.

Когда ИТ-сообществу впервые представили Java, это был, прежде всего, новый язык программирования, но, кроме того, еще и новая модель программирования. Затем вокруг этой модели была выстроена целая технологическая платформа. Что сейчас представляет собой Java?

Знаете, мне самому порой бывает очень интересно оглянуться назад и вновь увидеть тот путь, который был пройден Java за эти годы. Сначала у людей появились новые средства программирования. Эффект был ошеломляющий — независимость от операционных систем дала толчок созданию Java-приложений для самых разных сфер применения, от мобильных телефонов до видеорекордеров и космических аппаратов, от работы с базами данных до программирования в реальном времени. Это можно было сравнить с появлением первых автомобилей. Сразу открылось столько новых возможностей! Но затем пришли и проблемы. Можно продолжить аналогию с автомобилями. Водителей становится все больше, ездят они все быстрее, и вот наконец наступает момент, когда становится ясно: без четких правил, без полиции, без судебных инстанций, разбирающих дорожные инциденты, никак не обойтись. Иными словами — необходима инфраструктура. В случае с Java, мне особенно приятно это отметить, модель «безопасного дорожного движения» была заложена на ранних этапах развития технологии, по сути стала ее фундаментом. Время подтвердило правильность этого подхода. Самой природой Java была заложена неизбежность формирования подлинно всемирного сообщества разработчиков. Но технологии требовалось быть готовой к этому, чтобы затем с помощью JCP (Java Community Process) и других институтов решать вопросы дальнейшего развития, комплексного развития всей инфраструктуры Java, а не базовых основ.

В прошлом бытовало мнение, что Java недостает удобства в использовании. С этим соглашался, кстати, и «отец-основатель» технологии Джеймс Гослинг.

Здесь мне опять представляется уместным перенестись на несколько лет назад (примерно на пять), когда поддержка Java впервые была реализована на уровне ядра операционной системы. Соответствующие механизмы появились в Solaris, ряде других ОС. Шаг вперед был сделан значительный, в первую очередь — по части скорости исполнения Java-программ. Судите сами: появилась возможность прогнозировать и гарантировать время исполнения программ, обеспечивать их выполнение в реальном времени. Но чтобы пользоваться этим было по-настоящему удобно, требовались новые инструменты, более развитые средства программирования. Так возник проект под кодовым названием Jackpot, в котором одна из ведущих ролей как раз и была отдана Гослингу.

Есть ли в языке C# какие-то функции или возможности, которые могли бы усилить Java как платформу?

Мне приходилось сталкиваться с мнением о том, что С# как бы исправляет некоторые недостатки Java. Отчасти я могу согласиться. Но популярности С# эти «исправления» не очень-то добавляют. Действительно интересным элементом технологии (!) С# я бы назвал среду CLR (Common Language Runtime), в которой заложена идея использования при создании программ нескольких языков одновременно и последующей интерпретации общего кода виртуальной машиной. Но и с помощью Java можно делать похожие вещи. Вообще же в С# очень многое позаимствовано из Java.

Историческое перемирие между Sun и Microsoft открыло широкий простор для технологической интеграции. Некоторые технологии Microsoft считаются более совершенными, нежели аналогичные компоненты Java. Например, сравнение графических API DirectX и Java3D обычно заканчивается не в пользу решения Sun. Имеет ли смысл скрещивать DirectX и Java?

Не исключено, тем более — сейчас появились реальные возможности для этого. Должен вам сказать, что в Microsoft работают очень сильные инженеры, с которыми интересно вести диалог. И не просто диалог, а открытый диалог, что, собственно, и делает его интересным. Разумеется, мы знали это и раньше, но менеджмент корпорации препятствовал нашим контактам на уровне технических специалистов. Теперь, когда наконец закончено длительное противостояние между нами и Microsoft, когда в Microsoft пересматривают некоторые принципы ведения бизнеса и отрывают коды своих API, можно вести речь о более глубокой технологической интеграции.

Что касается конкретного вопроса, связанного с DirectX, честно скажу, я не могу дать полного ответа на него. В свое время сам факт появления Java3D означал огромный шаг вперед для платформы Java и был очень положительно воспринят разработчиками. Насколько мне известно, четких планов глубокой интеграции Java и DirectX не существует. Точно так же, как нет и планов интеграции Java и С#. Вообще должен вам сказать, что в Microsoft несколько по-иному подходят к разработке и совершенствованию технологий, нежели в Sun. Мы все же в большей степени ориентированы на сотрудничество.

Современные тенденции построения корпоративных ИТ-систем предполагают усиление роли Web-сервисов, решений на основе сервисно-ориентированных архитектур и т. п. Как Java соответствует этим тенденциям?

Java позволяет делать все то же самое, только проще. В свое время именно концепция Java помогла разрушить стереотип восприятия вычислительных технологий — всю условность их привязки, скажем, к Windows (в случае настольных систем) или мэйнфреймам (в случае систем корпоративного уровня). Распределенные вычисления сегодня применяются повсеместно.

Возьмите Google — самый популярный поисковый сервис. Их центры обработки данных разбросаны по всему миру, в результате в каждом конкретном случае пользователь и не догадывается, где обрабатывается его запрос и как формируется результат. Главное: это работает.

И работает эффективно, не так ли? Все это прекрасно, но нужно понимать: рамки Java далеко не ограничиваются понятиями «сервис», «обработка запросов» и т. п.

Java и XML со всеми его многочисленными расширениями сейчас существуют параллельно друг другу или эти миры все-таки пересекаются?

Java — кроссплатформенный язык программирования, XML — кроссплатформенный механизм представления данных. Вместе две эти технологии образуют идеальную базу для создания Web-приложений корпоративного уровня. Между ними нет конкуренции. XML сейчас становится основным инструментом представления данных в Java-системах, придавая им, если хотите, дополнительную мобильность. И давайте не будем забывать, что Sun является не только создателем Java, но и одним из соразработчиков XML. Поэтому мы и дальше будем продолжать делать все, чтобы эти технологии развивались в едином русле на благо пользователей.

Видите ли вы возможности для прогресса в области настольных систем и средств офисной работы? У многих специалистов сейчас складывается впечатление, что инновационные ресурсы здесь исчерпаны.

Для инновационного развития в первую очередь необходима конкуренция. Поэтому мы стремились и продолжаем стремиться к тому, чтобы конкуренция в данной области не угасала. Появление в StarOffice встроенной «родной» (native) поддержки XML, средств безопасности корпоративного уровня, передача кодов проекта Project Looking Glass (принципиально новый, трехмерный пользовательский интерфейс) сообществу Open Source — всеми этими действиями мы хотим показать, что инновационный потенциал настольных систем далеко не исчерпан. Особо я хотел бы отметить Project Looking Glass — это действительно революционный подход к построению пользовательских интерфейсов. Не сомневаюсь, за ним — будущее.

В последнее время Sun все чаще призывают к тому, чтобы развивать Java по модели Open Source.

Казалось бы, это в первую очередь политический вопрос. Но здесь есть немало тонкостей технического характера. Дело в том, что развитие Java как ИТ-инфраструктуры еще далеко не закончено. Вариантов развития много, поэтому необходимо, чтобы кто-то нес ответственность за выбор в пользу тех или иных направлений. Централизация контроля над Java — не прихоть Sun. Это, прежде всего, вопрос ответственности за будущее Java. Безусловно, мы должны разделить ее с Java-сообществом. Поэтому сейчас мы активно работаем над созданием таких отраслевых организаций, которые помогли бы снять социальную остроту проблемы и перевести дискуссии в техническую сферу.