Computerworld, США

Sun, несмотря на периодически возникавшие призывы сделать язык Java свободно распространяемым, до сих пор не решалась на подобный шаг

Среди самых заметных новостей на конференции JavaOne в мае нынешнего года было сообщение о том, что корпорация Sun Microsystems намерена предоставить сообществу разработчиков язык программирования Java на условиях Open Source. Известный специалист по технологиям Java Ричард Хоффман ответил на часто задаваемые вопросы о том, почему корпорация приняла такое решение и в какой степени оно коснется каждого разработчика.

Какова предыстория принятия такого ре?шения?

С того самого момента, когда в 1995 году Sun Microsystems выпустила платформенно-независимый язык программирования Java, корпорация пыталась балансировать на тонкой грани между поддержкой сообщества разработчиков, которая выражалась и в помощи отдельным разработчикам, и в покупке доли участия в независимых компаниях, и сохранением известной степени контроля над формой и эволюцией языка. В Sun пробовали сотрудничать с различными организациями по стандартам, экспериментировали с различными моделями лицензирования, структурами и форумами привлечения программистского сообщества и поддержки обратной связи с разработчиками. Самая заметная из этих попыток — Java Community Process, подход к выработке направления развития языка, опирающийся на консорциум разработчиков. Но, несмотря на все эти усилия, многие Java-программисты, равно как и адепты этого языка в отрасли, такие как корпорация IBM, постоянно обращались к Sun с просьбами выпустить Java на условиях полноценной открытой лицензии, такой, например, как GNU General Public License.

А зачем? Разве исходные тексты Java и так не являются свободно распространяемыми?

Безусловно, объявление Sun о намерении сделать свой язык свободно распространяемым, вызовет всплеск энтузиазма среди разработчиков и независимых производителей

Да, исходные тексты Java можно уже давно получить в рамках лицензионных инициатив SCSL и JRL, но окончательный перевод Java в категорию Open Source означает, что разработчики могут более свободно совершенствовать этот язык, вмешательство Sun станет минимальным, а лицензионные ограничения на распространение технологий Java значительно смягчатся. Sun, несмотря на периодически возникавшие призывы сделать язык Java свободно распространяемым, до сих пор не решалась на подобный шаг.

И чего же опасались в Sun?

Представители корпорации публично заявляли, что они хотят избежать неконтролируемого «ветвления», то есть появления несогласованных и фрагментарных версий Java, которые могут стать взаимно несовместимы друг с другом. Одно из основных достоинств Java заключается в том, что, несмотря на наличие виртуальных машин Java и технологий, создаваемых разными производителями и получаемых из различных источников, существует только один «истинный Java», а код, написанный на этом языке, можно запускать на всех платформах Java практически без затруднений. Такое положение вещей сохранялось в том числе и благодаря тому, что в Sun принимали определенные меры для контроля за лицензированием и охраны своей торговой марки. В силу этого название Java могли использовать только те продукты, которые соответствовали определенным критериям. Среди самых известных событий можно вспомнить обращение Sun в суд с иском против Microsoft, выпустившей версию Java for Windows, которая, как утверждалось, была не совместима с «истинным» Java. В Sun обвинили Microsoft в нарушении условий лицензионного соглашения. Конфликт в конце концов был улажен вне суда, и Microsoft в 2004 году выплатила Sun 2 млрд. долл. Microsoft согласилась прекратить распространение своей версии, прекратив разработку Java и начав создание J++, своего собственного Java-подобного языка.

Тогда почему сейчас в Sun все-таки отважились на этот шаг?

По мере своего развития язык Java все больше усложняется, но расширяются и его возможности. При этом он испытывает все более серьезную конкуренцию со стороны платформы Microsoft .Net, а также более простых языков, таких как Adobe Flash, предназначенного для разработки приложений с интерфейсом на базе Web-браузера. Есть мнение, что Java постепенно теряет темп своего развития. Безусловно, объявление Sun о намерении сделать свой язык свободно распространяемым вызовет всплеск энтузиазма среди разработчиков и независимых производителей. Долгие годы Sun пыталась заработать на Java, безусловно одном из самых значимых своих продуктов, но особых успехов в этом корпорации добиться не удалось. Пока не ясно, насколько этот шаг со стороны Sun улучшит ситуацию в ближайшее время, но очевидно одно — если разработчики будут отказываться от Java в пользу .Net, то Sun проиграет.

