Выпуск Java SE 26 ΠΈ OpenJDK 26. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JavaScript ΠΈ Python Π² JVM

ПослС ΡˆΠ΅ΡΡ‚ΠΈ мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ компания Oracle ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Java SE 26 (Java Platform, Standard Edition 26), Π² качСствС эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ OpenJDK. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ удалСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… возмоТностСй Π² Java SE 26 сохранСна обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌΠΈ выпусками ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java β€” Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π½Π΅Π΅ написанных Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ работоспособны ΠΏΡ€ΠΈ запускС ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ вСрсии. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ для установки сборки Java SE 26 (JDK, JRE ΠΈ Server JRE) ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для Linux (x86_64, AArch64), Windows (x86_64) ΠΈ macOS (x86_64, AArch64). Разработанная Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK эталонная рСализация Java SE 26 ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2 с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ GNU ClassPath, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌΠΈ динамичСскоС связываниС с коммСрчСскими ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ.

Java SE 26 отнСсён ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ выпусков с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ сроком ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, обновлСния для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°. Π’ качСствС Π²Π΅Ρ‚ΠΊΠΈ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сроком ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ (LTS) слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java SE 25, Java SE 21 ΠΈΠ»ΠΈ Java SE 17, обновлСния для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π΄ΠΎ 2033, 2031 ΠΈ 2029 Π³ΠΎΠ΄ΠΎΠ² соотвСтствСнно (общСдоступныС β€” Π΄ΠΎ сСнтября 2030, 2028 ΠΈ 2026 Π³ΠΎΠ΄ΠΎΠ²). Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LTS-Π²Π΅Ρ‚ΠΊΠΈ Java SE 8 продлится Π΄ΠΎ 2030 Π³ΠΎΠ΄Π°, Π° Java SE 11 β€” Π΄ΠΎ 2032 Π³ΠΎΠ΄Π°.

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Java SE 26 (1, 2, 3, 4):

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²Ρ‹Π²ΠΎΠ΄ прСдупрСТдСния ΠΏΡ€ΠΈ использовании Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ рСфлСксии для измСнСния ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Β«finalΒ». Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ планируСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ нСбСзопасныС возмоТности языка ΠΈ, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ поля, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ final, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ измСняСмыС, ΡƒΠ±Ρ€Π°Π² ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ для ΠΈΡ… измСнСния Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡŽ (API Reflection).
  • Π£Π΄Π°Π»Ρ‘Π½ API Applet (java.applet.Applet*, javax.swing.JApplet), ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ²ΡˆΠΈΠΉΡΡ для запуска Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π”Π°Π½Π½Ρ‹ΠΉ API потСрял Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ послС прСкращСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Java-ΠΏΠ»Π°Π³ΠΈΠ½Π° для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π±Ρ‹Π» объявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ Π² 2021 Π³ΠΎΠ΄Ρƒ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ кэша (AOT β€” ahead-of-time) c Π»ΡŽΠ±Ρ‹ΠΌΠΈ сборщиками мусора, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ZGC (Z Garbage Collector). ИзмСнСниС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Java-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π½Π΅ зависящий ΠΎΡ‚ сборщиков мусора Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ вмСсто прямого ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ спСцифичных прСдставлСний кэша. ИспользованиС AOT-кэша сокращаСт врСмя запуска ΠΈ ускоряСт Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ (warmup) Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ HotSpot.
  • Π’ API HTTP Client Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/3, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ прилоТСниям ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ сСрвСрам ΠΏΠΎ HTTP/3 послС ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сборщика мусора G1, благодаря ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ для синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² прилоТСния с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ сборщика мусора.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ API для кодирования ΠΈ дСкодирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с криптографичСскими ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, сСртификатами ΠΈ списками ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PEM (Pivacy-Enhanced Mail).
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ для тСстирования ΡˆΠ΅ΡΡ‚ΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ API для cΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (Structured Concurrency), ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° счёт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, выполняСмых Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…, ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ вторая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ рСдакция API Lazy Constants для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, содСрТащими нСизмСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² JVM ΠΊΠ°ΠΊ константы. К ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ полям с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Β«finalΒ». Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Β«finalΒ» Π½ΠΎΠ²Ρ‹ΠΉ API раздСляСт созданиС постоянных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, сокращаСт врСмя запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ сворачивания констант (constant-folding), Ρ€Π°Π½Π΅Π΅ использовавшиСся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΊΠΎΠ΄Π΅ JDK. class Application { // Π‘Ρ‹Π»ΠΎ: // static final UserService USERS = new UserService(); // Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ: static final StableValue<UserService> USERS = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ возмоТности использования ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (int, byte, char ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ) Π²ΠΎ всСх Π²ΠΈΠ΄Π°Ρ… шаблонов, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Β«instanceofΒ» ΠΈ Π² Π±Π»ΠΎΠΊΠ°Ρ… Β«switchΒ». switch (x.getStatus()) { case 0 -> Β«okayΒ»; case 1 -> Β«warningΒ»; case 2 -> Β«errorΒ»; case int i -> Β«unknown status: Β» + i; } if (i instanceof byte b) { … b … }
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° одиннадцатая тСстовая рСализация API Vector, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… вычислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с использованиСм Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… инструкций процСссоров x86_64 ΠΈ AArch64 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сразу ΠΊ нСскольким значСниям (SIMD). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прСдоставляСмых Π² JIT-компиляторС HotSpot возмоТностСй ΠΏΠΎ Π°Π²Ρ‚ΠΎΠ²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ скалярных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½ΠΎΠ²Ρ‹ΠΉ API Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ явно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, компания Oracle анонсировала ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Detroit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² составС OpenJDK ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ пСрСносимости ΠΌΠ΅ΠΆΠ΄Ρƒ Java, JavaScript ΠΈ Python. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ встраивания Π² процСсс JVM runtime с JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ V8 ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ CPython. Π Π°Π½Π΅Π΅ компания Oracle ΡƒΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π° JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ Nashorn, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ JVM, Π½ΠΎ свСрнула ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ·-Π·Π° проблСматичности Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ JavaScript Π² условиях, ΠΊΠΎΠ³Π΄Π° основная экосистСма завязана Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ V8.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ обновлСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом JavaFX 26. Π’ блиТайшиС часы Ρ‚Π°ΠΊΠΆΠ΅ оТидаСтся выпуск ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ GraalVM 26, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° JavaScript (Node.js), Python, Ruby, R, Π»ΡŽΠ±Ρ‹Ρ… языках для JVM (Java, Scala, Clojure, Kotlin) ΠΈ языках, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΈΡ‚ΠΊΠΎΠ΄ LLVM (C, C++, Rust).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