Технологические итоги для Java в 2023 году
Декабрь 28, 2023
Java — самый популярный язык программирования в России по итогам опроса и один из самых популярных в мире. Java-экосистема бурно развивается, и 2023 год был полон новинок в мире Java-разработки. Все улучшения, релизы и новые фичи Java и связанных с ним технологий рассмотреть невозможно, но давайте пройдемся по ключевым событиям.
- Выход JDK 21 с долгосрочной поддержкой
- Выход Spring 6 и Spring Boot 3
- Новая политика лицензирования GraalVM
- Новый проект OpenJDK: Project Babylon
- Появление AI-решений для Java-разработки
- Новые решения для российских компаний от команды Axiom JDK
- Что год грядущий нам готовит?
Выход JDK 21 с долгосрочной поддержкой
В сентябре вышел долгожданный релиз JDK 21 с долгосрочной поддержкой (LTS). Долгожданный по нескольким причинам:
- LTS-релизы чаще всего используются в корпоративной разработке, а это значит, что многие компании начнут процесс миграции на актуальную LTS-версию, а новые проекты, скорее всего, будут изначально основаны на ней.
- JDK 21 включает в себя 15 новых, финализированных или улучшенных фич, направленных на повышение производительности, безопасности и удобства написания Java-кода.
- Одна из ключевых фич версии 21 — финализированные (т.е. готовые для использования в проде) виртуальные потоки (Project Loom). Эту фичу долго ждали Java-разработчики, работающие с многопоточными приложениями, поскольку виртуальные потоки помогут в разы улучшить производительность приложений с высокой пропускной способностью, сохраняя при этом преимущества синхронного программирования.
Помимо JDK 21, вышел релиз JDK 20, а следующая версия 22, намеченная на март 2024 г., находится в Rampdown Phase One с установленным перечнем JEP, которые в него войдут.
Выход Spring 6 и Spring Boot 3
Spring — до сих пор самый популярный фреймворк для разработки Java-приложений, поэтому выход новой мажорной версии Spring и Spring Boot не может остаться незамеченными.
Версия Spring Boot 3.2, вышедшая в ноябре, включает поддержку Coordinated Restore at Checkpoint (CRaC). CRaC — это API JVM, позволяющий разработчикам «поставить на паузу» запущенное приложение, сохранить это состояние в файл, а затем восстановить его в любой момент времени и в любом количестве копий с момента паузы, тем самым сократив время стартапа и разогрева приложения с нескольких секунд до нескольких миллисекунд. Стоит отметить, что пока что CRaC является экспериментальной фичей, не предназначенной для использования в проде. Однако ее уже можно изучать и тестировать, используя для этого Axiom JDK Pro с поддержкой CRaC (см. раздел «Новые решения для российских компаний от команды Axiom JDK»).
Кстати, для работы с Spring Boot 3 необходима версия JDK 17 — прекрасный повод начать планировать миграцию с более ранних версий Java!
Новая политика лицензирования GraalVM
Раньше у платформы GraalVM было две версии: бесплатная GraalVM Community Edition (CE) и платная GraalVM Enterprise Edition (EE) с техподдержкой от Oracle. В июне Oracle объявила о выходе Oracle GraalVM вместо GraalVM EE. Новая версия содержит в себе все фичи Enterprise Edition, но является бесплатной как для личного, так и коммерческого использования (хотя формулировка в лицензии GraalVM Free Terms and Conditions о том, что Oracle GraalVM запрещено использовать с продуктами, распространяемыми за плату, заставляет насторожиться).
Тем не менее если вы работаете над корпоративным проектом, не рекомендуется использовать ПО без поддержки вендора, поскольку любая проблема, долго ожидающая решения от сообщества на форуме, может дорого обойтись компании.
В случае, если вам необходима только технология Native Image, можно воспользоваться инструментарием образов Axiom, основанном на GraalVM CE. Данный продукт входит в реестр российского ПО и поддерживается российской командой инженеров Axiom JDK.
Новый проект OpenJDK: Project Babylon
В рамках OpenJDK ведется работа над большим количеством проектов. Некоторые из них довольно известны: например, Project Loom, направленный на внедрение фич и API для повышения производительности и простоты написания многопоточного Java-кода, или Project Leyden, цель которого — сокращение стартапа и времени до достижения пиковой производительности Java-приложений.
В 2023 году список проектов OpenJDK пополнил Project Babylon. Главная цель проекта — расширение возможностей интеграции Java с нетрадиционными для Java моделями программирования, такими как SQL, дифференцируемое программирование, модели машинного обучения, GPU и т.д. Достичь этой цели планируется посредством улучшения механизмов рефлексии Java. Успешное развитие этого проекта в будущем позволит разработчикам внедрять в свои проекты не-Java модели программирования в виде Java-библиотек.
Появление AI-решений для Java-разработки
AI-решения все сильнее внедряются в нашу повседневную жизнь. Разработчики используют их для ускорения написания и тестирования приложений. Поймав волну популярности инструментов на базе искусственного интеллекта среди программистов, команда Spring внедрила AI-функционал в свой фреймворк в виде Spring AI, представляющего собой набор инструментов для упрощения написания AI-приложений на Java.
Кроме того, команда Сбер разработала GigaChat API — интерфейс, позволяющий использовать нейросетевую модель GigaChat. В дополнение к этому команда выпустила GigaChain — версию библиотеки LangChain, позволяющую разработчикам создавать ИИ-приложения. Возможно, в скором времени эти решения можно будет использовать и в Java-разработке.
Новые решения для российских компаний от команды Axiom JDK
В 2023 году Axiom JDK выпустило несколько уникальных решений, отсутствующих в других дистрибутивах JDK:
- Axiom JDK Pro с поддержкой CRaC API для JDK 17 и 21, который позволит разработчикам сократить время запуска и достижения пиковой производительности Java-приложений в 1000 раз, тем самым решив ряд проблем с запуском и временем работы приложений в ряде облачных архитектур.
- Axiom Perf — это улучшенная версия Axiom JDK Pro, сочетающая в себе JVM 17 и JDK 11. За счет большого количества фич и улучшений, портированных из версии 17 в версию 11, Axiom Perf позволяет компаниям повысить производительность проектов, основанных на JDK 11, без перехода на более новую версию Java или значительных изменений кодовой базы. Свяжитесь с нами, чтобы узнать больше о функционале и преимуществах Axiom Perf!
- Доверенный Maven-репозиторий, включающий в себя 4 Гб кода проверенных Java-библиотек. Репозиторий помогает разработчикам повысить безопасность приложений и избежать случайного внедрения вредоносного кода в проект.
Кроме того, произведена работа по улучшению безопасности запуска Java-приложений в условиях Замкнутой Программной Среды (ЗПС) на Astra Linux. Это позволяет гарантировать целостность программного кода, загружаемого и исполняемого в среде исполнения Axiom JDK.
Что год грядущий нам готовит?
В этой статье мы рассказали о ключевых, на наш взгляд, событиях в мире Java. Уместить новости о релизах всех тулов и решений, связанных с Java, а также новых фичах самой платформы невозможно. Но если вы хотите узнать больше об изменениях, улучшениях, и новинках Java-экосистемы, в блоге команды Axiom JDK регулярно выходят описания ключевых событий, лучших практик разработки и гайды по использованию Java-фич и повышению безопасности ПО, а в блоге DevRel’а команды Axiom JDK на Хабр — дайджесты новостей и обзоры технологий.
2023 год был насыщен событиями в мире Java. Что стоит ждать от 2024 года? Ниже приведены наметившиеся в этом годы тренды, которые, скорее всего, получат развитие в новом году:
- Улучшение производительности Java-приложений в облаке, в частности, сокращение времени запуска и достижения пиковой производительности. Разработчики все чаще используют Native Image, но данная технология связана с ограничениями AOT-компиляции, поэтому в рамках проекта OpenJDK активно развивается Project Leyden и CRaC.
- Уменьшение размера контейнеров с Java-приложениями. Успешное сокращение расходов в облаке во многом зависит от размера контейнера. Легковесные образы с Java и минималистичным Linux, таким как Alpine, уверенно набирают популярность. Если вам необходим микроконтейнер для корпоративной разработки, Axiom JDK предлагает Axiom Runtime Container Pro, входящий в реестр российского ПО и занимающий около 40 МБ памяти.
- Дальнейшее развитие AI-решений для разработчиков. Искусственный интеллект ускоряет разработку и позволяет разработчикам сосредоточиться на творческих задачах, передав выполнение рутинной работы AI-ассистенту. Поэтому AI-решения для разработчиков будут совершенствоваться, а вместе с ними — инструменты для проверки безопасности и производительности AI-сгенерированного года.
- Ускорение импортозамещения в российской разработке. У субъектов КИИ, госструктур, банков и финтех-компаний остался последний год для выполнения требований законодательства о переходе на отечественное ПО.
Почему мы включили последний пункт в Java-тренды? Потому что ИТ-команды, ведущие разработку на Java, могут воспользоваться доверенной средой разработки и исполнения Java Axiom JDK Pro, которая
- Входит в реестр российского ПО,
- Локализована под российский рынок,
- Совместима с российскими ОС, СУБД и облаками,
- Имеет версию, сертифицированную во ФСТЭК по 4-му уровню доверия (Axiom JDK Certified).
Для перехода на Axiom JDK Pro нужно всего лишь поменять пару строк кода. При этом вы не только закроете KPI по импортозамещению, но и повысите производительность.
Свяжитесь с нами — наши инженеры подробно расскажут о продуктах линейки Axiom JDK, предоставят демо-версии и помогут с миграцией.
Также подписывайтесь на наш Telegram-канал, чтобы быть в курсе новостей из мира Java.