Как этот шаг со стороны Sun коснется каждого отдельного разработчика?

Скорее всего, эта новость разработчиков обрадует, поскольку этот шаг Sun даст разработчикам большую свободу и права на распространение своих решений, а также позволит сформировать динамично развивающуюся и надежную экосистему для дальнейшего развития технологий Java. Если Sun удастся избежать фрагментации (и это очень важное «если»), то свободно распространяемый Java сулит появление более широкого круга инструментальных средств, продуктов и оптимизированных виртуальных машин. Но, как всегда, главное в деталях, и Sun пока точно не сообщила, как и когда Java действительно станет достоянием сообщества Open Source.

Существует множество лицензий, которые объединены термином Open Source, и Sun обладает определенной властью, ведь именно ей принадлежат права на торговую марку Java. Пока свободно распространяемого Java не существует. Однако, сделав подобное заявление, Sun будет трудно, если вообще возможно, взять свои слова назад. Любой подобный шаг, даже ощущение того, что Sun как-то затягивает этот процесс, безусловно, разочарует ту часть мира разработчиков, которую Sun так отчаянно стремится заинтересовать. Сможет ли Sun освободить Java? Посмотрим. 


Открыть нельзя контролировать

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

Симон Фиппс, директор Sun по свободно распространяемому программному обеспечению, заявил, что сейчас необходимо решить два главных вопроса: как сохранить совместимость Java и гарантировать, что ни одна конкретная компания не будет использовать новую ситуацию на рынке для продвижения собственной реализации языка. Это угрожало бы основополагающей идее, на которой строится Java, — «написано однажды, работает везде».

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

Объявление о намерении выпустить свободно распространяемую версию Java произошло примерно через месяц после того, как Джонатан Шварц сменил на посту генерального директора Sun Скотта Макнили. По словам Фиппса, изменения в руководстве корпорации привели к изменению постановки вопроса. Вместо «стоит ли делать Java свободно распространяемым», теперь решают «как это сделать».

Этот шаг, как признает бывший сотрудник Sun Дениз Купер, дался корпорации не так легко. Группа менеджеров среднего звена в корпорации категорически возражала против превращения Java в свободно распространяемое решение.

«Для того чтобы это сделать, нужно либо изменить настроение, либо внушить новые идеи тем, кто на протяжении многих лет жестко отвергал любые попытки перевести Java в категорию Open Source», — подчеркнула Купер.

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

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

Многие аналитики считают, что Sun слишком поздно решилась на этот шаг, поскольку значительную долю рынка уже захватила Microsoft со своей платформой .Net и языком программирования C#.

Брайан Бехлендорф, руководитель проекта Apache Web Server Project, заметил, что Sun и Java могли бы раньше выиграть от того, что новые возможности Java предлагали и отлаживали бы члены огромного сообщества поклонников этого языка.

В частности, как заметил известный разработчик свободно распространяемого программного обеспечения Делибор Топик, придется пересмотреть принципы Java Community Process (JCP), в рамках которого утверждаются стандарты на Java.

По словам Топика, главы проекта Kaffe, посвященного созданию свободно распространяемой версии Java, процедуры JCP слишком секретны и налагают слишком серьезные ограничения.

«Мне жаль времени, потраченного на переговоры с юридическим отделом Sun, для того чтобы выяснить, могу ли я о чем-то рассказать своим коллегам», — написал он вскоре после того, как Sun объявила о планах относительно Java.

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

«По существу, мы уже прошли 90% пути к созданию нескольких полных, совместимых и свободно распространяемых реализаций Java 1.5 без поддержки Sun, — заметил Топик. — Не думаю, что Sun захочется подтвердить, что свободно распространяемая версия Java по большей части уже создана, причем без участия корпорации».

Джереми Кирк, Служба новостей IDG, Лондон