{"id":16243,"date":"2023-06-19T10:30:05","date_gmt":"2023-06-19T08:30:05","guid":{"rendered":"https:\/\/vived.io\/?p=16243"},"modified":"2023-06-24T08:22:01","modified_gmt":"2023-06-24T06:22:01","slug":"graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/","title":{"rendered":"GraalVM EE is Dead, Long Live Oracle GraalVM &#8211; JVM Weekly vol. 139"},"content":{"rendered":"\n<h2 id=\"rys-historyczny\" data-num=1>Rys historyczny<\/h2>\n\n\n\n<p>\u017beby &#8222;mi\u0119kko&#8221; wprowadzi\u0107 wszystkich w temat dzisiejszej edycji, wypada przygl\u0105dn\u0105\u0107 si\u0119 temu, jak historycznie wygl\u0105da\u0142a kwestia licencji GraalVM. Ten &#8222;\u015awi\u0119ty Graal maszyn wirtualnych&#8221; zawsze posiada\u0142 bowiem dwa r\u00f3\u017cne warianty &#8211; pierwszy z nich to GraalVM Community Edition. Ta edycja (cz\u0119sto nazywana GraalVM CE) to jest prawdopodobnie ten GraalVM z kt\u00f3rym mogliby\u015bcie mie\u0107 styczno\u015b\u0107, stanowi\u0105cy podstaw\u0119 cho\u0107by dla natywnych obraz\u00f3w generowanych przez wi\u0119kszo\u015b\u0107 framework\u00f3w. R\u00f3wnocze\u015bnie jednak istnia\u0142o co\u015b takiego jak GraalVM Enterprise Edition. Jednak niech nie zmyli Was zbie\u017cno\u015b\u0107 nazewnictwa cho\u0107by z tak\u0105 Jakarta EE. O ile bowiem GraalVM CE mo\u017cna u\u017cywa\u0107 do\u015b\u0107 swobodnie (sam projekt wydany jest na licencji GPL 2.0, a generowane przez niego artefakty &#8211; na licencjach poszczeg\u00f3lnych j\u0119zyk\u00f3w), o tyle GraalVM EE by\u0142 projektem komercyjnym, wydany na bazie umowy licencyjnej GraalVM Oracle Technology Network. Oznacza to, \u017ce do jego u\u017cycia w \u015brodowisku produkcyjnym niezb\u0119dne jest posiadanie komercyjnej subskrypcji Oracle. Ta bywa skomplikowana.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-14.png\" alt=\"\" class=\"wp-image-16260\" width=\"600\"\/><figcaption class=\"wp-element-caption\">Powy\u017csze to \u017cart, ale w ka\u017cdym jest ziarenko prawdy<\/figcaption><\/figure><\/div>\n\n\n<p>Je\u017celi u\u017cywali\u015bmy Chmury Oracle &#8211; w zasadzie nie musieli\u015bmy si\u0119 niczym przejmowa\u0107, licencja by\u0142a de facto &#8222;w pakiecie&#8221;. Je\u017celi jednak interesowa\u0142o nas u\u017cycie GraalVM w jakimkolwiek innym \u015brodowisku chmurowym, niezb\u0119dna by\u0142a op\u0142ata licencyjna, powi\u0105zana (przynajmniej na kt\u00f3rym\u015b etapie, historycznie mog\u0142o si\u0119 to zmienia\u0107) z ilo\u015bci\u0105 procesor\u00f3w. Z tego te\u017c powodu, wiele zespo\u0142\u00f3w rezygnowa\u0142o z u\u017cywania Enterprise Edition, w kt\u00f3rej to zmiany wcale nie by\u0142y kosmetyczne i zwi\u0105zane ze wsparciem komercyjnym, jak to zwykle bywa przy OpenJDK. Na przestrzeni lat poszczeg\u00f3lne funkcjonalno\u015bci przep\u0142ywa\u0142y mi\u0119dzy EE oraz CE, ale ta pierwsza zawsze cechowa\u0142a si\u0119 wi\u0119ksz\u0105 wydajno\u015bci\u0105 i niekt\u00f3rymi kluczowymi featurami &#8211; jak np. wsparciem dla G1.<\/p>\n\n\n\n<p>Taka sytuacja utrzymywa\u0142a si\u0119 przez lata, jednak ostatnimi czasy zauwa\u017cy\u0107 mo\u017cna sporo ruchu w tej kwestii. Ko\u0144c\u00f3wk\u0105 zesz\u0142ego roku dostali\u015bmy og\u0142oszenie o planach wintegrowania sporej cz\u0119\u015bci GraalVM CE do OpenJDK (co wi\u0105za\u0142o si\u0119 b\u0119dzie ze zmianami licencyjnymi), za\u015b w ostatnimi tygodniu gruchn\u0119\u0142a wiadomo\u015b\u0107 o ko\u0144cu wydawania GraalVM Enterprise Edition.<\/p>\n\n\n\n<h2 id=\"graalvm-ee-is-dead-long-live-oracle-graalvm\" data-num=2>GraalVM EE is Dead, Long Live Oracle GraalVM<\/h2>\n\n\n\n<p>Jak opisano w publikacji <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>, GraalVM Enterprise Edition zosta\u0142 bowie zast\u0105piony przez Oracle GraalVM, now\u0105 dystrybucj\u0119 z nowym modelem licencyjnym. <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graal-free-license.html\">GraalVM Free Terms and Conditions (GFTC) license for Early Adopter Versions<\/a> &#8211; bo tak nazywa si\u0119 nowa licencja &#8211; to spory krok do przodu. W odr\u00f3\u017cnieniu od wspomnianych zapis\u00f3w GraalVM Enterprise Edition, Oracle GraalVM umo\u017cliwia bowiem darmowe u\u017cycie, zar\u00f3wno w developmencie, jak i na \u015brodowisku komercyjnym. W zwi\u0105zku z tym, mo\u017cemy u\u017cywa\u0107 teraz Oracle GraalVM przy tworzeniu internalowych aplikacji wspieraj\u0105cych biznes. Tutaj jednak wchodz\u0105 pewne zawi\u0142o\u015bci &#8211; o ile bowiem w FAQ wspominane jest o darmowym u\u017cyciu w aplikacjach <strong>komercyjnych<\/strong>, o tyle szczeg\u00f3\u0142y licencji wspominaj\u0105 o tym, \u017ce musz\u0105 by\u0107 to aplikacje &#8222;nie udost\u0119pniane za op\u0142at\u0105&#8221;. Oznacza to wi\u0119c, \u017ce w wypadku prac konsultingowych albo przy tworzeniu rozwi\u0105za\u0144 Software-as-a-Service, przed u\u017cyciem mocno sugerowa\u0142bym skonsultowanie si\u0119 z Oracle, czy nasze rozwi\u0105zanie nie wymaga zakupu ichniejszej subskrypcji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"658\" height=\"683\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-10.png\" alt=\"\" class=\"wp-image-16249\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-10.png 658w, https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-10-289x300.png 289w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><figcaption class=\"wp-element-caption\">Wiecie, licencje warto czyta\u0107.<\/figcaption><\/figure><\/div>\n\n\n<p>Zmieniono te\u017c nazewnictwo. Zamiast wersji GraalVM 23.x mamy teraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_17\/\">GraalVM for JDK 17<\/a> oraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_20\/\">GraalVM for JDK 20<\/a>. Jest to zmiana kt\u00f3ra by\u0142a zapowiadana ju\u017c jaki\u015b czas temu, a maj\u0105ca zwi\u0105zek z migracj\u0105 cz\u0119\u015bci GraalVM CE do OpenJDK i przyj\u0119cia tamtejszego modelu releasowego. W tym miejscu warto wspomnie\u0107 o tym, \u017ce nie bez powodu nazwa licencji zawiera cz\u0142on &#8222;License for Early Adopter Versions&#8221;. W praktyce bowiem licencja obowi\u0105zuje przez rok dla wersji LTS (jak JDK 17) oraz przez sze\u015b\u0107 miesi\u0119cy dla wersji nie-LTS (jak JDK 20). Po tym czasie wygasa i zostaje automatycznie przekonwertowana do dotychczas obowi\u0105zuj\u0105cej <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graalvm-otn-license.html\">Oracle Technology Network<\/a>.<\/p>\n\n\n\n<p>Mimo wspomnianych powy\u017cszych ogranicze\u0144, w dalszym ci\u0105gu, Oracle GraalVM to du\u017cy krok do przodu dla projektu. Zw\u0142aszcza, \u017ce wraz z now\u0105 wersj\u0105 pojawiaj\u0105 si\u0119 r\u00f3wnie\u017c nowe funkcjonalno\u015bci.<\/p>\n\n\n\n<h2 id=\"co-nowego-przychodzi-wraz-z-oracle-graalvm\" data-num=3>Co nowego przychodzi wraz z Oracle GraalVM<\/h2>\n\n\n\n<p>As for new features, the most interesting from my perspective is the new profiler (unfortunately, not available in the CE version). To simplify, historically Native Images have been characterized by faster startup than &#8222;classic&#8221; applications, but often feature worse performance than JIT-compiled ones. This is because GraalVM (at least in the CE version) could only optimize applications based on static data available at image build time, while the JIT compiler can additionally infer based on real-world production characteristics of the application. In the Enterprise Edition (now known as Oracle GraalVM), GraalVM developers use several additional techniques, including <a href=\"https:\/\/www.graalvm.org\/latest\/reference-manual\/native-image\/guides\/optimize-native-executable-with-pgo\/\">profile-guided optimization<\/a> (PGO). Now the GraalVM developers have decided to enhance it with ML to get a few extra percentages of performance. By using pre-learned machine learning models in the building process, they were able to achieve even better results.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"499\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-13.png\" alt=\"\" class=\"wp-image-16256\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-13.png 675w, https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-13-300x222.png 300w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><figcaption class=\"wp-element-caption\">Ciekawe czy w przysz\u0142o\u015bci b\u0119dziemy mogli uczy\u0107 tego typu modele w oparciu o w\u0142asn\u0105 aplikacje.<\/figcaption><\/figure><\/div>\n\n\n<p>Poza PGO, nowy GraalVM wprowadza jeszcze kilka innych technik optymalizacji, ale zmiany nie ko\u0144cz\u0105 si\u0119 na nich. Wprodzono bowiem Native Image Bundles &#8211; czyli mo\u017cliwo\u015b\u0107 \u0142atwego dzielenia si\u0119 konfiguracj\u0105 buildu GraalVM mi\u0119dzy programistami. Inn\u0105 funkcj\u0105 dodan\u0105 w tym wydaniu jest mo\u017cliwo\u015b\u0107 generowania raport\u00f3w z budowy przez Native Image. Raporty te dostarczaj\u0105 informacji o \u015brodowisku budowy, wykorzystywanych zasobach i innych wynikach analiz. Aby takowe za\u015b jeszcze u\u0142atwi\u0107, otwarto \u017ar\u00f3d\u0142a Ideal Graph Visualizer (IGV) &#8211; narz\u0119dzia s\u0142u\u017c\u0105cego do analiz graf\u00f3w kompilacji, co mo\u017ce pom\u00f3c w walce z problemami z performance .<\/p>\n\n\n\n<p>Ponadto wsparcie dla AWT w Native Image zosta\u0142o rozszerzone na Linuxa, co umo\u017cliwia jeszcze wi\u0119kszej liczbie aplikacji GUI Java dystrybuowanie poprzez Native Image. Je\u015bli chodzi za\u015b o Developer Experience, u\u0142atwiono debugowanie dla Windowsa, azarz\u0105dzanie za pomoc\u0105 JMX jest teraz mo\u017cliwe za pomoc\u0105 opcji <code>--enable-monitoring<\/code>. Wydanie zawiera r\u00f3wnie\u017c list\u0119 bibliotek i framework\u00f3w, kt\u00f3re zosta\u0142y zweryfikowane pod k\u0105tem dzia\u0142ania z Native Image. Ko\u0144cz\u0105c, GraalVM JIT obs\u0142uguje teraz te\u017c kolejny Garbage Collector &#8211; ZGC.<\/p>\n\n\n\n<p>Wszystkie detale znajdziecie we wspomnianym ju\u017c po\u015bcie <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>. Dla lubi\u0105cych za\u015b format wideo, polecam towarzysz\u0105cy <a href=\"https:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0\">nowo\u015bciom webinar<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"New GraalVM release\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/lWhEg-6DqM0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<h2 id=\"graalvm-to-nie-tylko-java\" data-num=4>GraalVM to nie tylko Java<\/h2>\n\n\n\n<p>Dodatkowo, przy okazji premiery Oracle JDK otrzymali\u015bmy dodatkow\u0105 publikacje <a href=\"https:\/\/medium.com\/graalvm\/whats-new-in-graalvm-languages-161527df3d76\">What\u2019s New in GraalVM Languages<\/a>, przypominaj\u0105c\u0105, \u017ce GraalVM wychodzi daleko poza \u015bwiat JVM. Skupia si\u0119 ona na zmianach dla innych j\u0119zyk\u00f3w wspieranych przez maszyn\u0119 wirtualn\u0105.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-11.png\" alt=\"\" class=\"wp-image-16252\" width=\"540\" height=\"631\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-11.png 720w, https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-11-257x300.png 257w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><figcaption class=\"wp-element-caption\">A g\u0142\u00f3wnie Pythona.<\/figcaption><\/figure><\/div>\n\n\n<p>GraalPy, runtime Pythona zbudowany na bazie GraalVM, teraz obs\u0142uguje r\u00f3wnie\u017c system Windows. Dodatkowo, GraalPy wprowadza now\u0105 implementacj\u0119 swojego interfejsu Python C API, co zwi\u0119ksza wydajno\u015b\u0107 i kompatybilno\u015b\u0107 z niekt\u00f3rymi rozszerzeniami. Mo\u017cna to zobaczy\u0107 w zaktualizowanych wska\u017anikach, kt\u00f3re pokazuj\u0105 popraw\u0119 wydajno\u015bci w por\u00f3wnaniu do CPython. Aktualizacji doczeka\u0142a si\u0119 te\u017c wersja j\u0119zyka i standardowych bibliotek, dodano tak\u017ce wsparcia dla <code>asyncio<\/code> i wtyczki dla <code>virtualenv<\/code>.<\/p>\n\n\n\n<p>Ulepszenia nie ko\u0144cz\u0105 si\u0119 jednak na Pythonie. TruffleRuby i Node.js, poza aktualizacjami runtime, dosta\u0142y obs\u0142ug\u0119 <code>java.lang.BigInteger<\/code>. Wprowadzono r\u00f3wnie\u017c zmiany w polityce Polyglot Sandboxing, kt\u00f3re pozwalaj\u0105 na lepsz\u0105 kontrol\u0119 nad uprawnieniami dla &#8222;kodu go\u015bcia&#8221;. Na koniec, wprowadzono ulepszenia do Truffle DSL dzi\u0119ki adnotacji @GenerateInline, kt\u00f3ra pozwala na zasugerowanie, kt\u00f3re fragmenty kodu powinny zosta\u0107 zinlinowane.<\/p>\n\n\n\n<p>A je\u017celi jeste\u015bcie ciekawi, do czego mo\u017cna u\u017cy\u0107 takiego w\u0142a\u015bnie GraalPy, na oficjalnym kanale YouTube GraalVM znale\u015b\u0107 mo\u017cecie wideo <a href=\"https:\/\/www.youtube.com\/watch?v=MtNqj35u9HI\">Using Python from Java with GraalVM<\/a>, prezentuj\u0105ce pe\u0142ny proces. Podczas ostatniego Spring I\/O (pewnie jeszcze b\u0119d\u0119 do niego wraca\u0142) pojawi\u0142a si\u0119 te\u017c sesja <a href=\"https:\/\/2023.springio.net\/speakers\/johannes-link\/\">Empower your Spring-Applications with Python-Features on GraalVM<\/a>, ale niestety nagranie nie jest jeszcze dost\u0119pne. Te jednak stopniowo &#8222;skapuj\u0105&#8221;, wi\u0119c je\u015bli nie chcecie przegapi\u0107, <a href=\"https:\/\/www.youtube.com\/@SpringIOConference\">zasubskrybujcie kana\u0142 Spring\/IO<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wida\u0107, \u017ce powoli wchodzimy w sezon urlopowy, poniewa\u017c ostatni tydzie\u0144 by\u0142 wyj\u0105tkowo&#8230; spokojny. Tak naprawd\u0119, z du\u017cych og\u0142osze\u0144 mieli\u015bmy do czynienia wy\u0142\u0105cznie z nowinkami zwi\u0105zanymi z GraalVM. Dlatego te\u017c w\u0142asnie temu tematowi po\u015bwi\u0119cimy ca\u0142\u0105 dzisiejsz\u0105 edycje.<\/p>\n","protected":false},"author":10,"featured_media":16264,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259,1],"tags":[],"class_list":["post-16243","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl","category-no-category"],"acf":{"estimated_reading_time":"6","feature_image_blog":{"ID":16264,"id":16264,"title":"JVM Weekly 1200x628_V2","filename":"JVM-Weekly-1200x628_V2-7.png","filesize":464780,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","link":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/jvm-weekly-1200x628_v2-24\/","alt":"","author":"10","description":"","caption":"","name":"jvm-weekly-1200x628_v2-24","status":"inherit","uploaded_to":16243,"date":"2023-06-19 08:29:36","modified":"2023-06-19 08:29:36","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1200,"height":628,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7-150x150.png","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7-300x157.png","medium-width":300,"medium-height":157,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7-768x402.png","medium_large-width":768,"medium_large-height":402,"large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7-1024x536.png","large-width":1024,"large-height":536,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","1536x1536-width":1200,"1536x1536-height":628,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","2048x2048-width":1200,"2048x2048-height":628,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":157,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","gform-image-choice-md-width":400,"gform-image-choice-md-height":209,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":314}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived\" \/>\n<meta property=\"og:description\" content=\"Wida\u0107, \u017ce powoli wchodzimy w sezon urlopowy, poniewa\u017c ostatni tydzie\u0144 by\u0142 wyj\u0105tkowo... spokojny. Tak naprawd\u0119, z du\u017cych og\u0142osze\u0144 mieli\u015bmy do czynienia wy\u0142\u0105cznie z nowinkami zwi\u0105zanymi z GraalVM. Dlatego te\u017c w\u0142asnie temu tematowi po\u015bwi\u0119cimy ca\u0142\u0105 dzisiejsz\u0105 edycje.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-19T08:30:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-24T06:22:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"GraalVM EE is Dead, Long Live Oracle GraalVM &#8211; JVM Weekly vol. 139\",\"datePublished\":\"2023-06-19T08:30:05+00:00\",\"dateModified\":\"2023-06-24T06:22:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\"},\"wordCount\":1371,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png\",\"articleSection\":[\"JVM\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\",\"url\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\",\"name\":\"GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png\",\"datePublished\":\"2023-06-19T08:30:05+00:00\",\"dateModified\":\"2023-06-24T06:22:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GraalVM EE is Dead, Long Live Oracle GraalVM &#8211; JVM Weekly vol. 139\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/","og_locale":"pl_PL","og_type":"article","og_title":"GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived","og_description":"Wida\u0107, \u017ce powoli wchodzimy w sezon urlopowy, poniewa\u017c ostatni tydzie\u0144 by\u0142 wyj\u0105tkowo... spokojny. Tak naprawd\u0119, z du\u017cych og\u0142osze\u0144 mieli\u015bmy do czynienia wy\u0142\u0105cznie z nowinkami zwi\u0105zanymi z GraalVM. Dlatego te\u017c w\u0142asnie temu tematowi po\u015bwi\u0119cimy ca\u0142\u0105 dzisiejsz\u0105 edycje.","og_url":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/","og_site_name":"Vived","article_published_time":"2023-06-19T08:30:05+00:00","article_modified_time":"2023-06-24T06:22:01+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"GraalVM EE is Dead, Long Live Oracle GraalVM &#8211; JVM Weekly vol. 139","datePublished":"2023-06-19T08:30:05+00:00","dateModified":"2023-06-24T06:22:01+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/"},"wordCount":1371,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","articleSection":["JVM","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/","url":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/","name":"GraalVM EE is Dead, Long Live Oracle GraalVM - JVM Weekly vol. 139 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","datePublished":"2023-06-19T08:30:05+00:00","dateModified":"2023-06-24T06:22:01+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/JVM-Weekly-1200x628_V2-7.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/graalvm-ee-is-dead-long-live-oracle-graalvm-jvm-weekly-vol-139\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"GraalVM EE is Dead, Long Live Oracle GraalVM &#8211; JVM Weekly vol. 139"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">Rys historyczny<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">Rys historyczny<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>\u017beby \"mi\u0119kko\" wprowadzi\u0107 wszystkich w temat dzisiejszej edycji, wypada przygl\u0105dn\u0105\u0107 si\u0119 temu, jak historycznie wygl\u0105da\u0142a kwestia licencji GraalVM. Ten \"\u015awi\u0119ty Graal maszyn wirtualnych\" zawsze posiada\u0142 bowiem dwa r\u00f3\u017cne warianty - pierwszy z nich to GraalVM Community Edition. Ta edycja (cz\u0119sto nazywana GraalVM CE) to jest prawdopodobnie ten GraalVM z kt\u00f3rym mogliby\u015bcie mie\u0107 styczno\u015b\u0107, stanowi\u0105cy podstaw\u0119 cho\u0107by dla natywnych obraz\u00f3w generowanych przez wi\u0119kszo\u015b\u0107 framework\u00f3w. R\u00f3wnocze\u015bnie jednak istnia\u0142o co\u015b takiego jak GraalVM Enterprise Edition. Jednak niech nie zmyli Was zbie\u017cno\u015b\u0107 nazewnictwa cho\u0107by z tak\u0105 Jakarta EE. O ile bowiem GraalVM CE mo\u017cna u\u017cywa\u0107 do\u015b\u0107 swobodnie (sam projekt wydany jest na licencji GPL 2.0, a generowane przez niego artefakty - na licencjach poszczeg\u00f3lnych j\u0119zyk\u00f3w), o tyle GraalVM EE by\u0142 projektem komercyjnym, wydany na bazie umowy licencyjnej GraalVM Oracle Technology Network. Oznacza to, \u017ce do jego u\u017cycia w \u015brodowisku produkcyjnym niezb\u0119dne jest posiadanie komercyjnej subskrypcji Oracle. Ta bywa skomplikowana.<\/p>\n","innerContent":["\n<p>\u017beby \"mi\u0119kko\" wprowadzi\u0107 wszystkich w temat dzisiejszej edycji, wypada przygl\u0105dn\u0105\u0107 si\u0119 temu, jak historycznie wygl\u0105da\u0142a kwestia licencji GraalVM. Ten \"\u015awi\u0119ty Graal maszyn wirtualnych\" zawsze posiada\u0142 bowiem dwa r\u00f3\u017cne warianty - pierwszy z nich to GraalVM Community Edition. Ta edycja (cz\u0119sto nazywana GraalVM CE) to jest prawdopodobnie ten GraalVM z kt\u00f3rym mogliby\u015bcie mie\u0107 styczno\u015b\u0107, stanowi\u0105cy podstaw\u0119 cho\u0107by dla natywnych obraz\u00f3w generowanych przez wi\u0119kszo\u015b\u0107 framework\u00f3w. R\u00f3wnocze\u015bnie jednak istnia\u0142o co\u015b takiego jak GraalVM Enterprise Edition. Jednak niech nie zmyli Was zbie\u017cno\u015b\u0107 nazewnictwa cho\u0107by z tak\u0105 Jakarta EE. O ile bowiem GraalVM CE mo\u017cna u\u017cywa\u0107 do\u015b\u0107 swobodnie (sam projekt wydany jest na licencji GPL 2.0, a generowane przez niego artefakty - na licencjach poszczeg\u00f3lnych j\u0119zyk\u00f3w), o tyle GraalVM EE by\u0142 projektem komercyjnym, wydany na bazie umowy licencyjnej GraalVM Oracle Technology Network. Oznacza to, \u017ce do jego u\u017cycia w \u015brodowisku produkcyjnym niezb\u0119dne jest posiadanie komercyjnej subskrypcji Oracle. Ta bywa skomplikowana.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":16260,"width":600,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-14.png\" alt=\"\" class=\"wp-image-16260\" width=\"600\"\/><figcaption class=\"wp-element-caption\">Powy\u017csze to \u017cart, ale w ka\u017cdym jest ziarenko prawdy<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-14.png\" alt=\"\" class=\"wp-image-16260\" width=\"600\"\/><figcaption class=\"wp-element-caption\">Powy\u017csze to \u017cart, ale w ka\u017cdym jest ziarenko prawdy<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u017celi u\u017cywali\u015bmy Chmury Oracle - w zasadzie nie musieli\u015bmy si\u0119 niczym przejmowa\u0107, licencja by\u0142a de facto \"w pakiecie\". Je\u017celi jednak interesowa\u0142o nas u\u017cycie GraalVM w jakimkolwiek innym \u015brodowisku chmurowym, niezb\u0119dna by\u0142a op\u0142ata licencyjna, powi\u0105zana (przynajmniej na kt\u00f3rym\u015b etapie, historycznie mog\u0142o si\u0119 to zmienia\u0107) z ilo\u015bci\u0105 procesor\u00f3w. Z tego te\u017c powodu, wiele zespo\u0142\u00f3w rezygnowa\u0142o z u\u017cywania Enterprise Edition, w kt\u00f3rej to zmiany wcale nie by\u0142y kosmetyczne i zwi\u0105zane ze wsparciem komercyjnym, jak to zwykle bywa przy OpenJDK. Na przestrzeni lat poszczeg\u00f3lne funkcjonalno\u015bci przep\u0142ywa\u0142y mi\u0119dzy EE oraz CE, ale ta pierwsza zawsze cechowa\u0142a si\u0119 wi\u0119ksz\u0105 wydajno\u015bci\u0105 i niekt\u00f3rymi kluczowymi featurami - jak np. wsparciem dla G1.<\/p>\n","innerContent":["\n<p>Je\u017celi u\u017cywali\u015bmy Chmury Oracle - w zasadzie nie musieli\u015bmy si\u0119 niczym przejmowa\u0107, licencja by\u0142a de facto \"w pakiecie\". Je\u017celi jednak interesowa\u0142o nas u\u017cycie GraalVM w jakimkolwiek innym \u015brodowisku chmurowym, niezb\u0119dna by\u0142a op\u0142ata licencyjna, powi\u0105zana (przynajmniej na kt\u00f3rym\u015b etapie, historycznie mog\u0142o si\u0119 to zmienia\u0107) z ilo\u015bci\u0105 procesor\u00f3w. Z tego te\u017c powodu, wiele zespo\u0142\u00f3w rezygnowa\u0142o z u\u017cywania Enterprise Edition, w kt\u00f3rej to zmiany wcale nie by\u0142y kosmetyczne i zwi\u0105zane ze wsparciem komercyjnym, jak to zwykle bywa przy OpenJDK. Na przestrzeni lat poszczeg\u00f3lne funkcjonalno\u015bci przep\u0142ywa\u0142y mi\u0119dzy EE oraz CE, ale ta pierwsza zawsze cechowa\u0142a si\u0119 wi\u0119ksz\u0105 wydajno\u015bci\u0105 i niekt\u00f3rymi kluczowymi featurami - jak np. wsparciem dla G1.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Taka sytuacja utrzymywa\u0142a si\u0119 przez lata, jednak ostatnimi czasy zauwa\u017cy\u0107 mo\u017cna sporo ruchu w tej kwestii. Ko\u0144c\u00f3wk\u0105 zesz\u0142ego roku dostali\u015bmy og\u0142oszenie o planach wintegrowania sporej cz\u0119\u015bci GraalVM CE do OpenJDK (co wi\u0105za\u0142o si\u0119 b\u0119dzie ze zmianami licencyjnymi), za\u015b w ostatnimi tygodniu gruchn\u0119\u0142a wiadomo\u015b\u0107 o ko\u0144cu wydawania GraalVM Enterprise Edition.<\/p>\n","innerContent":["\n<p>Taka sytuacja utrzymywa\u0142a si\u0119 przez lata, jednak ostatnimi czasy zauwa\u017cy\u0107 mo\u017cna sporo ruchu w tej kwestii. Ko\u0144c\u00f3wk\u0105 zesz\u0142ego roku dostali\u015bmy og\u0142oszenie o planach wintegrowania sporej cz\u0119\u015bci GraalVM CE do OpenJDK (co wi\u0105za\u0142o si\u0119 b\u0119dzie ze zmianami licencyjnymi), za\u015b w ostatnimi tygodniu gruchn\u0119\u0142a wiadomo\u015b\u0107 o ko\u0144cu wydawania GraalVM Enterprise Edition.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">GraalVM EE is Dead, Long Live Oracle GraalVM<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">GraalVM EE is Dead, Long Live Oracle GraalVM<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jak opisano w publikacji <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>, GraalVM Enterprise Edition zosta\u0142 bowie zast\u0105piony przez Oracle GraalVM, now\u0105 dystrybucj\u0119 z nowym modelem licencyjnym. <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graal-free-license.html\">GraalVM Free Terms and Conditions (GFTC) license for Early Adopter Versions<\/a> - bo tak nazywa si\u0119 nowa licencja - to spory krok do przodu. W odr\u00f3\u017cnieniu od wspomnianych zapis\u00f3w GraalVM Enterprise Edition, Oracle GraalVM umo\u017cliwia bowiem darmowe u\u017cycie, zar\u00f3wno w developmencie, jak i na \u015brodowisku komercyjnym. W zwi\u0105zku z tym, mo\u017cemy u\u017cywa\u0107 teraz Oracle GraalVM przy tworzeniu internalowych aplikacji wspieraj\u0105cych biznes. Tutaj jednak wchodz\u0105 pewne zawi\u0142o\u015bci - o ile bowiem w FAQ wspominane jest o darmowym u\u017cyciu w aplikacjach <strong>komercyjnych<\/strong>, o tyle szczeg\u00f3\u0142y licencji wspominaj\u0105 o tym, \u017ce musz\u0105 by\u0107 to aplikacje \"nie udost\u0119pniane za op\u0142at\u0105\". Oznacza to wi\u0119c, \u017ce w wypadku prac konsultingowych albo przy tworzeniu rozwi\u0105za\u0144 Software-as-a-Service, przed u\u017cyciem mocno sugerowa\u0142bym skonsultowanie si\u0119 z Oracle, czy nasze rozwi\u0105zanie nie wymaga zakupu ichniejszej subskrypcji.<\/p>\n","innerContent":["\n<p>Jak opisano w publikacji <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>, GraalVM Enterprise Edition zosta\u0142 bowie zast\u0105piony przez Oracle GraalVM, now\u0105 dystrybucj\u0119 z nowym modelem licencyjnym. <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graal-free-license.html\">GraalVM Free Terms and Conditions (GFTC) license for Early Adopter Versions<\/a> - bo tak nazywa si\u0119 nowa licencja - to spory krok do przodu. W odr\u00f3\u017cnieniu od wspomnianych zapis\u00f3w GraalVM Enterprise Edition, Oracle GraalVM umo\u017cliwia bowiem darmowe u\u017cycie, zar\u00f3wno w developmencie, jak i na \u015brodowisku komercyjnym. W zwi\u0105zku z tym, mo\u017cemy u\u017cywa\u0107 teraz Oracle GraalVM przy tworzeniu internalowych aplikacji wspieraj\u0105cych biznes. Tutaj jednak wchodz\u0105 pewne zawi\u0142o\u015bci - o ile bowiem w FAQ wspominane jest o darmowym u\u017cyciu w aplikacjach <strong>komercyjnych<\/strong>, o tyle szczeg\u00f3\u0142y licencji wspominaj\u0105 o tym, \u017ce musz\u0105 by\u0107 to aplikacje \"nie udost\u0119pniane za op\u0142at\u0105\". Oznacza to wi\u0119c, \u017ce w wypadku prac konsultingowych albo przy tworzeniu rozwi\u0105za\u0144 Software-as-a-Service, przed u\u017cyciem mocno sugerowa\u0142bym skonsultowanie si\u0119 z Oracle, czy nasze rozwi\u0105zanie nie wymaga zakupu ichniejszej subskrypcji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":16249,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-10.png\" alt=\"\" class=\"wp-image-16249\"\/><figcaption class=\"wp-element-caption\">Wiecie, licencje warto czyta\u0107.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-10.png\" alt=\"\" class=\"wp-image-16249\"\/><figcaption class=\"wp-element-caption\">Wiecie, licencje warto czyta\u0107.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zmieniono te\u017c nazewnictwo. Zamiast wersji GraalVM 23.x mamy teraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_17\/\">GraalVM for JDK 17<\/a> oraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_20\/\">GraalVM for JDK 20<\/a>. Jest to zmiana kt\u00f3ra by\u0142a zapowiadana ju\u017c jaki\u015b czas temu, a maj\u0105ca zwi\u0105zek z migracj\u0105 cz\u0119\u015bci GraalVM CE do OpenJDK i przyj\u0119cia tamtejszego modelu releasowego. W tym miejscu warto wspomnie\u0107 o tym, \u017ce nie bez powodu nazwa licencji zawiera cz\u0142on \"License for Early Adopter Versions\". W praktyce bowiem licencja obowi\u0105zuje przez rok dla wersji LTS (jak JDK 17) oraz przez sze\u015b\u0107 miesi\u0119cy dla wersji nie-LTS (jak JDK 20). Po tym czasie wygasa i zostaje automatycznie przekonwertowana do dotychczas obowi\u0105zuj\u0105cej <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graalvm-otn-license.html\">Oracle Technology Network<\/a>.<\/p>\n","innerContent":["\n<p>Zmieniono te\u017c nazewnictwo. Zamiast wersji GraalVM 23.x mamy teraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_17\/\">GraalVM for JDK 17<\/a> oraz <a href=\"https:\/\/www.graalvm.org\/release-notes\/JDK_20\/\">GraalVM for JDK 20<\/a>. Jest to zmiana kt\u00f3ra by\u0142a zapowiadana ju\u017c jaki\u015b czas temu, a maj\u0105ca zwi\u0105zek z migracj\u0105 cz\u0119\u015bci GraalVM CE do OpenJDK i przyj\u0119cia tamtejszego modelu releasowego. W tym miejscu warto wspomnie\u0107 o tym, \u017ce nie bez powodu nazwa licencji zawiera cz\u0142on \"License for Early Adopter Versions\". W praktyce bowiem licencja obowi\u0105zuje przez rok dla wersji LTS (jak JDK 17) oraz przez sze\u015b\u0107 miesi\u0119cy dla wersji nie-LTS (jak JDK 20). Po tym czasie wygasa i zostaje automatycznie przekonwertowana do dotychczas obowi\u0105zuj\u0105cej <a href=\"https:\/\/www.oracle.com\/downloads\/licenses\/graalvm-otn-license.html\">Oracle Technology Network<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mimo wspomnianych powy\u017cszych ogranicze\u0144, w dalszym ci\u0105gu, Oracle GraalVM to du\u017cy krok do przodu dla projektu. Zw\u0142aszcza, \u017ce wraz z now\u0105 wersj\u0105 pojawiaj\u0105 si\u0119 r\u00f3wnie\u017c nowe funkcjonalno\u015bci.<\/p>\n","innerContent":["\n<p>Mimo wspomnianych powy\u017cszych ogranicze\u0144, w dalszym ci\u0105gu, Oracle GraalVM to du\u017cy krok do przodu dla projektu. Zw\u0142aszcza, \u017ce wraz z now\u0105 wersj\u0105 pojawiaj\u0105 si\u0119 r\u00f3wnie\u017c nowe funkcjonalno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">Co nowego przychodzi wraz z Oracle GraalVM<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">Co nowego przychodzi wraz z Oracle GraalVM<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>As for new features, the most interesting from my perspective is the new profiler (unfortunately, not available in the CE version). To simplify, historically Native Images have been characterized by faster startup than \"classic\" applications, but often feature worse performance than JIT-compiled ones. This is because GraalVM (at least in the CE version) could only optimize applications based on static data available at image build time, while the JIT compiler can additionally infer based on real-world production characteristics of the application. In the Enterprise Edition (now known as Oracle GraalVM), GraalVM developers use several additional techniques, including <a href=\"https:\/\/www.graalvm.org\/latest\/reference-manual\/native-image\/guides\/optimize-native-executable-with-pgo\/\">profile-guided optimization<\/a> (PGO). Now the GraalVM developers have decided to enhance it with ML to get a few extra percentages of performance. By using pre-learned machine learning models in the building process, they were able to achieve even better results.<\/p>\n","innerContent":["\n<p>As for new features, the most interesting from my perspective is the new profiler (unfortunately, not available in the CE version). To simplify, historically Native Images have been characterized by faster startup than \"classic\" applications, but often feature worse performance than JIT-compiled ones. This is because GraalVM (at least in the CE version) could only optimize applications based on static data available at image build time, while the JIT compiler can additionally infer based on real-world production characteristics of the application. In the Enterprise Edition (now known as Oracle GraalVM), GraalVM developers use several additional techniques, including <a href=\"https:\/\/www.graalvm.org\/latest\/reference-manual\/native-image\/guides\/optimize-native-executable-with-pgo\/\">profile-guided optimization<\/a> (PGO). Now the GraalVM developers have decided to enhance it with ML to get a few extra percentages of performance. By using pre-learned machine learning models in the building process, they were able to achieve even better results.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":16256,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-13.png\" alt=\"\" class=\"wp-image-16256\"\/><figcaption class=\"wp-element-caption\">Ciekawe czy w przysz\u0142o\u015bci b\u0119dziemy mogli uczy\u0107 tego typu modele w oparciu o w\u0142asn\u0105 aplikacje.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-13.png\" alt=\"\" class=\"wp-image-16256\"\/><figcaption class=\"wp-element-caption\">Ciekawe czy w przysz\u0142o\u015bci b\u0119dziemy mogli uczy\u0107 tego typu modele w oparciu o w\u0142asn\u0105 aplikacje.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Poza PGO, nowy GraalVM wprowadza jeszcze kilka innych technik optymalizacji, ale zmiany nie ko\u0144cz\u0105 si\u0119 na nich. Wprodzono bowiem Native Image Bundles - czyli mo\u017cliwo\u015b\u0107 \u0142atwego dzielenia si\u0119 konfiguracj\u0105 buildu GraalVM mi\u0119dzy programistami. Inn\u0105 funkcj\u0105 dodan\u0105 w tym wydaniu jest mo\u017cliwo\u015b\u0107 generowania raport\u00f3w z budowy przez Native Image. Raporty te dostarczaj\u0105 informacji o \u015brodowisku budowy, wykorzystywanych zasobach i innych wynikach analiz. Aby takowe za\u015b jeszcze u\u0142atwi\u0107, otwarto \u017ar\u00f3d\u0142a Ideal Graph Visualizer (IGV) - narz\u0119dzia s\u0142u\u017c\u0105cego do analiz graf\u00f3w kompilacji, co mo\u017ce pom\u00f3c w walce z problemami z performance .<\/p>\n","innerContent":["\n<p>Poza PGO, nowy GraalVM wprowadza jeszcze kilka innych technik optymalizacji, ale zmiany nie ko\u0144cz\u0105 si\u0119 na nich. Wprodzono bowiem Native Image Bundles - czyli mo\u017cliwo\u015b\u0107 \u0142atwego dzielenia si\u0119 konfiguracj\u0105 buildu GraalVM mi\u0119dzy programistami. Inn\u0105 funkcj\u0105 dodan\u0105 w tym wydaniu jest mo\u017cliwo\u015b\u0107 generowania raport\u00f3w z budowy przez Native Image. Raporty te dostarczaj\u0105 informacji o \u015brodowisku budowy, wykorzystywanych zasobach i innych wynikach analiz. Aby takowe za\u015b jeszcze u\u0142atwi\u0107, otwarto \u017ar\u00f3d\u0142a Ideal Graph Visualizer (IGV) - narz\u0119dzia s\u0142u\u017c\u0105cego do analiz graf\u00f3w kompilacji, co mo\u017ce pom\u00f3c w walce z problemami z performance .<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ponadto wsparcie dla AWT w Native Image zosta\u0142o rozszerzone na Linuxa, co umo\u017cliwia jeszcze wi\u0119kszej liczbie aplikacji GUI Java dystrybuowanie poprzez Native Image. Je\u015bli chodzi za\u015b o Developer Experience, u\u0142atwiono debugowanie dla Windowsa, azarz\u0105dzanie za pomoc\u0105 JMX jest teraz mo\u017cliwe za pomoc\u0105 opcji <code>--enable-monitoring<\/code>. Wydanie zawiera r\u00f3wnie\u017c list\u0119 bibliotek i framework\u00f3w, kt\u00f3re zosta\u0142y zweryfikowane pod k\u0105tem dzia\u0142ania z Native Image. Ko\u0144cz\u0105c, GraalVM JIT obs\u0142uguje teraz te\u017c kolejny Garbage Collector - ZGC.<\/p>\n","innerContent":["\n<p>Ponadto wsparcie dla AWT w Native Image zosta\u0142o rozszerzone na Linuxa, co umo\u017cliwia jeszcze wi\u0119kszej liczbie aplikacji GUI Java dystrybuowanie poprzez Native Image. Je\u015bli chodzi za\u015b o Developer Experience, u\u0142atwiono debugowanie dla Windowsa, azarz\u0105dzanie za pomoc\u0105 JMX jest teraz mo\u017cliwe za pomoc\u0105 opcji <code>--enable-monitoring<\/code>. Wydanie zawiera r\u00f3wnie\u017c list\u0119 bibliotek i framework\u00f3w, kt\u00f3re zosta\u0142y zweryfikowane pod k\u0105tem dzia\u0142ania z Native Image. Ko\u0144cz\u0105c, GraalVM JIT obs\u0142uguje teraz te\u017c kolejny Garbage Collector - ZGC.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wszystkie detale znajdziecie we wspomnianym ju\u017c po\u015bcie <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>. Dla lubi\u0105cych za\u015b format wideo, polecam towarzysz\u0105cy <a href=\"https:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0\">nowo\u015bciom webinar<\/a>.<\/p>\n","innerContent":["\n<p>Wszystkie detale znajdziecie we wspomnianym ju\u017c po\u015bcie <a href=\"https:\/\/medium.com\/graalvm\/a-new-graalvm-release-and-new-free-license-4aab483692f5\">A New GraalVM Release and New Free License!<\/a>. Dla lubi\u0105cych za\u015b format wideo, polecam towarzysz\u0105cy <a href=\"https:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0\">nowo\u015bciom webinar<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=lWhEg-6DqM0\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">GraalVM to nie tylko Java<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">GraalVM to nie tylko Java<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dodatkowo, przy okazji premiery Oracle JDK otrzymali\u015bmy dodatkow\u0105 publikacje <a href=\"https:\/\/medium.com\/graalvm\/whats-new-in-graalvm-languages-161527df3d76\">What\u2019s New in GraalVM Languages<\/a>, przypominaj\u0105c\u0105, \u017ce GraalVM wychodzi daleko poza \u015bwiat JVM. Skupia si\u0119 ona na zmianach dla innych j\u0119zyk\u00f3w wspieranych przez maszyn\u0119 wirtualn\u0105.<\/p>\n","innerContent":["\n<p>Dodatkowo, przy okazji premiery Oracle JDK otrzymali\u015bmy dodatkow\u0105 publikacje <a href=\"https:\/\/medium.com\/graalvm\/whats-new-in-graalvm-languages-161527df3d76\">What\u2019s New in GraalVM Languages<\/a>, przypominaj\u0105c\u0105, \u017ce GraalVM wychodzi daleko poza \u015bwiat JVM. Skupia si\u0119 ona na zmianach dla innych j\u0119zyk\u00f3w wspieranych przez maszyn\u0119 wirtualn\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":16252,"width":540,"height":631,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-11.png\" alt=\"\" class=\"wp-image-16252\" width=\"540\" height=\"631\"\/><figcaption class=\"wp-element-caption\">A g\u0142\u00f3wnie Pythona.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/06\/image-11.png\" alt=\"\" class=\"wp-image-16252\" width=\"540\" height=\"631\"\/><figcaption class=\"wp-element-caption\">A g\u0142\u00f3wnie Pythona.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>GraalPy, runtime Pythona zbudowany na bazie GraalVM, teraz obs\u0142uguje r\u00f3wnie\u017c system Windows. Dodatkowo, GraalPy wprowadza now\u0105 implementacj\u0119 swojego interfejsu Python C API, co zwi\u0119ksza wydajno\u015b\u0107 i kompatybilno\u015b\u0107 z niekt\u00f3rymi rozszerzeniami. Mo\u017cna to zobaczy\u0107 w zaktualizowanych wska\u017anikach, kt\u00f3re pokazuj\u0105 popraw\u0119 wydajno\u015bci w por\u00f3wnaniu do CPython. Aktualizacji doczeka\u0142a si\u0119 te\u017c wersja j\u0119zyka i standardowych bibliotek, dodano tak\u017ce wsparcia dla <code>asyncio<\/code> i wtyczki dla <code>virtualenv<\/code>.<\/p>\n","innerContent":["\n<p>GraalPy, runtime Pythona zbudowany na bazie GraalVM, teraz obs\u0142uguje r\u00f3wnie\u017c system Windows. Dodatkowo, GraalPy wprowadza now\u0105 implementacj\u0119 swojego interfejsu Python C API, co zwi\u0119ksza wydajno\u015b\u0107 i kompatybilno\u015b\u0107 z niekt\u00f3rymi rozszerzeniami. Mo\u017cna to zobaczy\u0107 w zaktualizowanych wska\u017anikach, kt\u00f3re pokazuj\u0105 popraw\u0119 wydajno\u015bci w por\u00f3wnaniu do CPython. Aktualizacji doczeka\u0142a si\u0119 te\u017c wersja j\u0119zyka i standardowych bibliotek, dodano tak\u017ce wsparcia dla <code>asyncio<\/code> i wtyczki dla <code>virtualenv<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ulepszenia nie ko\u0144cz\u0105 si\u0119 jednak na Pythonie. TruffleRuby i Node.js, poza aktualizacjami runtime, dosta\u0142y obs\u0142ug\u0119 <code>java.lang.BigInteger<\/code>. Wprowadzono r\u00f3wnie\u017c zmiany w polityce Polyglot Sandboxing, kt\u00f3re pozwalaj\u0105 na lepsz\u0105 kontrol\u0119 nad uprawnieniami dla \"kodu go\u015bcia\". Na koniec, wprowadzono ulepszenia do Truffle DSL dzi\u0119ki adnotacji @GenerateInline, kt\u00f3ra pozwala na zasugerowanie, kt\u00f3re fragmenty kodu powinny zosta\u0107 zinlinowane.<\/p>\n","innerContent":["\n<p>Ulepszenia nie ko\u0144cz\u0105 si\u0119 jednak na Pythonie. TruffleRuby i Node.js, poza aktualizacjami runtime, dosta\u0142y obs\u0142ug\u0119 <code>java.lang.BigInteger<\/code>. Wprowadzono r\u00f3wnie\u017c zmiany w polityce Polyglot Sandboxing, kt\u00f3re pozwalaj\u0105 na lepsz\u0105 kontrol\u0119 nad uprawnieniami dla \"kodu go\u015bcia\". Na koniec, wprowadzono ulepszenia do Truffle DSL dzi\u0119ki adnotacji @GenerateInline, kt\u00f3ra pozwala na zasugerowanie, kt\u00f3re fragmenty kodu powinny zosta\u0107 zinlinowane.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A je\u017celi jeste\u015bcie ciekawi, do czego mo\u017cna u\u017cy\u0107 takiego w\u0142a\u015bnie GraalPy, na oficjalnym kanale YouTube GraalVM znale\u015b\u0107 mo\u017cecie wideo <a href=\"https:\/\/www.youtube.com\/watch?v=MtNqj35u9HI\">Using Python from Java with GraalVM<\/a>, prezentuj\u0105ce pe\u0142ny proces. Podczas ostatniego Spring I\/O (pewnie jeszcze b\u0119d\u0119 do niego wraca\u0142) pojawi\u0142a si\u0119 te\u017c sesja <a href=\"https:\/\/2023.springio.net\/speakers\/johannes-link\/\">Empower your Spring-Applications with Python-Features on GraalVM<\/a>, ale niestety nagranie nie jest jeszcze dost\u0119pne. Te jednak stopniowo \"skapuj\u0105\", wi\u0119c je\u015bli nie chcecie przegapi\u0107, <a href=\"https:\/\/www.youtube.com\/@SpringIOConference\">zasubskrybujcie kana\u0142 Spring\/IO<\/a>.<\/p>\n","innerContent":["\n<p>A je\u017celi jeste\u015bcie ciekawi, do czego mo\u017cna u\u017cy\u0107 takiego w\u0142a\u015bnie GraalPy, na oficjalnym kanale YouTube GraalVM znale\u015b\u0107 mo\u017cecie wideo <a href=\"https:\/\/www.youtube.com\/watch?v=MtNqj35u9HI\">Using Python from Java with GraalVM<\/a>, prezentuj\u0105ce pe\u0142ny proces. Podczas ostatniego Spring I\/O (pewnie jeszcze b\u0119d\u0119 do niego wraca\u0142) pojawi\u0142a si\u0119 te\u017c sesja <a href=\"https:\/\/2023.springio.net\/speakers\/johannes-link\/\">Empower your Spring-Applications with Python-Features on GraalVM<\/a>, ale niestety nagranie nie jest jeszcze dost\u0119pne. Te jednak stopniowo \"skapuj\u0105\", wi\u0119c je\u015bli nie chcecie przegapi\u0107, <a href=\"https:\/\/www.youtube.com\/@SpringIOConference\">zasubskrybujcie kana\u0142 Spring\/IO<\/a>.<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/16243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=16243"}],"version-history":[{"count":15,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/16243\/revisions"}],"predecessor-version":[{"id":16285,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/16243\/revisions\/16285"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/16264"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=16243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=16243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=16243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}