В современном мире программирования постоянные изменения и обновления технологий играют решающую роль в эволюции экосистем. Одним из таких значимых событий стала недавняя инициатива Oracle по отделению GraalVM от основной экосистемы Java. Это решение, принятое после нескольких лет активной разработки и интеграции, знаменует важную веху в развитии обеих технологий и несомненно повлияет на многих разработчиков и корпоративных пользователей. GraalVM, разработанная Oracle Labs, долгое время позиционировалась как универсальная виртуальная машина нового поколения, способная обеспечивать высокую производительность и поддержку многих языков программирования, включая Java, JavaScript, Python и другие. Она включала в себя мощные компоненты, такие как Graal JIT-компилятор и технология Native Image, которые предлагали улучшения в скорости запуска приложений и сокращении их footprint.
Однако в ходе последних анонсов Oracle объявила о значительном изменении в стратегии развития GraalVM, сосредоточив внимание на языках, отличных от Java, и отказавшись от дальнейшей интеграции GraalVM в традиционные Java SE продукты. Начиная с версии JDK 24, Oracle прекратил поддержку GraalVM в составе Java SE продуктов. Это означает, что разработчики, использовавшие GraalVM в рамках Oracle JDK, должны перейти на другие инструменты для оптимизации своих Java-приложений. В частности, Graal JIT больше не будет доступен в новых релизах Oracle JDK, а технология Native Image, которая позволяла создавать нативные исполняемые файлы для Java, была официально приостановлена для корпоративных клиентов. Вместо этого Oracle предлагает пользователям перейти к использованию традиционного C2 JIT-компилятора, который остается основной технологией в HotSpot JVM.
Причины такого поворота кроются в нескольких фундаментальных факторах. Во-первых, несмотря на впечатляющие возможности GraalVM, переход к инновационным технологиям требовал от разработчиков дополнительных усилий, связанных с адаптацией проектов и устранением неподдерживаемых функций. Во-вторых, Oracle и сообщество Java активно работают над развитием проекта Leyden в OpenJDK, который ориентирован на улучшение характеристик запуска JVM и оптимизацию ресурсов с использованием стандартных механизмов Java. Этот проект направлен на интеграцию передовых техник вроде Ahead-of-Time компиляции, что позволит обходиться без отдельного Native Image и при этом обеспечивать схожие или лучшие результаты. С исторической точки зрения стоит отметить, что Oracle долгое время успешно интегрировала инновации в свою JVM, начиная с приобретения BEA и Sun Microsystems.
HotSpot JVM стал центральным элементом экосистемы благодаря внедрению передовых оптимизаций и улучшению производительности. В течение десятилетий Oracle удавалось балансировать между стабильностью платформы и внедрением новых функций. В этом контексте GraalVM рассматривалась как экспериментальный и перспективный проект, направленный на расширение функциональных возможностей JVM и поддержку мульти-языковой среды. Однако практика показала, что многие решения из GraalVM имеют ограниченное применение в массовых корпоративных сценариях, а отдельные технологии требуют дальнейшего переосмысления и стандартизации. Для разработчиков и организаций, которые активно использовали GraalVM, текущие изменения означают необходимость планирования миграции на новые инструменты и технологии.
Oracle рекомендует переходить на официальные релизы Oracle JDK или OpenJDK, которые продолжают развиваться в рамках стандартной Java платформы. Особое внимание уделяется новым возможностям AOT-компиляции, представленным в JDK 25, включая JEP 514 и JEP 515, которые предоставляют новые инструменты для оптимизации приложений на этапе компиляции и профилирования методик. Эти технологии стали естественным продолжением экспериментов с GraalVM и позволяют достичь улучшений в производительности без необходимости использования специализированных или сторонних решений. Что касается будущего GraalVM, Oracle объявил о переориентации команды на развитие технологий, связанных с языками, не относящимися непосредственно к Java. В частности, речь идет о проектах GraalPy (Python) и GraalJS (JavaScript), которые будут продолжать существовать в качестве самостоятельных платформ.
Это поможет сосредоточить усилия на улучшении интероперабельности, производительности и поддержке многоязыковых решений, что в свою очередь расширит возможности разработки приложений, выходящих за рамки классического Java. В то же время для тех, кто заинтересован в использовании GraalVM для других целей, например, в исследованиях, экспериментальных проектах или в области мульти-языковой разработки, данное обновление не является концом пути. Старые версии GraalVM останутся доступны через Oracle Support и могут использоваться в соответствии с потребностями и возможностями компаний. Однако важно понимать, что поддержку и новые обновления для GraalVM, интегрированной в Java SE, больше ожидать не стоит. Одним из ключевых уроков из этой истории стала важность постоянной поддержки и стандартизации технологий в масштабах всего сообщества.
Oracle, учитывая отзывы пользователей и результаты внутреннего анализа, выбрала путь интеграции лучших наработок GraalVM в OpenJDK и другие стандартизированные проекты, что дает более прочную основу для дальнейшего развития инициатив по оптимизации JVM. Такой подход снижает фрагментацию технологий и упрощает для разработчиков выбор инструментов, а также облегчает сопровождение и масштабирование приложений. Кроме прочего, в свете изменений Oracle рекомендует всем пользователям, использующим Graal JIT, начать планировать переход на C2 JIT-компилятор, который является проверенным и основным компонентом HotSpot JVM. Для предприятий, которым требуется помощь с миграцией или консультациями по новым возможностям Java SE, существует поддержка от Oracle, что позволяет минимизировать риски и сопутствующие проблемы. В конечном итоге, данное событие можно рассматривать как естественную трансформацию экосистемы Java, где инновационные и экспериментальные технологии проходят этапы активного развития, тестирования и интеграции, а потом получают новый формат в рамках стандартизированных решений.
Отделение GraalVM от основного Java релиза направлено на повышение устойчивости и стабильности платформы, а также на оптимальное распределение ресурсов команды разработчиков Oracle. Для разработчиков важна готовность адаптироваться к изменениям, использовать новые возможности, которые появляются в рамках OpenJDK и Oracle JDK, и внимательно следить за эволюцией таких проектов, как Project Leyden. Это позволит применять самые современные технологии для улучшения производительности, снижение затрат на инфраструктуру и повышение качества разрабатываемых приложений. Таким образом, несмотря на кажущуюся на первый взгляд новизну и возможно сложность перехода, отделение GraalVM от Java экосистемы открывает новые перспективы для развития как самого Java, так и связанных с ним технологий. Oracle продолжит поддерживать и развивать ядро Java-платформы, делая её ещё более современной и эффективной для миллионов разработчиков по всему миру.
.