«Открытые системы»

Сообщество разработчиков с энтузиазмом восприняло новый шаг Sun Microsystems

13 ноября компания Sun Microsystems объявила о начале поэтапного процесса, результатом которого станет превращение всех закрытых прежде кодов Java в открытые. Аналогичные действия были предприняты прежде по отношению к Netbeans, OpenOffice и OpenSolaris. О неизбежности этого шага говорили давно, особенно часто — после весенней конференции JavaOne.

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

Грин сравнил свое отношение к случившемуся c родительскими чувствами в связи с поступлением сына в университет и выразил убеждение, что для Java начинается новая жизнь, в которой могут принять участие разработчики из разных стран (любопытно, что россиян он назвал четвертыми по счету).

Но наибольший интерес, пожалуй, вызвало выступление Саймона Фиппса, эксперта по открытым кодам из Великобритании, некоторое время назад занявшего в Sun пост «директора по открытым кодам» (Chief Open Source Officer, COSO). Фиппс назвал данную акцию «самым крупным событием, когда-либо имевшим место в истории открытых кодов», объяснив принятие решения об открытии кодов на основе GPLv2 желанием создать сообщества разработчиков для мобильных и встроенных систем. В своем объяснении он продолжил классическую для Sun мантру «Сеть — это компьютер» словами «а открытые коды — его душа».

Версия Java ME будет открыта в течение ближайших трех месяцев, Java SE — в течение шести месяцев, а редакция Glassfish (вариант Java EE, реализованный Sun) к лицензии CDDL получит еще и GPL. Это известие больше всего обрадует разработчиков, использующих Linux, эта перемена позволит им свободно применять закрытую доселе виртуальную машину Java VM и выстроить полный стек от операционной системы до приложения («Linux + Java + открытый инструментарий промежуточного слоя + заказное приложение»). Теперь Java может рассматриваться как универсальная платформа, полностью независимая от аппаратного обеспечения с потенциалом масштабирования вплоть до сетей grid.

С открытием кодов появляется опасение за целостность, есть потенциальная опасность, которую называют code forking (буквально «разветвление кодов»), то есть распространение несогласованных версий, создаваемых разными членами сообщества. Впрочем, Фиппс назвал подобного рода опасения «избыточной тревожностью». Количество активных членов любого сообщества на порядки меньше общего их числа, и из многомиллионного сообщества разработчиков (в случае Java это цифра находится в пределах 4-5 млн.) лишь незначительная часть «пойдет в коды», по оценкам Фиппса — не более 400 человек. Для сравнения, в известном проекте GNU Classpath (часть более крупного проекта GNU Free Software Foundation), цель которого — создание свободной библиотеки классов ядра для использования в виртуальных машинах и компиляторах Java, реально участвует не более 30 человек. В близком по смыслу проекте Apache Harmony, также направленном на создание открытой реализации языка Java, заняты менее двух десятков специалистов из корпораций Intel и IBM и не более пары сотен волонтеров. Понятно, что при такой численности соисполнителей опасность порождения альтернативных версий практически исключена. Моральное значение открытости оказывается выше, чем реальная возможность соучастия. Кроме того, и это тоже нельзя исключать из виду, открытость не только повышает качество программного обеспечения, но и позволяет искать и рекрутировать таланты. Положительный эффект открытия кодов состоит в том, что усилия избранных могут оказаться благом для них самих и одновременно пойдут на пользу миллионам. 


Написано однажды, свободно везде

Удивительно не то, что Sun Microsystems решила сделать платформу Java бесплатной. Удивительно то, что она выбрала для этого лицензию General Public License.

До сих пор во всех случаях, когда Sun открывала исходные тексты своего ПО, она использовала свою собственную свободно распространяемую лицензию, CDDL (Common Development and Distribution License). Но сейчас корпорация приняла решение распространять Java Platform Standard Edition (Java SE) и Java Platform Micro Edition (Java ME) на условиях лиценции GNU версии 2 (GPLv2). Лицензия GPL, популярная в сообществе Open Source, была разработана в 1989 году, а в 1991 году появилась ее следующая версия, GPLv2. Именно эта лицензия действует в отношении ОС Linux, СУБД MySQL и сервера файлов и печати Samba.

