Отец Java отвечает на вопросы прессы

Джеймс Гослинг: «Java-
совместимость в браузерах
— самый болезненный
вопрос для нас»
Пожалуй, самой яркой из многочисленных встреч, состоявшихся во время конференции Java Enterprise Solutions Symposium, собравшей несколько тысяч разработчиков и пользователей решений на языке Java, оказалась беседа с вице-президентом Sun Microsystems Джеймсом Гослингом, которого называют отцом Java.

Что вы думаете о Cool, который недавно анонсирован корпорацией Microsoft и рассматривается как потенциальный конкурент Java?

Что можно о нем думать, если, по сути, Microsoft ничего конкретного не говорит, кроме того, что это самая замечательная вещь за всю историю человечества. Все, что я видел, — это реклама. На самом деле сложно понять, что же выпускает Microsoft. К примеру, ActiveX существует уже давно, но я никогда не понимал, что это такое.

Современные браузеры не поддерживают апплеты Java 2, а на загрузку модулей расширения уходит много времени. Как перейти на Java 2?

Java-совместимость в браузерах — самый болезненный вопрос для нас; это основной пункт нашего судебного разбирательства с Microsoft. И что же на самом деле происходит с Java 2 и Microsoft, нам неизвестно. Но самый верный путь — это использование модулей расширения: улучшить работу такого модуля, его загрузку и поставлять его вместе с системами.

Многие проблемы, которые возникают в момент загрузки модуля расширения, на самом деле связаны с кэшированием... Мы отрабатывали нашу архитектуру совместно с Netscape, стремясь встроить свою виртуальную Java-машину в их браузер и освободить их от решения вопросов, связанных с виртуальной машиной. К сожалению, результаты этой работы можно будет увидеть только с выходом Navigator 5.0. Когда это произойдет — спрашивайте в Netscape. «Совсем скоро», — неизменно обещают они, но такое впечатление, что срок выпуска все время переносится.

Почему Sun делает платформу Java 2 такой громоздкой? Может быть, лучше иметь небольшой комплект разработчика и загружать его «на лету»?

Хотелось бы с вами согласиться. Но существуют определенные противоречия, причиной чему — постоянное совершенствование Java. С одной стороны, мы стремимся к тому, чтобы Java был действительно простым. С другой многие разработчики хотят видеть в нем множество различных функций. Сохранить простоту Java действительно легко, если разработчиков всего 40-50 человек. Сегодня же сообщество разработчиков Java составляет несколько миллионов человек и у каждого свои запросы... В частности, мы пытались следить за тем, чтобы как можно меньше компонентов было интегрировано в пакет. Мы постепенно внедряем так называемый механизм расширений. Хотя, к сожалению, он пока далек от завершения.

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

Планируете ли вы в ближайшее время предложить исправления, устраняющие так называемую утечку памяти в Swing — графическом пользовательском интерфейсе платформы Java?

Да, конечно, только проблема не в том, что в Swing происходит неконтролируемый расход памяти, а в том, что Swing «удерживает» компоненты системы дольше, чем следует, и между составляющими самого Swing имеется намного больше взаимозависимостей, чем действительно необходимо.

Группа разработчиков Swing тратит практически все свое время на обеспечение нужного уровня производительности. Сейчас они почти не занимаются реализацией новых возможностей. Большинство членов группы работает над тем, чтобы обеспечить приемлемый баланс производительности и уровня потребления памяти. Точные показатели я сейчас назвать не могу, но производительность достаточно высока.