Корпорация Oracle ускорит выпуск стандартной версии Java: планируется, что новый вариант Java Development Kit (JDK) будет появляться каждые шесть месяцев, а версия с долгосрочной поддержкой — каждые три года. Таким образом, очередную версию Java следует ожидать в марте 2018 года, через шесть месяцев после запланированного релиза Java 9.
До сих пор Oracle выпускала крупные версии Java примерно раз в два года, представляя одно-два важных нововведения. Но такой подход, привязанный к изменению функционала, привел к задержкам в создании пакета для разработчиков JDK 9, который теперь, после приостановки работ над сложной модульной структурой, должен наконец появиться 21 сентября.
Версии OpenJDK для основных версий Linux, macOS и 64-разрядной Windows компания Oracle также будет выпускать дважды в год. К Solaris, 32-разрядной Windows и прочим операционным системам это не относится. На основе кода Oracle сообщество Java будет создавать версии OpenJDK для других ОС.
«Существовавший до сих пор подход давал возможность реализовать новые функции гораздо более качественно после их тщательного анализа и тестирования первыми клиентами, — указал Марк Рейнхольд, главный архитектор группы, занимающейся в компании Oracle платформой Java. — Но при этом небольшие API, языковые функции и функции JVM можно было выстраивать только после готовности основного функционала. Все было нормально, пока Java приходилось конкурировать с минимальным набором платформ, но теперь многие другие платформы развиваются гораздо более быстрыми темпами и конкуренция обострилась».
Новый подход, который будет использоваться при подготовке релизов Java, отражает то, что сейчас происходит с версиями Linux Fedora, Red Hat и Ubuntu. Тем, кто желает обновляться дважды в год, предлагается расписание быстрых релизов, а тем, кто хочет стабильности на ближайшие несколько лет, — расписание медленных. Microsoft Windows 10 идет тем же путем.
Первый релиз Java с долгосрочной поддержкой будет выпущен в сентябре 2018 года, через год после появления Java 9 в соответствии со старым расписанием релизов. По сообщениям Oracle, обновления эти будут актуальны в течение по крайней мере ближайших трех лет, а может, и дольше.
У компании Oracle появится единый, долгосрочный проект JDK по поддержанию основной базы кода и функциональных релизов. Отдельный проект JDK Updates предусматривает выпуск обновлений как для «функциональных» релизов (версий, обновляемых два раза в год), так и для релизов с долгосрочной поддержкой (версий, появляющихся раз в три года). Исправления ошибок, расширения и новые возможности «функциональных» релизов интегрируются в основную версию только тогда, когда работы над ней завершены.
Компания Oracle продолжит использовать процессы Java Enhancement Proposal для внедрения новых функций и других существенных изменений.
Oracle намерена поддерживать отношения с другими участниками проекта OpenJDK и выстраивать инфраструктуру для разработки и тестирования, чтобы упростить публикацию функций, доступных на ранней стадии разработки, и предоставление сообществу OpenJDK возможности публиковать официальные сборки JDK.
Начиная с JDK 9, сборки OpenJDK будут распространяться по лицензии GNU General Public License (GPL), это облегчит разработчикам развертывание приложений Java в облачных средах. Исполняемый код OpenJDK планируется распространять по лицензии GPL с использованием исключений Classpath Exception, благодаря чему разработчики смогут включать его в свои платформы и приложения.
«Компания Oracle продолжит поставлять проприетарные сборки Oracle JDK, включающие в себя коммерческие функции, такие как Java Flight Recorder и Mission Control, — сообщил Рейнхольд. — Oracle по-прежнему будет предлагать для таких сборок платные услуги поддержки».
После выпуска JDK 9 будет открыт исходный код коммерческих функций, что повысит привлекательность сборок OpenJDK для разработчиков и сократит различия между этими сборками и Oracle JDK.