О намерении «открыть» язык Java в Sun впервые объявили в мае, и с этого момента руководство корпорации консультировалось с партнерами и разработчиками для того, чтобы определить, условия какой лицензии наилучшим образом соответствуют ее требованиям.

Главным аргументом при выборе GPL для Java была совместимость. В частности, в корпорации рассчитывают, что версии GNU/Linux, такие как Debian и Ubuntu, будут объединены с Java, и для среды разработки откроются новые рынки. Пока Sun намерена предлагать на условиях GPLv2 свободно распространяемые версии Java SE и Java ME. Однако в будущем предполагается использовать и другие свободно распространяемые лицензии — в том случае, если темпы распространения Java на условиях GPL окажутся недостаточно высокими. В то же время Sun планирует по-прежнему выпускать коммерческие версии своих Java-технологий для тех, кому необходимы платные услуги поддержки.

Кроме того, Sun подтвердила готовность предоставить двойное лицензирование для Project GlassFish, своего свободно распространяемого сервера приложений, созданного на основе Java Platform Enterprise Edition (Java EE). Платформа GlassFish, разработка которой началась в июне 2005 года, выпускалась с лицензией CDDL. С первого квартала следующего года GlassFish также будет лицензироваться на условиях GPLv2 для того, чтобы разработчикам было проще вместе распространять Java SE, Java EE и Java ME.

Остальное свободно распространяемое ПО Sun, в том числе операционная система OpenSolaris, по-прежнему будут выпускаться на условиях CDDL.

— Чайна Мартенс, Служба
новостей IDG, Бостон


Авторитетное мнение

Решение Sun Microsystems вызвало на редкость единодушную реакцию, в том числе — у признанных авторитетов компьютерного мира

Ричард Столлман, основатель проекта GNU и Free Software Foundation: «Я нахожу, что открытием Java Sun сделала больший вклад в фонд открытого программного сообщества, чем любая иная компания, и надеюсь, что ее положительный пример будет воспринят другими».

Тим О’Рейли, директор и основатель O’Reilly Media: «Выбор GPL будет шоком для многих, но я думаю, это смелый и достойный шаг, имеющий далеко идущие последствия. С одной стороны, он расширяет игровую площадку, а с другой — больше не позволит крупным компаниям ‘играть втемную’. Кроме того, сообщества разработчиков, получив совершенно свободную и открытую лицензию, почувствуют себя сильнее и смогут по-новому взглянуть на Java».

Пол Кормье, вице-президент Red Hat: «Open Source Java — это недостающий фрагмент мозаики для более широкого распространения разработки в открытых кодах в диапазоне от настольных систем до серверов. Распространение по лицензии GPL делает Java привлекательнее для разработчиков, сообщества и потребителей».

Эбен Моглен, профессор Нью-йоркского университета, основатель центра Software Freedom Law Center: «Избрание Sun политики GPL для Java следует рассматривать как экстраординарное достижение, оно возвращает технологии программирования к тому состоянию, когда люди имели возможность свободно делиться достижениями. Это критически важный шаг по направлению к свободному обмену знаниями для создания технологий завтрашнего дня».

Чабонг Чой, вице-президент компании LG Electronics: «Java реализован в более чем миллиарде сотовых телефонов и фактически стал платформой для развития цифровых мобильных сервисов, а открытие и далее усилит инновационную роль языка и превратит его в идеальную платформу, предназначенную для этих целей».

Даг Фишер, генеральный директор подразделения Intel Systems Software Division: «Наша компания всегда поддерживала Sun в деле превращения Java в технологию, доступную для программирования в открытых кодах. Это позволит создавать java-приложения нового поколения».