ИздаванС Π½Π° 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). Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π°Ρ‚Π° рСализация Π½Π° Java SE 26, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK, Π΅ напълно ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· 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) с всякакви сборници Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ZGC (Z Garbage Collector). ΠŸΡ€ΠΎΠΌΡΠ½Π°Ρ‚Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° послСдоватСлно Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ Java-ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ унивСрсалСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, нСзависим ΠΎΡ‚ сборницитС Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, вмСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° спСцифични прСдставяния Π½Π° кСша. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° AOT кСш намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° стартиранС ΠΈ ускорява актуализацията (warmup) Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина HotSpot.
  • Π’ API HTTP Client Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP/3, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° прилоТСния ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ със ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΏΠΎ HTTP/3 слСд ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π°.
  • ПовишСна Π΅ производитСлността Π½Π° сборника Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ G1, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° намаляванС Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅ Π·Π° синхронизиранС Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ със ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ Π½Π° сборника Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π²Ρ‚ΠΎΡ€ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° API Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ с криптографски ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, сСртификати ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ с ΠΎΡ‚Π·ΠΎΠ²Π°Π½ΠΈ сСртификати, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PEM (Privacy-Enhanced Mail).
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π·Π° тСстванС ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° API Π·Π° структурирана конкурСнтност (Structured Concurrency), ΠΊΠΎΠΉΡ‚ΠΎ опростява Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΈ прилоТСния Ρ‡Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° мноТСство Π·Π°Π΄Π°Ρ‡ΠΈ, изпълнявани Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½Π΅Π½ Π±Π»ΠΎΠΊ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° вСрсия Π½Π° API Lazy Constants Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ нСизмСняСми Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ Π² JVM ΠΊΠ°Ρ‚ΠΎ константи. Към ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° производитСлността, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π° Π΄ΡƒΠΌΠ° β€žfinalβ€œ. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ β€žfinalβ€œ, новият API раздСля ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° постоянни стойности ΠΈ тяхната инициализация, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ стойността ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° само вСднъТ, намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ ΠΈ позволява Π² потрСбитСлския ΠΊΠΎΠ΄ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° свиванСто Π½Π° константи (constant-folding), ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ са сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ само във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° JDK. class Application { // Π‘Π΅ΡˆΠ΅: // static final UserService USERS = new UserService(); // Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅: static final StableValue 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster