Oracle презентувала новий проєкт Project Detroit, який має значно спростити та прискорити взаємодію Java з JavaScript і Python. Анонс відбувся разом із релізом Java 26 на конференції JavaOne.
Java 26 є короткостроковим релізом із підтримкою протягом шести місяців — до виходу Java 27 пізніше цього року. Наступний LTS-реліз очікується лише у вересні 2027 року з виходом Java 29.
За словами віцепрезидента з розробки ПЗ Бернарда Траверса, інтерес до інтеграції Java з іншими мовами існує давно, але особливо зріс із розвитком AI, де Python відіграє ключову роль. Хоча подібні рішення вже існували, поява API Foreign Function and Memory (FFM) у Java 22 дозволила створити більш простий і ефективний механізм взаємодії, ніж застарілий JNI.
Project Detroit пропонує новий підхід: замість емуляції інших мов у JVM, Oracle інтегрує їхні нативні runtime безпосередньо в процес JVM. Зокрема, йдеться про V8 для JavaScript і CPython для Python.
«Ми вбудовуємо V8 і CPython безпосередньо в JVM. Це дозволяє досягти кращої продуктивності та уникнути проблем сумісності», — пояснив Траверс.
Такий підхід також вирішує проблему специфікацій мов. На відміну від Java, JavaScript і Python мають більше крайових випадків реалізації, що ускладнює їх підтримку. Використання нативних runtime дає можливість уникнути цих обмежень.
В Oracle заявили, що нова архітектура забезпечує високу продуктивність і покращену модель безпеки завдяки чіткому розділенню пам’яті між JVM, V8 і CPython.
Project Detroit буде запропонований як проєкт OpenJDK, а в майбутньому список підтримуваних мов може розширитися.
Oracle анонсувала й низку інших змін. Проєкт Helidon для мікросервісів стане частиною OpenJDK, що дасть можливість синхронізувати його релізи з JDK. Компанія також презентувала Java Verified Portfolio — набір інструментів і бібліотек, сертифікованих для enterprise-використання.
Серед них — Helidon, JavaFX і розширення Java для Visual Studio Code. Oracle також повертає комерційну підтримку JavaFX через зростання попиту на візуалізації в AI та аналітичних застосунках.
Для розробників і студентів додано підтримку Java в Jupyter Notebook у VS Code, а також нові можливості платформи Java Playground для обміну кодом.
У самому Java 26 більшість змін є еволюційними: оновлення Vector API, structured concurrency, підтримка HTTP/3 у клієнті та покращення роботи з типами у switch і pattern matching. Водночас остаточно видалено API Java Applet, який давно втратив актуальність через відсутність підтримки в сучасних браузерах.
Читайте також про корисні JavaScript-плагіни для фронтенду.