Релиз Axiom JDK 17

LTS-релиз Axiom JDK 17 一 Прочный фундамент для обновления


17 сентября, 2021


LTS означает релиз с долгосрочной поддержкой (Long-Term Support), но иногда его также называют «долгожданный» релиз. И хотя цикл LTS-релизов Liberica JDK (с 2022 года - Axiom JDK) полностью соответствует циклу обновлений OpenJDK, для нас это важное событие. Мы даже не смогли дождаться официального дня релиза и уже приоткрыли завесу тайны над новой версией Java™, рассказав о новых, удаленных и усовершенствованных фичах.

С каждым новым LTS-релизом перед компаниями встает вопрос: «обновлять или не обновлять»? Несмотря на то, что между обычным и LTS-релизом нет особой разницы, пользователи предпочитают релиз с долгосрочной поддержкой. Так, 69% из них до сих пор используют Java 8, 36% 一 Java 11, и лишь 16% перешли на Java 12 и выше (при этом некоторые опрошенные разработчики используют несколько версий сразу).1 Таким образом, новый LTS-релиз 一 хороший повод для обновления, и на то есть много причин. Например, новые фичи и повышенная безопасность.

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

Итак, без лишних слов представляем вам Liberica JDK 17. Если у вас есть какие-либо вопросы, смело обращайтесь за консультацией к людям, ее создавшим.

Почему стоит выбрать Axiom в качестве LTS-версии JDK?

Чем Liberica JDK отличается от других сборок OpenJDK или от дистрибутивов наших конкурентов? Преимуществ немало:

  • Liberica JDK создается теми же людьми, которые участвуют в разработке OpenJDK. БЕЛЛСОФТ 一 один из ведущих контрибьюторов в OpenJDK. Наши инженеры предложили и внедрили множество JEP. Так, мы устранили 7 проблем из 2743 в OpenJDK 17.
  • Помимо официальных версий мы выпускаем экстренные патчи и обновления, которые помогают поддерживать безопасность вашего рантайма на должном уровне.
  • В Liberica JDK есть дополнительные фичи, отсутствующие в OpenJDK.
  • Мы поддерживаем широкий диапазон платформ, включая AArch64, легковесную Alpine Linux и многие другие.
  • Наша коммерческая поддержка осуществляется теми же инженерами, которые разрабатывают Liberica JDK. Они готовы помочь вам 24/7/365. Забудьте о посредниках и долгом времени ожидания.
  • Мы обеспечиваем поддержку пользователей и разработчиков VMware Tanzu, и начиная с версии 11, Spring по умолчанию будет выходить с Liberica JDK 17.

Скачайте Liberica JDK 17 прямо сейчас и оцените ее преимущества!

Мы уже провели подробный обзор всех JEP, поэтому сейчас давайте остановимся на наиболее важных фичах.

Axiom JDK 17 безопасна

Безопасность JDK была значительно улучшена благодаря трем ключевым изменениям.

  • Благодаря строгой инкапсуляции внутренних компонентов JDK (JEP 403), разработчики смогут избежать ситуаций, в которых придется полагаться на неопределенное поведение кода, не описанное в публичных API. Это снижает риск использования потенциально небезопасных не задокументированных API без понимания принципа их работы. Данная фича также повышает безопасность разработки.
  • Внедрение контекстных фильтров десериализации (JEP 415) позволяет устранить потенциально уязвимые для злоумышленников места.
  • Security Manager был объявлен устаревшим (JEP 411), ввиду чего разработчики будут вынуждены использовать более современные меры по обеспечению безопасности.

Axiom JDK 17 удобна

Теперь писать код на Java™ стало еще проще: это позволит вам ускорить разработку и в целом повысить производительность.

  • С pattern matching for switch (JEP 406) и улучшенным Vector API (JEP 414) код станет более понятным, лаконичным, его будет проще писать и модифицировать. Vector API поможет ускорить вычисления, а pattern matching for switch упростит и ускорит написание кода.
  • В результате внедрения foreign function and memory API (JEP 412) использовать внешние нативные (не Java) библиотеки станет гораздо удобнее. Для этого больше не нужно использовать JNI.
  • Благодаря закрытым классам и интерфейсам (JEP 409) у разработчиков будет больше контроля над кодом, ответственным за реализацию созданных ими классов.
  • Восстановление всегда строгой семантики с плавающей запятой (JEP 306), позволит сделать семантику операций с плавающей запятой, какой она была раньше (изменена в Java SE 1.2). Это обеспечит большее единообразие при написании кода без ущерба для производительности.

Axiom JDK 17 современна

Новая версия JDK содержит фичи, которые должны присутствовать в любом современном языке программирования.

  • Порт на MacOS/AArch64 (JEP 391) и новый конвейер рендеринга для macOS (JEP 382) появились в ответ на решение Apple о переходе на другую архитектуру и использовании Apple Metal API вместо OpenGL. Эти фичи говорят о готовности Java 17 к работе на новых компьютерах Mac.
  • Усовершенствованные генераторы псевдо-случайных чисел (JEP 356) призваны повысить эффективность RNG API. Новый интерфейс RandomGenerator обеспечивает единообразный API, который позволяет использовать любой алгоритм RNG, включая три уже существующих.
  • Подготовка Applet API к удалению (JEP 398) 一 очередной шаг в сторону создания современной среды разработки без устаревших функций.

У Axiom JDK есть свои бонусы

Liberica JDK 一 это дистрибутив OpenJDK, поддерживающий большое количество платформ, включая те, на основе которых можно создавать самые маленькие контейнеры. У нас есть AxiomFX (версия JavaFX) и версия embedded. Мы обеспечиваем разработчиков широким диапазоном инструментов, включая Axiom Native Image Kit для создания нативных образов; еще больше инструментов сейчас на стадии разработки. Начиная с 2021 г., Axiom является рантаймом по умолчанию для фреймворка Spring и Spring Native.

