|
|
Обзор подготовлен
После выпуска Java 6 в 2006 г. развитие платформы Java фактически застопорилось. Но, как сообщил CNews Хенрик Столь, старший директор по стратегии развития продуктов Oracle, в ближайшем будущем корпорация намерена сполна выплатить давний долг: в 2011 и 2012 гг. будут выпущены релизы Java 7 и Java 8, а впоследствии планируется перейти к регулярному выпуску новой версии каждые два года. Сегодня Oracle принимает меры для повышения прозрачности процесса Java Community Process. Кроме того, Oracle надеется, что в будущем российские разработчики примут более заметное участие в развитии платформы.
Последние годы существования компании Sun Microsystems были противоречивыми с точки зрения развития платформы Java. После выпуска версии Java SE 6 в 2006 г. был нарушен график выпуска новых версий Java, предполагавший новые релизы платформы раз в два года, а согласование спецификаций следующего релиза застопорилось — отчасти из-за бесконечных конфликтов Sun с партнерами-конкурентами (прежде всего, IBM), отчасти — из-за неопределенной финансовой ситуации в самой Sun Microsystems.
Но в том же 2006 г. Sun Microsystems приступила к публикации исходных кодов Java на условиях лицензии GNU GPL. Хотя для публикации всех необходимых компонентов платформы на условиях свободной лицензии потребовалось еще несколько лет, открытие исходных текстов позволило Sun существенно улучшить свои позиции в сообществе разработчиков, где решения с открытым кодом на протяжении 2000-х гг. становились все более популярны.
Примерно в этом состоянии технология Java досталась Oracle в 2009 г. в результате приобретения Sun Microsystems. С одной стороны, Java воспринималась как наиболее респектабельная технология создания приложений корпоративного уровня и пользовалась поддержкой сообщества ПО с открытым кодом. С другой — процесс развития самой технологии увяз в противоречиях. В результате платформа Java по сути перестала развиваться и даже отчасти стала восприниматься как устаревающая.
Тренды разных языков программирования в вакансиях на трудовом рынке США
Источник: indeed.com, 2011
Все это не означает, что рыночные позиции или реальные масштабы использования Java были сколь-либо существенным образом поколеблены: как показал в специальном исследовании на эту тему аналитик агентства RedMonk Стивен О'Грейди (Stephen O'Grady), Java по-прежнему остается наиболее востребованной технологией разработки при найме новых сотрудников. Программисты продолжают испытывать к Java устойчивый интерес, превосходящий интерес к любой из альтернативных платформ. Но что важнее всего — на Java продолжают создаваться новые инновационные проекты, такие как Cassandra, Jenkins, Hadoop и HBase.
Однако что именно мешало Sun развивать Java по графику? Для того, чтобы ответить на этот вопрос, следует описать, как происходит разработка спецификаций в рамках процесса Java Community Process (JCP), где сосредоточена вся работа по усовершенствованию технологий Java. «На ранних этапах разработки Java сначала появлялись спецификации, и лишь после этого создавались реализации в соответствии с этими спецификациями, – сообщил CNews Хенрик Столь (Henrik Stahl), старший директор по стратегии развития продуктов, штаб-квартира корпорации Oracle, и официальный спикер Oracle по направлению Java. – Но с течением времени и по мере созревания платформы Java, значительная часть разработки и инновационной активности стала проистекать уже не в рамках JCP, а в других местах».
Несмотря на то, что Oracle удается находить общий язык с представителями корпоративного сектора, заинтересованными в развитии платформы Java, этого нельзя сказать о некоммерческой организации Apache Software Foundation (ASF), в рамках которой развиваются многие проекты с открытым кодом, которые являются реализациями спецификаций Java или базируются на технологиях Java.
Неоднократные попытки ASF сертифицировать свою реализацию Java, известную как Harmony, не увенчались успехом, поскольку Oracle отказывалась предоставить ASF необходимые для такой сертификации инструменты. После того, как попытка ASF найти поддержку у других участников JCP провалилась, в декабре 2010 г. ASF официально объявила о своем выходе из JCP.
Таким образом, в конце 2000-х годов вопрос о развитии спецификаций Java по сути стал вопросом поиска компромисса между различными конкурирующими между собой реализациями платформы Java: как от коммерческих компаний, таких как IBM и Oracle, так и от проектов с открытым кодом, таких как OpenJDK, Apache и Eclipse. А именно компромиссы давались компании Sun Microsystems в последние годы ее существования особенно трудно.
По словам Хенрика Столя, существенная разница между Sun и Oracle заключается в том, что Sun стремилась (увы, безуспешно) изыскать новые способы зарабатывать деньги на Java и потому была несвободна в своих решениях, в то время как для Oracle Java представляет собой стратегически важную технологию, на основе которой работает практически все ПО связующего слоя (middleware), приносящее Oracle существенную прибыль.
«Мы вложили в разработку ПО на основе Java порядка ста тысяч человеко-лет, – говорит Хенрик Столь. – Таким образом, для нас инвестирование в Java — это, в сущности, обеспечение наших собственных долгосрочных интересов. Мы не думаем о том, как заработать деньги на Java, потому что Java уже давно их нам приносит».
В этом свете становится более понятно, почему Oracle удалось достаточно быстро устранить разногласия с партнерами и объединить вокруг проекта OpenJDK крупнейшие ИТ-компании, в том числе, IBM, которая ранее предпочитала поддерживать альтернативную реализацию платформы Java, развиваемую в рамках сообщества Apache Foundation. Если два года назад проект OpenJDK был лишь одной из нескольких перспективных реализаций Java, то сегодня Oracle удалось превратить его в магистральный проект, в рамках которого будет осуществляться совершенствование платформы.
Запланированный на 2011 г. релиз Java 7 уже через год сменится релизом Java 8. Может сложиться впечатление, что в будущем Oracle планирует перейти на ежегодный режим выпуска новых релизов, однако, по словам Хенрика Столя, это не совсем так: «В настоящее время мы сильно отстали от графика и должны “выплатить большой долг”: последняя версия Java вышла в 2006 г., и прошло уже очень много времени. График выпуска релизов Java 7 и Java 8 получился столь плотным потому, что сейчас нам нужно быстро вывести на рынок новые возможности, которые обеспечат конкурентоспособность Java и предоставят разработчикам все необходимые им современные инструменты». В дальнейшем планируется вернуться к регулярному графику с выпуском новых релизов один раз в два года: «Мы безусловно не хотим повторения подобных задержек в будущем», – говорит Хенрик Столь.
Одновременно с усилиями по развитию Java, Oracle предпринимает усилия по модернизации самого процесса JCP. JCP был разработан задолго до того, как сформировалась современная культура сообществ разработчиков, «в какой-то мере, послужил прототипом современного сообщества Open Source», но сегодня, по мнению Oracle, уже не вполне соответствует изменившимся условиям.
Одно из наиболее важных изменений должно затронуть порядок раскрытия спецификаций в ходе их обсуждения. В настоящее время обсуждение спецификаций проходит в закрытом порядке, но в дальнейшем Oracle хотелось бы, чтобы промежуточные версии также были доступны заинтересованным сторонним наблюдателям, не являющимся членами соответствующих экспертных групп JCP.
Одно из ключевых направлений совершенствования Java в ближайшем будущем — оптимизации технологии для использования в среде облачных вычислений. Нынешняя платформа Java проектировалась в дооблачную эпоху, а поскольку в последние пять лет в развитии самой платформы Java не наблюдалось существенных продвижек, то ограничения Java начали восприниматься ИТ-вендорами как данность, и разные поставщики стали предлагать разные решения для преодоления этих ограничений. Можно сказать, что сегодняшний спрос на решения в области виртуализации (которые работают под Java) и на PaaS-системы (которые работают над Java) во многом обусловлен архитектурными недостатками самой Java.
Однако, как сообщил CNews Хенрик Столь, в будущем платформа должна стать гибче. Ожидается возможность использования общих контейнеров (например, JVM или сервер Java EE) несколькими пользователями (multi-tenancy), при том что для каждого пользователя можно будет установить ресурсные ограничения, чего в текущих версиях Java сделать невозможно. Кроме того, фактически использованные ресурсы можно будет учитывать и использовать, в частности, при биллинге по модели 'pay as you go'. В конечном счете, в Java EE должны появиться специальные функции и API, «которые помогут в управлении облачными приложениями на всех этапах их жизненного цикла», – говорит Хенрик Столь.
Существует целый ряд возможностей внести вклад в развитие Java: можно принять участие в разработке прототипных реализаций, например, присоединившись к OpenJDK, Apache, Eclipse или любому другому проекту с открытым кодом. Кроме того, можно непосредственно войти в состав JCP: «Любая организация — в том числе и правительство России, если у него будет такое желание — может принять участие в JCP», – сообщает Хенрик Столь. В то же время, присоединиться к JCP могут и индивидуальные участники, и некоммерческие объединения, такие как региональные группы пользователей Java.
По словам Хенрика Столя, российские разработчики могли бы принести большую пользу для платформы Java: «У меня сложилось впечатление, что среднестатистический российский разработчик обладает более глубоким пониманием аппаратного обеспечения, чем разработчики из других регионов мира, – говорит Хенрик Столь. – Если учитывать эти специфические навыки, то участие российских программистов в создании платформенного ПО было бы весьма кстати, потому что, признаться, найти разработчиков с такой компетенцией очень нелегко. Я бы хотел призвать читателей CNews, будь то индивидуальные разработчики или программисты из малых компаний, принять участие в таких проектах, как например, OpenJDK, и помочь в разработке портов на платформы, которые по тем или иным причинам важны в России», – говорит представитель Oracle.
Егор Гребнев/ CNews Analytics