Довольно скоро, предположительно с версии Spring Framework 7.1, Spring будет поддерживать scripting-овые языки, такие как Python или JavaScript. Тема очень интересная, но, на самом деле, здесь стоит начать с небольшой справки, как так вообще получилось.
Немного Истории
Ранее в рамках Spring АйО мы выпускали пост, где говорили о том, что GraalVM отделяется от релизного цикла Java SE.
Сразу с места в карьер - Я общался с Томасом Вертингером на Devoxx Belgium 2025 по этому поводу - на данный момент (!) от поддержки и развития GraalVM никто не отказывается, просто проект претерпевает ряд изменений в релизном цикле и в приоритизации задач, над которыми работает.
У этого есть причины, они достойны отдельного поста, их прямо несколько, но если кратко - Oracle, насколько я понял Томаса, пытается найти ниши приме��ения Graal-у в целом (речь сейчас не только про Graal как JIT-compiler, а как проект в целом). И развитие именно GraalJS и подобных вещей с использованием Truffle это как раз попытка найти свой рынок. Чтобы было понимание, относительно недавно в базу данных Oracle была внедрена поддержка JavaScript, где в качестве JavaScript реализации как раз GraalJS.
То есть GraalVM пока продолжит развиваться, особенно если мы говорим про проекты GraalPy и GraalJS. Будем следить дальше, но пока состояние такое.
Комментарий Жени Сулейманова
То, что Spring так плотно выстраивается вокруг GraalVM (AOT, GraalPy/GraalJS), - это ставка не на "модную фишку", а "игра в долгую": более быстрый старт, меньший footprint и возможность строить polyglot-платформы, где Java - каркас, вокруг которого живут скриптовые языки. Если Oracle действительно найдет для GraalVM устойчивые продуктовые ниши, Spring почти гарантированно окажется "дефолтным" фреймворком для enterprise-стека поверх этой истории - и это важно учитывать если вы проектируете архитектуру с горизонтом планирования 5-7 лет.
Что там у Spring Framework?
Spring Framework, на самом деле, уже относительно давно имеет некоторую инфраструктуру для исполнения определённых Script-ов, в основном для Groovy:
public void runScriptExample() { ScriptEvaluator scriptEvaluator = new GroovyScriptEvaluator() //language=groovy String script = """ def name = arguments.get('name') return 'Hello, ' + name + '! Current time is ' + System.currentTimeMillis() """; ScriptSource scriptWithArgs = new StaticScriptSource(script); Map<String, Object> arguments = Collections.singletonMap("name", "Spring User"); Object result = scriptEvaluator.evaluate(scriptWithArgs, arguments); System.out.println("Script result: " + result); }
Это всё здорово, но что интересно - скоро вот как раз появится возможность в Spring Framework исполнять нативно JavaScript, Python и т.п. как раз за счет интеграции с GraalPy, GraalJS и т.п.
Зачем это Spring-у? Моё Виденье
Spring с Graal-ем да и вообще с Oracle довольно хорошие друзья. Команды плотно общались ещё со времен проекта Spring Native, который позже был интегрирован в основной trunk Spring Boot.
Чтобы Вы понимали, Graal для своих демо и гайдов часто использует Spring Petclinic как некоторое "эталонное приложение". То же самое, кстати, делает и команда OpenJDK. Иными словами, команды друг друга поддерживают как медийно, так и в плане общего развития.
В свою очередь, в последние несколько релизов Spring Framework активно старается сконцентрироваться на времени запуска приложений, на memory footprint и т.п, отчего идёт широкая поддержка Project Leyden и подобного рода проектов.
Опять же, чтобы было понимание - Spring, в частности Spring Boot, в ряде случаев использует кастомный ClassLoader (Он нужен для Fat Jar например, чтобы у Вас всё работало из коробки). К сожалению, такие вещи как JEP 483 Aot Cache (а это часть Project Leyden), не поддерживают кастомные класслоадеры. Пока не поддерживают. Команда Spring Framework об этом в курсе, и Oracle, конечно, тоже, и это в будущем, скорее всего, будут пытаться исправить.
Я не хочу сказать, что это делается исключительно ради Spring Framework, но вес Spring-а в этом есть и он вполне достаточный.
Небольшой Вывод
Давайте зададим вопрос - насколько потенциально будет много пользователей у нового API?
Я думаю не так много, с учётом ещё того факта, что при неаккрутном использовании можно получить CVE 10 на production. Я также думаю, что поддержка GraalPy и GraalJS это больше поддержка линейки продуктов Graal-я со стороны Spring Framework.
Sébastien Deleuze, который, фактически, сейчас стоит у руля Spring-а и который ранее как раз создал и лидировал проект Spring Native, довольно сильно верит в Kotlin и в Graal, о чем известно в узких кругах да и сам Себ об этом периодически рассказывает на разных ресурсах.
Себастиана я имею честь знать лично. Я его крайне сильно уважаю и считаю очень крутым и компетентным специалистом и лидером. Таких правда мало. Пожелаем ему и команде успехов.
Всем спасибо, успехов!

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.
