Джеймс Гослинг пришел в фирму Sun Microsystems в 1984 г., после получения степени доктора наук в области вычислительной техники в Университете Карнеги - Мелона. В начале 90-х он был ведущим инженером проекта Java в фирме Sun, а сейчас является вице-президентом отделения JavaSoft. Недавно Гослинг беседовал с редактором раздела Intranet Builder Скоттом Петерсеном и старшим редактором еженедельника PC Week Майклом Мюллером. Темой беседы было прошлое и будущее Java.
Джеймс Гослинг: "Java -это круто"
PC Week: Эволюция Java проходила так, как вы рассчитывали?
Джеймс Гослинг: Все было просто удивительно. Когда шесть лет назад началась работа над проектом, он относился к потребительской электронике. Мы потратили массу времени, пытаясь разобраться, как работают сети и как создавать интерактивные приложения. Большую проблему представляли средства, с помощью которых мы пытались заставить все эти прототипы работать. И не оставалось ничего другого, кроме как написать язык программирования. Все, что мы делали, должно было войти в верхний уровень Java. В то время все это казалось какой-то фантастикой. Мы выдвигали самые безумные идеи относительно того, что еще можно предпринять. И самое удивительное - мы и вправду все это делали. Сначала у нас ничего не получалось, тогда почти в отчаянии мы переориентировали систему на Web. И все те фантастические вещи, о которых мы мечтали за два-три года до этого, начали сбываться.
PC Week: Однако потребительская электроника сильно отличается от того, что используется на предприятиях.
Дж. Г.: Не так уж и сильно. Все дело в том, как подойти к сети и как создавать системы, которые обмениваются данными и взаимодействуют друг с другом. Многие вещи в конечном счете оказываются похожими. Как создать приложение, когда не знаешь, где оно будет применяться, даже не хочешь этого знать? Как сделать, чтобы приложение могло быть "гладко" интегрировано в законченный набор каких-то других вещей? Как создать такие элементы, чтобы из них потом могло быть собрано единое целое? Что делать с множеством различных сред, когда разработчик приложения не знает, в какую из них оно будет входить?
В некотором отношении мир интерактивных приложений для потребительской сферы представляет собой более сложный случай, чем предприятие, где нужно одно: чтобы все было побольше и попрочнее. Спектр задач потребительского уровня более разнообразен, и для него требуется значительно большая гибкость.
PC Week: Что бы вы хотели сказать участникам JavaOne?
Дж. Г.: В определенном смысле то, что мы называем языком Java - базовым языком, мы стараемся сделать по возможности компактным. Мы пытаемся сохранить его как можно более стабильным и целостным. А вот над той частью, которую необходимо сделать быстрее и надежнее, и к тому же независимой от разнообразия платформ, приходится потрудиться. В действительности все, что требовало усилий, относилось к различным API, звуку, видео, а также пользовательскому инструментарию. Мы проделали большую работу, чтобы сделать все это как можно более быстрым и надежным. Язык Java становится мощной промышленной системой разработки для тех, кто действительно создает приложения.
PC Week: Некоторые из ваших критиков говорят, что хотя вы многое можете делать, а вот то-то и то-то не можете! И тут же Microsoft заявляет: "А наша Java Application Foundation Classes (библиотека базовых классов приложений Java) уже делает это".
Дж. Г.: В выпуске JDK 1.1 (пакет инструментальных средств разработки на языке Java) основное внимание мы уделяли инфраструктуре. В общем, согласен: в выпущенной нами версии отсутствует средство прохождения дерева каталога. Но в нынешнюю версию, как вы знаете, не вошли многие из распространенных вещей. Просто мы пытались стимулировать разработчиков самих делать это, чтобы люди могли создавать свои собственные компоненты. И именно в этом направлении проводилась работа над версией 1.1 - обеспечить пользователей средствами создания собственных компонентов.
PC Week: Как по-вашему, рост интереса к сетевым компьютерам явился результатом разработки Java, или же прогресс Java - следствие развития идеи сетевого компьютера? И что вы думаете о реальных возможностях использования сетевого компьютера корпорациями?
Дж. Г.: Сетевые компьютеры были в некотором роде последействием. Выйти на рынок с чем-то таким, из чего можно создать сетевой компьютер, никогда не было нашей целью. Существовал определенный круг пользователей, которым нужны были узкоспециализированные приложения, такие, как "обработчики процессов". И если бы это была настольная система общего назначения, она не соответствовала бы потребностям тех людей, которым мы ее продавали. А тем, для кого мы собственно и разрабатывали ее (виртуальную машину Java), она отлично подходит. Серьезная проблема, стоящая перед нами сегодня, состоит в том, что многие захотели использовать ее как сетевой компьютер в таких областях, для которых она не разрабатывалась.
PC Week: Будут ли ведущие разработчики ПО переделывать свои приложения, например Photoshop, под Java? И каким будет рынок?
Дж. Г.: Все приложения можно разделить на две категории. Одни очень сильно загружают центральный процессор, и Photoshop, безусловно, относится к их числу. Переписать Photoshop на современном языке Java не составит особого труда. Просто такая программа будет медленной. Но существует ряд других приложений, не требующих высокопроизводительной системы. Возьмем, например, обычные электронные таблицы, с которыми работает большинство людей, или текстовый процессор, или систему ведения проектной документации, или любое другое приложение подобного типа, где Java сегодня представляет более чем адекватное средство создания всего необходимого. И есть небольшая категория преуспевающих разработчиков - они берут приложения и достраивают к ним верхний слой типа "групповых-распределенных" функций, поскольку это одна из возможностей, которые очень легко реализуются с помощью Java.