Корпорация Oracle объявила о выпуске Java 15 (Oracle JDK 15). На протяжении 25 лет инноваций язык Java остается языком программирования № 1 — его используют 69% профессиональных разработчиков по всему миру. Новейший комплект разработчика Java (JDK) предлагает новые функции, такие как алгоритм цифровой подписи на основе кривой Эдвардса (Edwards-Curve Digital Signature Algorithm, JEP 339) и скрытые классы (Hidden Classes, JEP 371), а также включает в себя финальные версии функций, которые ранее были ознакомительными: текстовые блоки (Text Blocks, JEP 378) и сборщик мусора ZGC (JEP 377). В качестве ознакомительной возможности Java 15 впервые добавлены запечатанные классы (Sealed Classes, JEP 360); также в целях получения дополнительной обратной связи от сообщества в качестве ознакомительных возможностей повторно включены сопоставление с образцом для оператора instanceof (Pattern Matching, JEP 375) и записи (Records, JEP 384). Начните работу с Java 15 уже сегодня.
Начиная с версии Java 10, вышедшей в 2018 году, Oracle выпускает новые релизы каждые полгода, и Java 15 не стала исключением. Такой график позволяет разработчикам быстрее получать доступ к новым возможностям и гарантирует надежность и стабильность. Java используется в организациях самых разных размеров во всех отраслях. Сегодня в мире развернуто и активно используется 51 млрд виртуальных машин Java (JVM), что делает Java предпочтительным вариантом для разработки современных корпоративных приложений, включая аналитику, микросервисы, управление данными, социальные сервисы, большие данные, DevOps, мобильные приложения, инструменты непрерывной разработки и чат-боты.
«В этом году язык Java отмечает двадцатипятилетий юбилей, но мы продолжаем работать над его развитием. Это способствует дальнейшим инновациям Java и позволяет соответствовать требованиям быстро меняющегося мира технологий, — говорит Джордж Сааб, вице-президент Oracle по разработке платформы Java. — Выход Java 15 и инкрементные инновации, появление которых стало возможным благодаря переходу на полугодовой цикл обновлений, дают сообществу Java необходимые инструменты для разработки современных инновационных приложений».
Релиз Java 15 — результат скоординированной ИТ-разработки, включающей открытый анализ, еженедельные сборки и тесное сотрудничество между инженерами Oracle и сообществом разработчиков Java по всему миру в рамках сообщества OpenJDK Community и программы Java Community Process. Java 15 включает в себя следующие новые функции:
Новые функции:
- JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA). Эта функция позволяет повысить безопасность и производительность за счет внедрения криптографических подписей с использованием алгоритма EdDSA (описание см. в RFC 8032).
- JEP 371: Hidden Classes. Функция помогает увеличить производительность — она улучшает взаимодействие Java с фреймворками, которые генерируют классы при выполнении и используют их косвенно, через механизм рефлексии
Финальные версии функций, которые ранее были ознакомительными:
- JEP 378: Text Blocks. Эта функция была ознакомительной в JDK 13 и JDK 14. Она помогает увеличить производительность разработки благодаря добавлению строковых литералов и автоматическому форматированию строк предсказуемым образом.
- JEP 377: ZGC. Этот масштабируемый сборщик мусора с низкими показателями задержки был впервые представлен в JDK 11 для ознакомления и теперь выпущен в финальной версии.
Ознакомительные возможности и инкубатор:
- JEP 360: Sealed Classes. Ознакомительная возможность, которая призвана повысить производительность разработчиков за счет добавления в язык Java запечатанных классов и интерфейсов. Запечатанные классы и интерфейсы предусматривают ограничения на то, какие другие классы и интерфейсы могут расширять или реализовать их.
- JEP 375: Pattern Matching for instanceof. Эта ознакомительная возможность, впервые представленная в JDK 14, помогает улучшить производительность за счет устранения потребности в шаблонном коде и позволяет получить более компактный и типобезопасный код.
- JEP 384: Records. Эта ознакомительная возможность, впервые представленная в JDK 14, помогает улучшить производительность за счет более компактного синтаксиса для объявления классов, содержащих поверхностные неизменяемые данные.
- JEP 383: Foreign-Memory Access API. Эта функция из инкубатора, впервые представленная в JDK 14, определяет API, с помощью которого программы Java могут безопасно и эффективно получать доступ к областям внешней памяти вне динамически распределяемой heap-памяти Java.
Модернизация существующего кода:
- JEP 373: Переработка устаревших API DatagramSocket и MulticastSocket. Эта возможность помогает улучшить удобство сопровождения и стабильность JDK за счет замены существующих API java.net.DatagramSocket и java.net.MulticastSocket более простыми и современными версиями.
Удаленные функции:
- Как и в случае предыдущих релизов, в JDK 15 не поддерживаются устаревшие функции (JEP 374: Biased Locking, JEP 385: RMI activation) и удалены исключенные функции (JEP 372: Nashorn JavaScript Engine) и порты (JEP 381: Solaris and Sparc).
Управление Java
10-я версия JDK, с которой начался переход на полугодовой цикл обновления, стал важной вехой в двадцатипятилетней истории Java. Новый регулярный график позволяет гораздо быстрее добавлять обновления в экосистему Java. Организации, которые используют подписку Oracle Java SE для управления ресурсами Java, не только получают доступ ко всем новым возможностям и поддержку экспертов Oracle, но и значительную экономию в течение четырех лет (31% для крупных предприятий и 29 % для компаний среднего размера) по сравнению с другими способами обновления каждые полгода.
В отчете об исследовании «Java исполняется 25» (Java Turns 25), подготовленном Omdia, главный аналитик Брэдли Шиммин заявляет следующее: «Успех Java и Oracle неразрывно связаны, так как значительная часть внутреннего программного кода Oracle была переписана на Java, что сделало этот язык ключевым компонентом Oracle Database и Oracle Cloud Infrastructure. То же самое справедливо и в отношении организаций, которые используют Java для развития критически важных для бизнеса приложений. В случае Oracle, это распространяется и на продвижение компании к облаку. Благодаря широкому набору инструментов и вспомогательных сервисов, Oracle Cloud Infrastructure представляет собой оптимальную среду для выполнения программ корпоративного уровня на Java». «Судя по добавленным функциям, — продолжает Шиммин, — таким как многострочные текстовые блоки и высокоуровневые конструкции выбора, Oracle ставит во главу угла удобство разработчиков, что делает Java не только более эффективным, но и практичным инструментом».