4 раза в год мы выпускаем патчи безопасности в дополнение к стандартным релизам. Наша коммерческая поддержка характеризуется минимальным временем ожидания и общением напрямую с инженерами без посредников.

Кроме того, российским компаниям будет особенно актуальна версия Liberica JDK Pro, которая была внесена в реестр российского ПО. В связи с курсом на импортозамещение и использование компаниями отечественного программного обеспечения, именно эта версия будет необходима для создания сквозных программно-аппаратных решений на основе стека Java в России.

Обновлять или не обновлять

Итак, возвращаемся к вопросу обновления. Стоит ли оно того?

По нашему мнению 一 да, стоит, и вот почему:

  • В случае, если вы используете более новые версии JDK (11 и выше), нет смысла оставаться на устаревшей версии. Скорее всего, вы уже переписали свои старые приложения, поэтому переход, скажем, с JDK 15 на JDK 17 не потребует особых усилий.
  • Если вы до сих пор используете JDK 8, то учтите, что ваша версия JDK выпущена в 2014 г. Хотя в случае Liberica JDK вы будете получать бесплатные обновления безопасности до 2031 г. (или платные обновления в случае других поставщиков), все равно вы пропускаете множество новых функций, которые появлялись в течение 7 лет. Новая LTS-сборка 一 отличный повод сделать шаг вперед, так как с каждой новой версией JDK будет все сложнее переписать код приложений. Таким образом, когда у вас уже не останется выбора, обновление может потребовать много усилий и времени.
  • Если вы используете версию JDK 7 или ниже, все сроки ожидания уже истекли. Хотя БЕЛЛСОФТ поддерживает версии Liberica JDK 6 и 7 до 2026 г., с безопасностью все равно могут возникать проблемы, ввиду чего их рекомендуется запускать только в закрытой среде. Например, JDK 7 по умолчанию использует LTS 1.0, что делает эту версию очень уязвимой для сетевых атак. Мы настоятельно рекомендуем инвестировать в обновление приложений и рантаймов. Наши инженеры с готовностью проконсультируют вас по поводу обновления рантайма и устранения возможных проблем.
  • Если вы разрабатываете приложения в закрытой среде, не планируете ничего менять, и низкая производительность, невысокая критическая производительность (латентность), не самое эффективное использование ресурсов в условиях контейнеризации, медленный запуск и низкая скорость работы для вас не проблема, у вас может создаться впечатление, что вы навсегда избавлены от неприятностей. Однако вашим приложениям все равно можно нанести вред посредством вредоносных данных, поэтому в конечном счете обновления все равно не избежать.

Хотя обновление требует некоторого времени и усилий, мы полагаем, что это правильный выбор. А пока вы готовитесь к переходу на JDK 17, рекомендуем воспользоваться рантаймом с поддержкой, на которую можно положиться.

Давайте рассмотрим все проблемы, связанные с обновлением, и пути их решения.

Как происходит обновление

У языка Java™ хорошая обратная совместимость. Если вы используете Docker или Kubernetes, процедура «обновления» будет выглядеть следующим образом: вы просто указываете новую версию в образе Docker (вот пример того, как выбрать рантайм в Docker для Mac).

Итак, первым делом необходимо удостовериться, что ваши приложения все еще работают. С помощью таких ресурсов, как Перечень версий Java2, можно идентифицировать, какие функции пропали из ваших приложений.

После этого следует обновить инструменты. Например, если вы создаете нативные образы, обратите внимание на новый Spring Native3 с входящим в него Axiom Native Image Kit. Убедитесь в том, что плагины Gradle и Maven также обновлены. Если вы используете JavaFX в своих приложениях 一 установите полный пакет Liberica JDK, содержащий AxiomFX, так как начиная с версии 11, JavaFX не входит в OpenJDK. То же самое относится к Mission Control. Этот инструмент был удален из OpenJDK, но предоставляется БЕЛЛСОФТ.

Также не стоит забывать о JEP 403, который инкапсулирует внутренние API JDK. Следует обновить все соответствующие зависимости и по возможности удалить устаревший код. В качестве временной меры можно обеспечить доступ приложения к внутренним компонентам с помощью

--add-opens=jdk.sctp/com.sun.nio.sctp=ALL-UNNAMED

или

--add-opens=jdk.httpserver/com.sun.net.httpserver=ALL-UNNAMED

В будущем, когда в JDK будет внедрен JEP 408, у этой проблемы будет более быстрое, встроенное решение.

Если у вас уже голова идет кругом от такого количества информации, помните: с каждым новым релизом процесс обновления будет все сложнее. На самом деле, в большинстве случаев обновление занимает несколько дней или даже часов. А если вам нужна помощь, наши эксперты помогут вам сделать процедуру обновления как можно более безболезненной.

Приветствуем Axiom JDK 17

Итак, после того, как мы обсудили все вопросы, связанные с обновлением, мы уверены, что у вас не осталось сомнений по поводу преимуществ перехода на последнюю версию Liberica JDK для вашего бизнеса (например, снижение TCO), которые значительно перевешивают недостатки. Наша рекомендация 一 установите новую Liberica JDK и наслаждайтесь всеми преимуществами для ваших разработчиков, а также безопасности и производительности ваших приложений!

  1. https://www.jrebel.com/blog/2021-java-technology-report
  2. https://javaalmanac.io/
  3. https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/
Author image

Олег Чирухин

Директор по коммуникациям с разработчиками (DevRel)

Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67