{"id":11527,"date":"2022-10-26T17:09:06","date_gmt":"2022-10-26T15:09:06","guid":{"rendered":"https:\/\/vived.io\/?p=11527"},"modified":"2022-10-27T10:28:55","modified_gmt":"2022-10-27T08:28:55","slug":"jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/","title":{"rendered":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden &#8211; JVM Weekly #110"},"content":{"rendered":"\n<p>Tak jak mia\u0142em nadzieje tydzie\u0144 temu &#8211; JavaOne nie rozczarowa\u0142a. Co prawda du\u017cych nowo\u015bci nie by\u0142o zatrz\u0119sienie, ale dostali\u015bmy na przyk\u0142ad bardzo dobry <a href=\"https:\/\/www.youtube.com\/watch?v=NEVap2Wt5go\">Developerski Keynote<\/a>, w ramach kt\u00f3rego pokazano min. Helidon Nima czy nowo\u015bci w ZGC. Do tych ostatnich planuje zreszt\u0105 wr\u00f3ci\u0107 za tydzie\u0144, bo w \u015bwiecie Garbage Collector\u00f3w znowu mo\u017cemy spodziewa\u0107 si\u0119 ciekawych rzeczy. Dzisiaj jednak chcia\u0142em si\u0119 skupi\u0107 na czym\u015b innym &#8211; prawdziw\u0105 bomb\u0105 zrzucon\u0105 na nas w czasie konferencji by\u0142a bowiem zapowied\u017a zmian w GraalVM. I bynajmniej nie chodzi tu o \u017cadn\u0105 rewolucje technologiczn\u0105.<\/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\/2022\/10\/image-25.png\" alt=\"\" class=\"wp-image-11528\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-25.png 658w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-25-289x300.png 289w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><figcaption>A teraz zr\u00f3bcie sobie pyszn\u0105 kawusi\u0119, porozmawiamy sobie o licencjach na oprogramowanie.<\/figcaption><\/figure><\/div>\n\n\n<p>Przez lata tym, co najbardziej blokowa\u0142o adopcj\u0119 GraalVM, by\u0142 jego niejasny model licencyjny. O ile projekt alternatywnej dla JVM, uniwersalnej maszyny wirtualnej (<em>jednej by wszystkimi rz\u0105dzi\u0107<\/em> \ud83d\udc8d) zawsze mocno wi\u0105za\u0142 si\u0119 z JDK w g\u0142owach programist\u00f3w Javy, o tyle w praktyce relacja mi\u0119dzy t\u0105 dw\u00f3jk\u0105 nigdy nie by\u0142a klarowna. W inny spos\u00f3b si\u0119 go rozwija\u0142o, inaczej by\u0142 dystrybuowany, ale co najwa\u017cniejsze &#8211; opiera\u0142 si\u0119 na zupe\u0142nie innej licencji ni\u017c OpenJDK. Zar\u00f3wno wydanie spo\u0142eczno\u015bciowe (GraalVM Community Edition), jak i korporacyjne (GraalVM Enterprise Edition) pozostawa\u0142y w\u0142asno\u015bci\u0105 Oracle. <\/p>\n\n\n\n<p>W skr\u00f3cie:<\/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\/2022\/10\/image-27.png\" alt=\"\" class=\"wp-image-11533\" width=\"489\" height=\"326\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-27.png 978w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-27-300x200.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-27-768x512.png 768w\" sizes=\"auto, (max-width: 489px) 100vw, 489px\" \/><\/figure><\/div>\n\n\n<p>GraalVM rozwijany by\u0142 w spos\u00f3b ma\u0142o transparentny, na boku i dopiero ostatnio zacz\u0119to dba\u0107 o jego wi\u0119ksz\u0105 przejrzysto\u015b\u0107 min. poprzez publikacje publicznej Roadmapy. Teraz okazuje si\u0119, \u017ce by\u0142 to dopiero pocz\u0105tek. Podczas wspomnianego ju\u017c JavaOne og\u0142oszono bowiem, \u017ce Oracle oddaje GraalVM Community Edition w r\u0119ce spo\u0142eczno\u015bci, i takowe stanie si\u0119 nareszcie cz\u0119\u015bci\u0105 OpenJDK (Enterprise Edition pozostanie pod star\u0105 licencj\u0105). <\/p>\n\n\n\n<p>Co to oznacza w praktyce? Pocz\u0105tkowo nie wiedzieli\u015bmy za wiele i w zasadzie ca\u0142o\u015b\u0107 publicznego og\u0142oszenia sprowadza\u0142a si\u0119 do <a href=\"https:\/\/threadreaderapp.com\/thread\/1582441450796900354.html\">pojedynczego tweetu<\/a>, bez wi\u0119kszych szczeg\u00f3\u0142\u00f3w (troch\u0119 jakby w Oracle by\u0142o wielu fan\u00f3w sposobu komunikacji naszego rz\u0105du). Te jednak <a href=\"https:\/\/www.graalvm.org\/2022\/openjdk-announcement\/\">wreszcie si\u0119 pojawi\u0142y<\/a>. Do OpenJDK trafi ca\u0142a specyfikacja Native Image i GraalVM-owego JIT-a dla Javy &#8211; pod star\u0105 licencj\u0105 zostan\u0105 za\u015b implementacje GraalVM dla innych j\u0119zyk\u00f3w, takie jak Python, Ruby, R, i JavaScript. Ca\u0142y proces rozwoju projektu zostanie te\u017c zunifikowany z tym, jak wydawane s\u0105 nowe wydania JDK. W praktyce oznacza to wi\u0119c dwa release do roku, LTS raz na dwa lata oraz JEPy. GraalVM stanie si\u0119 wi\u0119c realn\u0105 cz\u0119\u015bci\u0105 OpenJDK, z kt\u00f3r\u0105 inne fragmenty projektu b\u0119d\u0105 w stanie nareszcie wchodzi\u0107 w realn\u0105 synergi\u0119. Dotychczasowa historia takowej by\u0142a bowiem bardzo, ale to bardzo wyboista.<\/p>\n\n\n\n<p>Ma\u0142o kto pami\u0119ta bowiem, \u017ce Java posiada\u0142a w\u0142asny kompilator AoT od JDK 9, a GraalVM-owa implementacja JIT-a ju\u017c kiedy\u015b trafi\u0142a do OpenJDK 10. Obie funkcje zosta\u0142y jednak usuni\u0119te <a href=\"https:\/\/openjdk.org\/jeps\/410\">poprzez ich znikom\u0105 adopcj\u0119<\/a> &#8211; GraalVM, mimo niejasnego stanu licencyjnego pozostawa\u0142 &#8222;kompletniejsz\u0105 paczk\u0105&#8221;, gotow\u0105 na produkcyjny ruch i wspieran\u0105 przez wi\u0119kszo\u015b\u0107 popularnych framework\u00f3w out-of-the-box. Z tego te\u017c powodu ma\u0142o kto decydowa\u0142 si\u0119 na gorzej wspierane, eksperymentalne funkcjonalno\u015bci znajduj\u0105ce si\u0119 w OpenJDK. Teraz kiedy GraalVM staje si\u0119 cz\u0119\u015bci\u0105 u\u017cywanej przez wszystkich Javy, ten rozjazd de facto znika&#8230; co ma bardzo ciekawe konsekwencje.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"349\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1.gif\" alt=\"\" class=\"wp-image-11540\"\/><figcaption>Powr\u00f3\u0107my do tematu synergii.<\/figcaption><\/figure><\/div>\n\n\n<p>Osoby regularnie \u015bledz\u0105ce prac\u0119 nad JVM pewnie kojarz\u0105 nazw\u0119 Project Leyden. Problem z nim polega, \u017ce w\u0142a\u015bciwie zrozumienie, czym tak naprawd\u0119 Leyden jest trudne. M\u00f3wi si\u0119 o nim w bardzo r\u00f3\u017cnych kontekstach &#8211; alternatywy dla GraalVM, kompilatora AoT, optymalizacji javowego JIT. Z tego powodu bardzo trudno jest zrozumie\u0107, jaka jest jego misja i cel &#8211; i nie bardzo pomaga tutaj nawet <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/01-beginnings\">oficjalny pitch projektu<\/a>. W zwi\u0105zku z tym Mark Reinhold, Chief Architect Javy, postanowi\u0142 ten dyskurs nieco uporz\u0105dkowa\u0107, publikuj\u0105c tekst <strong><a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a><\/strong>. Tytu\u0142 chyba zosta\u0142 wybrany w konkursie na &#8222;Najmniej zach\u0119caj\u0105c\u0105 do lektury rzecz na \u015bwiecie&#8221;, nie zmienia to jednak faktu, \u017ce naprawd\u0119 warto. Mark wchodzi w nim przez r\u00f3\u017cne koncepcje na przesuwanie etap\u00f3w kompilacji mi\u0119dzy poszczeg\u00f3lnymi fazami dzia\u0142ania program\u00f3w JVM-owych,  przy okazji t\u0142umacz\u0105c, czym tak naprawd\u0119 jest w\u0142a\u015bnie to ca\u0142e Ahead-of-Time, Just-in-Time, czy caching ju\u017c skompilowanych fragment\u00f3w &#8211; jak Application Class Data Sharing czy Project CRaC. Tekst na\u015bwietla, czemu r\u00f3wnie\u017c w tej kwestii sprawdza si\u0119 stare powiedzenie, \u017ce <em>nigdy nie ma darmowych obiad\u00f3w<\/em>, a przy okazji wprowadza koncept Condenser\u00f3w, na kt\u00f3rych g\u0142\u00f3wny nacisk b\u0119dzie teraz stawia\u0142 Project Leyden. Condensery to z za\u0142o\u017cenia transformatory aplikacji (np. z kodu \u017ar\u00f3d\u0142owego w bajt kod, z interpretowanego bajt kodu w kod kompilowany), kt\u00f3rymi mo\u017cna swobodnie \u017conglowa\u0107 w procesie jej budowania i komponowa\u0107 w spos\u00f3b optymalny dla naszej aplikacji. Cel &#8211; by\u0107 w stanie wygenerowa\u0107 aplikacj\u0119 idealnie skrojon\u0105 pod \u015brodowisko uruchomieniowe, niezale\u017cnie czy jest to serwer aplikacyjny czy funkcja serverless\/edge.<\/p>\n\n\n\n<p>Oczywi\u015bcie, wszystko co tutaj napisa\u0142em, jest sporym uproszczeniem uproszczeniem dla klarowno\u015bci przekazu. Nie bez powodu <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a> czyta si\u0119 te bite 15 minut \ud83d\ude09. Je\u017celi za\u015b chcecie dosta\u0107 bardzo ciekaw\u0105 dyskusje na temat r\u00f3\u017cnych tradeoff\u00f3w, kt\u00f3re maj\u0105 kompilacje JIT i AOT, niedawno ukaza\u0142a si\u0119 na InfoQ prezentacja<strong> <a href=\"https:\/\/www.infoq.com\/presentations\/jit-aot-tradeoffs\">JIT vs. AOT: How to Pick the Right Approach<\/a><\/strong>, maj\u0105ca form\u0119 panelu dyskusyjnego.<\/p>\n\n\n\n<p>Dlaczego o tym pisz\u0119? Gdy\u017c dobrze ukazuje to, dlaczego tak ci\u0119\u017cko sklasyfikowa\u0107 Leyden, a r\u00f3wnocze\u015bnie pozwala zrozumie\u0107 wiele dzia\u0142a\u0144 projektu. Kiedy w czerwcu tego roku pojawi\u0142a si\u0119 informacja, \u017ce Project Leyden <a href=\"https:\/\/www.infoq.com\/news\/2022\/06\/project-leyden-delays-aot\/\">op\u00f3\u017ani prace nad kompilatorem AoT na rzecz optymalizacji JIT<\/a>, nie oznacza\u0142o to wi\u0119c ca\u0142kowitego shift (hehe) projektu. Po prostu chwilowo koncentracja zosta\u0142a przesuni\u0119ta na innego Condensera. I tutaj w\u0142a\u015bnie przyszed\u0142 czas na powr\u00f3t do oryginalnego tematu &#8211; wcalenie GraalVM do OpenJDK pozwala lepiej zintegrowa\u0107 go z Project Leyden. Prawdopodobnie GraalVM po prostu b\u0119dziemy mogli traktowa\u0107 jako jeszcze jeden Condenser. Sprawi to te\u017c, \u017ce ca\u0142y horyzont zwi\u0105zany z kompilacj\u0105 w JVM mo\u017ce wreszcie si\u0119 troch\u0119 wyklarowa\u0107.<\/p>\n\n\n\n<p>Skacz\u0105c odrobin\u0119 w bok, ale tylko odrobin\u0119, bo dalej w zakresie zainteresowa\u0144 Project Leyden &#8211; dopiero co tydzie\u0144 temu mia\u0142em okazj\u0119 pisa\u0107 o do\u0142\u0105czeniu Google do Adoptium Working Group, a ju\u017c mamy okazj\u0119 zobaczy\u0107 pierwsze tego efekty. <a href=\"https:\/\/blog.adoptium.net\/2022\/10\/a-short-exploration-of-java-class-pre-initialization\/\">Adoptium poinformowa\u0142o bowiem<\/a>, \u017ce Google razem z Alibab\u0105 (chi\u0144sk\u0105 firm\u0105 stoj\u0105c\u0105 za AliExpress) zaproponowa\u0142o <a href=\"https:\/\/github.com\/adoptium\/jdk11u-fast-startup-incubator\">projekt Fast Startup Incubator<\/a>. Jego celem s\u0105 eksperymenty maj\u0105ce na celu wypracowanie sposob\u00f3w na szybszy star Javowych aplikacji. Pod uwag\u0119 brane s\u0105 zmiany w <a href=\"https:\/\/nipafx.dev\/java-application-class-data-sharing\/\">Application Class Data Sharing<\/a> (o kt\u00f3rym pisa\u0142 Mark Reinhold w przywo\u0142ywanym tek\u015bcie), a tak\u017ce r\u00f3\u017cne sposoby kompilacji Ahead-of-Time. Jak wida\u0107 wi\u0119c, temat jest bardzo gor\u0105cy i wr\u0119cz bombardowani jeste\u015bmy pracami z r\u00f3\u017cnych kierunk\u00f3w. A pow\u00f3d jest bardzo jasny &#8211; ponownie s\u0105 to chmury, Serverless i Edge Computing. Tw\u00f3rcom zar\u00f3wno aplikacji, jak i chmur zale\u017cy, \u017ceby Javy da\u0142o si\u0119 jak najwygodniej u\u017cywa\u0107 w tym kontek\u015bcie. Niezale\u017cnie od rankingu nie wypada ona w ko\u0144cu z listy najpopularniejszych j\u0119zyk\u00f3w programowania.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-885x1024.png\" alt=\"\" class=\"wp-image-11557\" width=\"443\" height=\"512\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-885x1024.png 885w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-259x300.png 259w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-768x889.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28.png 1300w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><figcaption>PS: tak, wiem, w 1997 tu powinien by\u0107 jeszcze Sun&#8230; Dalej \u015bmieszne<\/figcaption><\/figure><\/div>\n\n\n<p>A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 GraalVM, kt\u00f3re pojawi\u0142o si\u0119 w dniu dzisiejszym. Nowa wersja projektu o <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">numerze 22.3<\/a> mo\u017ce pochwali\u0107 si\u0119 wsparciem dla JDK 19 i jego masy eksperymentalnych featur\u00f3w. Jest to mi\u0119dzy innymi Loom, do kt\u00f3rego tw\u00f3rcy przygotowali specjalne demo superwydajnej implementacji <a href=\"https:\/\/github.com\/graalvm\/game-of-life-native\">Gry w \u017bycie<\/a>. Pojawi\u0142 si\u0119 r\u00f3wnie\u017c dost\u0119pny jeszcze w JDK 18 <code>jwebserver<\/code>.<\/p>\n\n\n\n<p>U\u0142tawione zosta\u0142o r\u00f3wnie\u017c pobieranie GraalVM. Teraz wystarczy odpali\u0107 komend\u0119<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash &lt;(curl -sL https:\/\/get.graalvm.org\/jdk)<\/code><\/pre>\n\n\n\n<p>aby pobra\u0107 aktualn\u0105 wersj\u0119 projektu. Mo\u017ce to by\u0107 przydatne np. w \u015brodowisku CI. Dla wygody nas wszystkich, pojawi\u0142y si\u0119 za\u015b nowe oficjalne <em>Reachability Metadata<\/em> dla takich projekt\u00f3w jak Hibernate, Jetty, Thymeleaf, JAXB.<\/p>\n\n\n\n<p>Je\u015bli chodzi o internale, to tu te\u017c jest ciekawie. min. poprzez wsparcie <code>jlink<\/code> czy nowa wersja <strong>Native Build Tools 0.9.15<\/strong>. Tw\u00f3rcy narz\u0119dzi otrzymali za\u015b nowe <strong>Native Image API<\/strong>, kt\u00f3re pom\u00f3c ma na integracje narz\u0119dzi zewn\u0119trznych z GraalVM.<\/p>\n\n\n\n<p>Ju\u017c na samo zako\u0144czenie, nie mog\u0119 nie wspomnie\u0107 o tym, \u017ce projekt otrzyma\u0142 swoj\u0105 w\u0142asn\u0105 maskotk\u0119. Jest ni\u0105 Grabbit i przyznam szczerze, jest ostatni\u0105 rzecz\u0105 kt\u00f3ra kojarzy mi si\u0119 z Graal VM, ale ja og\u00f3lnie bardzo lubi\u0119, gdy projekty programistyczne maj\u0105 maskotki&#8230; mocno wi\u0119c propsuje.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/181iWqmXga91wgjk3qztbog.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Polecam lektur\u0119 samego <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">postu releasowego<\/a>, w kt\u00f3rym tw\u00f3rcy chwal\u0105 si\u0119 aktualizacjami dla \u015brodowisk uruchomieniowych innych ni\u017c Java, ale tak\u017ce poprawkami w samym kompilatorze.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W dniu dzisiejszym wszystkie tematy dotycz\u0105 Project Leyden i GraalVM, dlatego zamiast standardowego podzia\u0142u postanowi\u0142em przygotowa\u0107 jeden sp\u00f3jny tekst, w kt\u00f3rym postaram si\u0119 przeprowadzi\u0107 Was przez wszystko to, co dzieje si\u0119 w ko\u0142o tych dw\u00f3ch inicjatyw.<\/p>\n","protected":false},"author":10,"featured_media":11561,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-11527","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"7","feature_image_blog":{"ID":11564,"id":11564,"title":"SmugWickedBobolink-size_restricted (1)","filename":"SmugWickedBobolink-size_restricted-1-1.gif","filesize":3356241,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","link":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/smugwickedbobolink-size_restricted-1-2-2\/","alt":"","author":"10","description":"","caption":"","name":"smugwickedbobolink-size_restricted-1-2-2","status":"inherit","uploaded_to":11527,"date":"2022-10-26 15:08:18","modified":"2022-10-27 08:28:55","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":620,"height":349,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1-150x150.gif","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1-300x169.gif","medium-width":300,"medium-height":169,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","medium_large-width":620,"medium_large-height":349,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","large-width":620,"large-height":349,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","1536x1536-width":620,"1536x1536-height":349,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","2048x2048-width":620,"2048x2048-height":349,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":169,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","gform-image-choice-md-width":400,"gform-image-choice-md-height":225,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1-1.gif","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":338}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-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>Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - 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\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - Vived\" \/>\n<meta property=\"og:description\" content=\"W dniu dzisiejszym wszystkie tematy dotycz\u0105 Project Leyden i GraalVM, dlatego zamiast standardowego podzia\u0142u postanowi\u0142em przygotowa\u0107 jeden sp\u00f3jny tekst, w kt\u00f3rym postaram si\u0119 przeprowadzi\u0107 Was przez wszystko to, co dzieje si\u0119 w ko\u0142o tych dw\u00f3ch inicjatyw.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-26T15:09:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-27T08:28:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-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\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden &#8211; JVM Weekly #110\",\"datePublished\":\"2022-10-26T15:09:06+00:00\",\"dateModified\":\"2022-10-27T08:28:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\"},\"wordCount\":1452,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\",\"url\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\",\"name\":\"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png\",\"datePublished\":\"2022-10-26T15:09:06+00:00\",\"dateModified\":\"2022-10-27T08:28:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden &#8211; JVM Weekly #110\"}]},{\"@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":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - 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\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - Vived","og_description":"W dniu dzisiejszym wszystkie tematy dotycz\u0105 Project Leyden i GraalVM, dlatego zamiast standardowego podzia\u0142u postanowi\u0142em przygotowa\u0107 jeden sp\u00f3jny tekst, w kt\u00f3rym postaram si\u0119 przeprowadzi\u0107 Was przez wszystko to, co dzieje si\u0119 w ko\u0142o tych dw\u00f3ch inicjatyw.","og_url":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/","og_site_name":"Vived","article_published_time":"2022-10-26T15:09:06+00:00","article_modified_time":"2022-10-27T08:28:55+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-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\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden &#8211; JVM Weekly #110","datePublished":"2022-10-26T15:09:06+00:00","dateModified":"2022-10-27T08:28:55+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/"},"wordCount":1452,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/","url":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/","name":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden - JVM Weekly #110 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png","datePublished":"2022-10-26T15:09:06+00:00","dateModified":"2022-10-27T08:28:55+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1-7.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jak-oddanie-graalvm-do-openjdk-zmienia-reguly-gry-dla-project-leyden-jvm-weekly-110\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Jak oddanie GraalVM do OpenJDK zmienia regu\u0142y gry dla Project Leyden &#8211; JVM Weekly #110"}]},{"@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\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tak jak mia\u0142em nadzieje tydzie\u0144 temu - JavaOne nie rozczarowa\u0142a. Co prawda du\u017cych nowo\u015bci nie by\u0142o zatrz\u0119sienie, ale dostali\u015bmy na przyk\u0142ad bardzo dobry <a href=\"https:\/\/www.youtube.com\/watch?v=NEVap2Wt5go\">Developerski Keynote<\/a>, w ramach kt\u00f3rego pokazano min. Helidon Nima czy nowo\u015bci w ZGC. Do tych ostatnich planuje zreszt\u0105 wr\u00f3ci\u0107 za tydzie\u0144, bo w \u015bwiecie Garbage Collector\u00f3w znowu mo\u017cemy spodziewa\u0107 si\u0119 ciekawych rzeczy. Dzisiaj jednak chcia\u0142em si\u0119 skupi\u0107 na czym\u015b innym - prawdziw\u0105 bomb\u0105 zrzucon\u0105 na nas w czasie konferencji by\u0142a bowiem zapowied\u017a zmian w GraalVM. I bynajmniej nie chodzi tu o \u017cadn\u0105 rewolucje technologiczn\u0105.<\/p>\n","innerContent":["\n<p>Tak jak mia\u0142em nadzieje tydzie\u0144 temu - JavaOne nie rozczarowa\u0142a. Co prawda du\u017cych nowo\u015bci nie by\u0142o zatrz\u0119sienie, ale dostali\u015bmy na przyk\u0142ad bardzo dobry <a href=\"https:\/\/www.youtube.com\/watch?v=NEVap2Wt5go\">Developerski Keynote<\/a>, w ramach kt\u00f3rego pokazano min. Helidon Nima czy nowo\u015bci w ZGC. Do tych ostatnich planuje zreszt\u0105 wr\u00f3ci\u0107 za tydzie\u0144, bo w \u015bwiecie Garbage Collector\u00f3w znowu mo\u017cemy spodziewa\u0107 si\u0119 ciekawych rzeczy. Dzisiaj jednak chcia\u0142em si\u0119 skupi\u0107 na czym\u015b innym - prawdziw\u0105 bomb\u0105 zrzucon\u0105 na nas w czasie konferencji by\u0142a bowiem zapowied\u017a zmian w GraalVM. I bynajmniej nie chodzi tu o \u017cadn\u0105 rewolucje technologiczn\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11528,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-25.png\" alt=\"\" class=\"wp-image-11528\"\/><figcaption>A teraz zr\u00f3bcie sobie pyszn\u0105 kawusi\u0119, porozmawiamy sobie o licencjach na oprogramowanie.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-25.png\" alt=\"\" class=\"wp-image-11528\"\/><figcaption>A teraz zr\u00f3bcie sobie pyszn\u0105 kawusi\u0119, porozmawiamy sobie o licencjach na oprogramowanie.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przez lata tym, co najbardziej blokowa\u0142o adopcj\u0119 GraalVM, by\u0142 jego niejasny model licencyjny. O ile projekt alternatywnej dla JVM, uniwersalnej maszyny wirtualnej (<em>jednej by wszystkimi rz\u0105dzi\u0107<\/em> \ud83d\udc8d) zawsze mocno wi\u0105za\u0142 si\u0119 z JDK w g\u0142owach programist\u00f3w Javy, o tyle w praktyce relacja mi\u0119dzy t\u0105 dw\u00f3jk\u0105 nigdy nie by\u0142a klarowna. W inny spos\u00f3b si\u0119 go rozwija\u0142o, inaczej by\u0142 dystrybuowany, ale co najwa\u017cniejsze - opiera\u0142 si\u0119 na zupe\u0142nie innej licencji ni\u017c OpenJDK. Zar\u00f3wno wydanie spo\u0142eczno\u015bciowe (GraalVM Community Edition), jak i korporacyjne (GraalVM Enterprise Edition) pozostawa\u0142y w\u0142asno\u015bci\u0105 Oracle. <\/p>\n","innerContent":["\n<p>Przez lata tym, co najbardziej blokowa\u0142o adopcj\u0119 GraalVM, by\u0142 jego niejasny model licencyjny. O ile projekt alternatywnej dla JVM, uniwersalnej maszyny wirtualnej (<em>jednej by wszystkimi rz\u0105dzi\u0107<\/em> \ud83d\udc8d) zawsze mocno wi\u0105za\u0142 si\u0119 z JDK w g\u0142owach programist\u00f3w Javy, o tyle w praktyce relacja mi\u0119dzy t\u0105 dw\u00f3jk\u0105 nigdy nie by\u0142a klarowna. W inny spos\u00f3b si\u0119 go rozwija\u0142o, inaczej by\u0142 dystrybuowany, ale co najwa\u017cniejsze - opiera\u0142 si\u0119 na zupe\u0142nie innej licencji ni\u017c OpenJDK. Zar\u00f3wno wydanie spo\u0142eczno\u015bciowe (GraalVM Community Edition), jak i korporacyjne (GraalVM Enterprise Edition) pozostawa\u0142y w\u0142asno\u015bci\u0105 Oracle. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W skr\u00f3cie:<\/p>\n","innerContent":["\n<p>W skr\u00f3cie:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11533,"width":489,"height":326,"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\/2022\/10\/image-27.png\" alt=\"\" class=\"wp-image-11533\" width=\"489\" height=\"326\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-27.png\" alt=\"\" class=\"wp-image-11533\" width=\"489\" height=\"326\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>GraalVM rozwijany by\u0142 w spos\u00f3b ma\u0142o transparentny, na boku i dopiero ostatnio zacz\u0119to dba\u0107 o jego wi\u0119ksz\u0105 przejrzysto\u015b\u0107 min. poprzez publikacje publicznej Roadmapy. Teraz okazuje si\u0119, \u017ce by\u0142 to dopiero pocz\u0105tek. Podczas wspomnianego ju\u017c JavaOne og\u0142oszono bowiem, \u017ce Oracle oddaje GraalVM Community Edition w r\u0119ce spo\u0142eczno\u015bci, i takowe stanie si\u0119 nareszcie cz\u0119\u015bci\u0105 OpenJDK (Enterprise Edition pozostanie pod star\u0105 licencj\u0105). <\/p>\n","innerContent":["\n<p>GraalVM rozwijany by\u0142 w spos\u00f3b ma\u0142o transparentny, na boku i dopiero ostatnio zacz\u0119to dba\u0107 o jego wi\u0119ksz\u0105 przejrzysto\u015b\u0107 min. poprzez publikacje publicznej Roadmapy. Teraz okazuje si\u0119, \u017ce by\u0142 to dopiero pocz\u0105tek. Podczas wspomnianego ju\u017c JavaOne og\u0142oszono bowiem, \u017ce Oracle oddaje GraalVM Community Edition w r\u0119ce spo\u0142eczno\u015bci, i takowe stanie si\u0119 nareszcie cz\u0119\u015bci\u0105 OpenJDK (Enterprise Edition pozostanie pod star\u0105 licencj\u0105). <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co to oznacza w praktyce? Pocz\u0105tkowo nie wiedzieli\u015bmy za wiele i w zasadzie ca\u0142o\u015b\u0107 publicznego og\u0142oszenia sprowadza\u0142a si\u0119 do <a href=\"https:\/\/threadreaderapp.com\/thread\/1582441450796900354.html\">pojedynczego tweetu<\/a>, bez wi\u0119kszych szczeg\u00f3\u0142\u00f3w (troch\u0119 jakby w Oracle by\u0142o wielu fan\u00f3w sposobu komunikacji naszego rz\u0105du). Te jednak <a href=\"https:\/\/www.graalvm.org\/2022\/openjdk-announcement\/\">wreszcie si\u0119 pojawi\u0142y<\/a>. Do OpenJDK trafi ca\u0142a specyfikacja Native Image i GraalVM-owego JIT-a dla Javy - pod star\u0105 licencj\u0105 zostan\u0105 za\u015b implementacje GraalVM dla innych j\u0119zyk\u00f3w, takie jak Python, Ruby, R, i JavaScript. Ca\u0142y proces rozwoju projektu zostanie te\u017c zunifikowany z tym, jak wydawane s\u0105 nowe wydania JDK. W praktyce oznacza to wi\u0119c dwa release do roku, LTS raz na dwa lata oraz JEPy. GraalVM stanie si\u0119 wi\u0119c realn\u0105 cz\u0119\u015bci\u0105 OpenJDK, z kt\u00f3r\u0105 inne fragmenty projektu b\u0119d\u0105 w stanie nareszcie wchodzi\u0107 w realn\u0105 synergi\u0119. Dotychczasowa historia takowej by\u0142a bowiem bardzo, ale to bardzo wyboista.<\/p>\n","innerContent":["\n<p>Co to oznacza w praktyce? Pocz\u0105tkowo nie wiedzieli\u015bmy za wiele i w zasadzie ca\u0142o\u015b\u0107 publicznego og\u0142oszenia sprowadza\u0142a si\u0119 do <a href=\"https:\/\/threadreaderapp.com\/thread\/1582441450796900354.html\">pojedynczego tweetu<\/a>, bez wi\u0119kszych szczeg\u00f3\u0142\u00f3w (troch\u0119 jakby w Oracle by\u0142o wielu fan\u00f3w sposobu komunikacji naszego rz\u0105du). Te jednak <a href=\"https:\/\/www.graalvm.org\/2022\/openjdk-announcement\/\">wreszcie si\u0119 pojawi\u0142y<\/a>. Do OpenJDK trafi ca\u0142a specyfikacja Native Image i GraalVM-owego JIT-a dla Javy - pod star\u0105 licencj\u0105 zostan\u0105 za\u015b implementacje GraalVM dla innych j\u0119zyk\u00f3w, takie jak Python, Ruby, R, i JavaScript. Ca\u0142y proces rozwoju projektu zostanie te\u017c zunifikowany z tym, jak wydawane s\u0105 nowe wydania JDK. W praktyce oznacza to wi\u0119c dwa release do roku, LTS raz na dwa lata oraz JEPy. GraalVM stanie si\u0119 wi\u0119c realn\u0105 cz\u0119\u015bci\u0105 OpenJDK, z kt\u00f3r\u0105 inne fragmenty projektu b\u0119d\u0105 w stanie nareszcie wchodzi\u0107 w realn\u0105 synergi\u0119. Dotychczasowa historia takowej by\u0142a bowiem bardzo, ale to bardzo wyboista.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ma\u0142o kto pami\u0119ta bowiem, \u017ce Java posiada\u0142a w\u0142asny kompilator AoT od JDK 9, a GraalVM-owa implementacja JIT-a ju\u017c kiedy\u015b trafi\u0142a do OpenJDK 10. Obie funkcje zosta\u0142y jednak usuni\u0119te <a href=\"https:\/\/openjdk.org\/jeps\/410\">poprzez ich znikom\u0105 adopcj\u0119<\/a> - GraalVM, mimo niejasnego stanu licencyjnego pozostawa\u0142 \"kompletniejsz\u0105 paczk\u0105\", gotow\u0105 na produkcyjny ruch i wspieran\u0105 przez wi\u0119kszo\u015b\u0107 popularnych framework\u00f3w out-of-the-box. Z tego te\u017c powodu ma\u0142o kto decydowa\u0142 si\u0119 na gorzej wspierane, eksperymentalne funkcjonalno\u015bci znajduj\u0105ce si\u0119 w OpenJDK. Teraz kiedy GraalVM staje si\u0119 cz\u0119\u015bci\u0105 u\u017cywanej przez wszystkich Javy, ten rozjazd de facto znika... co ma bardzo ciekawe konsekwencje.<\/p>\n","innerContent":["\n<p>Ma\u0142o kto pami\u0119ta bowiem, \u017ce Java posiada\u0142a w\u0142asny kompilator AoT od JDK 9, a GraalVM-owa implementacja JIT-a ju\u017c kiedy\u015b trafi\u0142a do OpenJDK 10. Obie funkcje zosta\u0142y jednak usuni\u0119te <a href=\"https:\/\/openjdk.org\/jeps\/410\">poprzez ich znikom\u0105 adopcj\u0119<\/a> - GraalVM, mimo niejasnego stanu licencyjnego pozostawa\u0142 \"kompletniejsz\u0105 paczk\u0105\", gotow\u0105 na produkcyjny ruch i wspieran\u0105 przez wi\u0119kszo\u015b\u0107 popularnych framework\u00f3w out-of-the-box. Z tego te\u017c powodu ma\u0142o kto decydowa\u0142 si\u0119 na gorzej wspierane, eksperymentalne funkcjonalno\u015bci znajduj\u0105ce si\u0119 w OpenJDK. Teraz kiedy GraalVM staje si\u0119 cz\u0119\u015bci\u0105 u\u017cywanej przez wszystkich Javy, ten rozjazd de facto znika... co ma bardzo ciekawe konsekwencje.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11540,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1.gif\" alt=\"\" class=\"wp-image-11540\"\/><figcaption>Powr\u00f3\u0107my do tematu synergii.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/SmugWickedBobolink-size_restricted-1.gif\" alt=\"\" class=\"wp-image-11540\"\/><figcaption>Powr\u00f3\u0107my do tematu synergii.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Osoby regularnie \u015bledz\u0105ce prac\u0119 nad JVM pewnie kojarz\u0105 nazw\u0119 Project Leyden. Problem z nim polega, \u017ce w\u0142a\u015bciwie zrozumienie, czym tak naprawd\u0119 Leyden jest trudne. M\u00f3wi si\u0119 o nim w bardzo r\u00f3\u017cnych kontekstach - alternatywy dla GraalVM, kompilatora AoT, optymalizacji javowego JIT. Z tego powodu bardzo trudno jest zrozumie\u0107, jaka jest jego misja i cel - i nie bardzo pomaga tutaj nawet <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/01-beginnings\">oficjalny pitch projektu<\/a>. W zwi\u0105zku z tym Mark Reinhold, Chief Architect Javy, postanowi\u0142 ten dyskurs nieco uporz\u0105dkowa\u0107, publikuj\u0105c tekst <strong><a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a><\/strong>. Tytu\u0142 chyba zosta\u0142 wybrany w konkursie na \"Najmniej zach\u0119caj\u0105c\u0105 do lektury rzecz na \u015bwiecie\", nie zmienia to jednak faktu, \u017ce naprawd\u0119 warto. Mark wchodzi w nim przez r\u00f3\u017cne koncepcje na przesuwanie etap\u00f3w kompilacji mi\u0119dzy poszczeg\u00f3lnymi fazami dzia\u0142ania program\u00f3w JVM-owych,  przy okazji t\u0142umacz\u0105c, czym tak naprawd\u0119 jest w\u0142a\u015bnie to ca\u0142e Ahead-of-Time, Just-in-Time, czy caching ju\u017c skompilowanych fragment\u00f3w - jak Application Class Data Sharing czy Project CRaC. Tekst na\u015bwietla, czemu r\u00f3wnie\u017c w tej kwestii sprawdza si\u0119 stare powiedzenie, \u017ce <em>nigdy nie ma darmowych obiad\u00f3w<\/em>, a przy okazji wprowadza koncept Condenser\u00f3w, na kt\u00f3rych g\u0142\u00f3wny nacisk b\u0119dzie teraz stawia\u0142 Project Leyden. Condensery to z za\u0142o\u017cenia transformatory aplikacji (np. z kodu \u017ar\u00f3d\u0142owego w bajt kod, z interpretowanego bajt kodu w kod kompilowany), kt\u00f3rymi mo\u017cna swobodnie \u017conglowa\u0107 w procesie jej budowania i komponowa\u0107 w spos\u00f3b optymalny dla naszej aplikacji. Cel - by\u0107 w stanie wygenerowa\u0107 aplikacj\u0119 idealnie skrojon\u0105 pod \u015brodowisko uruchomieniowe, niezale\u017cnie czy jest to serwer aplikacyjny czy funkcja serverless\/edge.<\/p>\n","innerContent":["\n<p>Osoby regularnie \u015bledz\u0105ce prac\u0119 nad JVM pewnie kojarz\u0105 nazw\u0119 Project Leyden. Problem z nim polega, \u017ce w\u0142a\u015bciwie zrozumienie, czym tak naprawd\u0119 Leyden jest trudne. M\u00f3wi si\u0119 o nim w bardzo r\u00f3\u017cnych kontekstach - alternatywy dla GraalVM, kompilatora AoT, optymalizacji javowego JIT. Z tego powodu bardzo trudno jest zrozumie\u0107, jaka jest jego misja i cel - i nie bardzo pomaga tutaj nawet <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/01-beginnings\">oficjalny pitch projektu<\/a>. W zwi\u0105zku z tym Mark Reinhold, Chief Architect Javy, postanowi\u0142 ten dyskurs nieco uporz\u0105dkowa\u0107, publikuj\u0105c tekst <strong><a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a><\/strong>. Tytu\u0142 chyba zosta\u0142 wybrany w konkursie na \"Najmniej zach\u0119caj\u0105c\u0105 do lektury rzecz na \u015bwiecie\", nie zmienia to jednak faktu, \u017ce naprawd\u0119 warto. Mark wchodzi w nim przez r\u00f3\u017cne koncepcje na przesuwanie etap\u00f3w kompilacji mi\u0119dzy poszczeg\u00f3lnymi fazami dzia\u0142ania program\u00f3w JVM-owych,  przy okazji t\u0142umacz\u0105c, czym tak naprawd\u0119 jest w\u0142a\u015bnie to ca\u0142e Ahead-of-Time, Just-in-Time, czy caching ju\u017c skompilowanych fragment\u00f3w - jak Application Class Data Sharing czy Project CRaC. Tekst na\u015bwietla, czemu r\u00f3wnie\u017c w tej kwestii sprawdza si\u0119 stare powiedzenie, \u017ce <em>nigdy nie ma darmowych obiad\u00f3w<\/em>, a przy okazji wprowadza koncept Condenser\u00f3w, na kt\u00f3rych g\u0142\u00f3wny nacisk b\u0119dzie teraz stawia\u0142 Project Leyden. Condensery to z za\u0142o\u017cenia transformatory aplikacji (np. z kodu \u017ar\u00f3d\u0142owego w bajt kod, z interpretowanego bajt kodu w kod kompilowany), kt\u00f3rymi mo\u017cna swobodnie \u017conglowa\u0107 w procesie jej budowania i komponowa\u0107 w spos\u00f3b optymalny dla naszej aplikacji. Cel - by\u0107 w stanie wygenerowa\u0107 aplikacj\u0119 idealnie skrojon\u0105 pod \u015brodowisko uruchomieniowe, niezale\u017cnie czy jest to serwer aplikacyjny czy funkcja serverless\/edge.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, wszystko co tutaj napisa\u0142em, jest sporym uproszczeniem uproszczeniem dla klarowno\u015bci przekazu. Nie bez powodu <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a> czyta si\u0119 te bite 15 minut \ud83d\ude09. Je\u017celi za\u015b chcecie dosta\u0107 bardzo ciekaw\u0105 dyskusje na temat r\u00f3\u017cnych tradeoff\u00f3w, kt\u00f3re maj\u0105 kompilacje JIT i AOT, niedawno ukaza\u0142a si\u0119 na InfoQ prezentacja<strong> <a href=\"https:\/\/www.infoq.com\/presentations\/jit-aot-tradeoffs\">JIT vs. AOT: How to Pick the Right Approach<\/a><\/strong>, maj\u0105ca form\u0119 panelu dyskusyjnego.<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, wszystko co tutaj napisa\u0142em, jest sporym uproszczeniem uproszczeniem dla klarowno\u015bci przekazu. Nie bez powodu <a href=\"https:\/\/openjdk.org\/projects\/leyden\/notes\/02-shift-and-constrain\">Selectively Shifting and Constraining Computation<\/a> czyta si\u0119 te bite 15 minut \ud83d\ude09. Je\u017celi za\u015b chcecie dosta\u0107 bardzo ciekaw\u0105 dyskusje na temat r\u00f3\u017cnych tradeoff\u00f3w, kt\u00f3re maj\u0105 kompilacje JIT i AOT, niedawno ukaza\u0142a si\u0119 na InfoQ prezentacja<strong> <a href=\"https:\/\/www.infoq.com\/presentations\/jit-aot-tradeoffs\">JIT vs. AOT: How to Pick the Right Approach<\/a><\/strong>, maj\u0105ca form\u0119 panelu dyskusyjnego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dlaczego o tym pisz\u0119? Gdy\u017c dobrze ukazuje to, dlaczego tak ci\u0119\u017cko sklasyfikowa\u0107 Leyden, a r\u00f3wnocze\u015bnie pozwala zrozumie\u0107 wiele dzia\u0142a\u0144 projektu. Kiedy w czerwcu tego roku pojawi\u0142a si\u0119 informacja, \u017ce Project Leyden <a href=\"https:\/\/www.infoq.com\/news\/2022\/06\/project-leyden-delays-aot\/\">op\u00f3\u017ani prace nad kompilatorem AoT na rzecz optymalizacji JIT<\/a>, nie oznacza\u0142o to wi\u0119c ca\u0142kowitego shift (hehe) projektu. Po prostu chwilowo koncentracja zosta\u0142a przesuni\u0119ta na innego Condensera. I tutaj w\u0142a\u015bnie przyszed\u0142 czas na powr\u00f3t do oryginalnego tematu - wcalenie GraalVM do OpenJDK pozwala lepiej zintegrowa\u0107 go z Project Leyden. Prawdopodobnie GraalVM po prostu b\u0119dziemy mogli traktowa\u0107 jako jeszcze jeden Condenser. Sprawi to te\u017c, \u017ce ca\u0142y horyzont zwi\u0105zany z kompilacj\u0105 w JVM mo\u017ce wreszcie si\u0119 troch\u0119 wyklarowa\u0107.<\/p>\n","innerContent":["\n<p>Dlaczego o tym pisz\u0119? Gdy\u017c dobrze ukazuje to, dlaczego tak ci\u0119\u017cko sklasyfikowa\u0107 Leyden, a r\u00f3wnocze\u015bnie pozwala zrozumie\u0107 wiele dzia\u0142a\u0144 projektu. Kiedy w czerwcu tego roku pojawi\u0142a si\u0119 informacja, \u017ce Project Leyden <a href=\"https:\/\/www.infoq.com\/news\/2022\/06\/project-leyden-delays-aot\/\">op\u00f3\u017ani prace nad kompilatorem AoT na rzecz optymalizacji JIT<\/a>, nie oznacza\u0142o to wi\u0119c ca\u0142kowitego shift (hehe) projektu. Po prostu chwilowo koncentracja zosta\u0142a przesuni\u0119ta na innego Condensera. I tutaj w\u0142a\u015bnie przyszed\u0142 czas na powr\u00f3t do oryginalnego tematu - wcalenie GraalVM do OpenJDK pozwala lepiej zintegrowa\u0107 go z Project Leyden. Prawdopodobnie GraalVM po prostu b\u0119dziemy mogli traktowa\u0107 jako jeszcze jeden Condenser. Sprawi to te\u017c, \u017ce ca\u0142y horyzont zwi\u0105zany z kompilacj\u0105 w JVM mo\u017ce wreszcie si\u0119 troch\u0119 wyklarowa\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Skacz\u0105c odrobin\u0119 w bok, ale tylko odrobin\u0119, bo dalej w zakresie zainteresowa\u0144 Project Leyden - dopiero co tydzie\u0144 temu mia\u0142em okazj\u0119 pisa\u0107 o do\u0142\u0105czeniu Google do Adoptium Working Group, a ju\u017c mamy okazj\u0119 zobaczy\u0107 pierwsze tego efekty. <a href=\"https:\/\/blog.adoptium.net\/2022\/10\/a-short-exploration-of-java-class-pre-initialization\/\">Adoptium poinformowa\u0142o bowiem<\/a>, \u017ce Google razem z Alibab\u0105 (chi\u0144sk\u0105 firm\u0105 stoj\u0105c\u0105 za AliExpress) zaproponowa\u0142o <a href=\"https:\/\/github.com\/adoptium\/jdk11u-fast-startup-incubator\">projekt Fast Startup Incubator<\/a>. Jego celem s\u0105 eksperymenty maj\u0105ce na celu wypracowanie sposob\u00f3w na szybszy star Javowych aplikacji. Pod uwag\u0119 brane s\u0105 zmiany w <a href=\"https:\/\/nipafx.dev\/java-application-class-data-sharing\/\">Application Class Data Sharing<\/a> (o kt\u00f3rym pisa\u0142 Mark Reinhold w przywo\u0142ywanym tek\u015bcie), a tak\u017ce r\u00f3\u017cne sposoby kompilacji Ahead-of-Time. Jak wida\u0107 wi\u0119c, temat jest bardzo gor\u0105cy i wr\u0119cz bombardowani jeste\u015bmy pracami z r\u00f3\u017cnych kierunk\u00f3w. A pow\u00f3d jest bardzo jasny - ponownie s\u0105 to chmury, Serverless i Edge Computing. Tw\u00f3rcom zar\u00f3wno aplikacji, jak i chmur zale\u017cy, \u017ceby Javy da\u0142o si\u0119 jak najwygodniej u\u017cywa\u0107 w tym kontek\u015bcie. Niezale\u017cnie od rankingu nie wypada ona w ko\u0144cu z listy najpopularniejszych j\u0119zyk\u00f3w programowania.<\/p>\n","innerContent":["\n<p>Skacz\u0105c odrobin\u0119 w bok, ale tylko odrobin\u0119, bo dalej w zakresie zainteresowa\u0144 Project Leyden - dopiero co tydzie\u0144 temu mia\u0142em okazj\u0119 pisa\u0107 o do\u0142\u0105czeniu Google do Adoptium Working Group, a ju\u017c mamy okazj\u0119 zobaczy\u0107 pierwsze tego efekty. <a href=\"https:\/\/blog.adoptium.net\/2022\/10\/a-short-exploration-of-java-class-pre-initialization\/\">Adoptium poinformowa\u0142o bowiem<\/a>, \u017ce Google razem z Alibab\u0105 (chi\u0144sk\u0105 firm\u0105 stoj\u0105c\u0105 za AliExpress) zaproponowa\u0142o <a href=\"https:\/\/github.com\/adoptium\/jdk11u-fast-startup-incubator\">projekt Fast Startup Incubator<\/a>. Jego celem s\u0105 eksperymenty maj\u0105ce na celu wypracowanie sposob\u00f3w na szybszy star Javowych aplikacji. Pod uwag\u0119 brane s\u0105 zmiany w <a href=\"https:\/\/nipafx.dev\/java-application-class-data-sharing\/\">Application Class Data Sharing<\/a> (o kt\u00f3rym pisa\u0142 Mark Reinhold w przywo\u0142ywanym tek\u015bcie), a tak\u017ce r\u00f3\u017cne sposoby kompilacji Ahead-of-Time. Jak wida\u0107 wi\u0119c, temat jest bardzo gor\u0105cy i wr\u0119cz bombardowani jeste\u015bmy pracami z r\u00f3\u017cnych kierunk\u00f3w. A pow\u00f3d jest bardzo jasny - ponownie s\u0105 to chmury, Serverless i Edge Computing. Tw\u00f3rcom zar\u00f3wno aplikacji, jak i chmur zale\u017cy, \u017ceby Javy da\u0142o si\u0119 jak najwygodniej u\u017cywa\u0107 w tym kontek\u015bcie. Niezale\u017cnie od rankingu nie wypada ona w ko\u0144cu z listy najpopularniejszych j\u0119zyk\u00f3w programowania.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11557,"width":443,"height":512,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-885x1024.png\" alt=\"\" class=\"wp-image-11557\" width=\"443\" height=\"512\"\/><figcaption>PS: tak, wiem, w 1997 tu powinien by\u0107 jeszcze Sun... Dalej \u015bmieszne<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-28-885x1024.png\" alt=\"\" class=\"wp-image-11557\" width=\"443\" height=\"512\"\/><figcaption>PS: tak, wiem, w 1997 tu powinien by\u0107 jeszcze Sun... Dalej \u015bmieszne<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 GraalVM, kt\u00f3re pojawi\u0142o si\u0119 w dniu dzisiejszym. Nowa wersja projektu o <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">numerze 22.3<\/a> mo\u017ce pochwali\u0107 si\u0119 wsparciem dla JDK 19 i jego masy eksperymentalnych featur\u00f3w. Jest to mi\u0119dzy innymi Loom, do kt\u00f3rego tw\u00f3rcy przygotowali specjalne demo superwydajnej implementacji <a href=\"https:\/\/github.com\/graalvm\/game-of-life-native\">Gry w \u017bycie<\/a>. Pojawi\u0142 si\u0119 r\u00f3wnie\u017c dost\u0119pny jeszcze w JDK 18 <code>jwebserver<\/code>.<\/p>\n","innerContent":["\n<p>A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 GraalVM, kt\u00f3re pojawi\u0142o si\u0119 w dniu dzisiejszym. Nowa wersja projektu o <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">numerze 22.3<\/a> mo\u017ce pochwali\u0107 si\u0119 wsparciem dla JDK 19 i jego masy eksperymentalnych featur\u00f3w. Jest to mi\u0119dzy innymi Loom, do kt\u00f3rego tw\u00f3rcy przygotowali specjalne demo superwydajnej implementacji <a href=\"https:\/\/github.com\/graalvm\/game-of-life-native\">Gry w \u017bycie<\/a>. Pojawi\u0142 si\u0119 r\u00f3wnie\u017c dost\u0119pny jeszcze w JDK 18 <code>jwebserver<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>U\u0142tawione zosta\u0142o r\u00f3wnie\u017c pobieranie GraalVM. Teraz wystarczy odpali\u0107 komend\u0119<\/p>\n","innerContent":["\n<p>U\u0142tawione zosta\u0142o r\u00f3wnie\u017c pobieranie GraalVM. Teraz wystarczy odpali\u0107 komend\u0119<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>bash &lt;(curl -sL https:\/\/get.graalvm.org\/jdk)<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>bash &lt;(curl -sL https:\/\/get.graalvm.org\/jdk)<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>aby pobra\u0107 aktualn\u0105 wersj\u0119 projektu. Mo\u017ce to by\u0107 przydatne np. w \u015brodowisku CI. Dla wygody nas wszystkich, pojawi\u0142y si\u0119 za\u015b nowe oficjalne <em>Reachability Metadata<\/em> dla takich projekt\u00f3w jak Hibernate, Jetty, Thymeleaf, JAXB.<\/p>\n","innerContent":["\n<p>aby pobra\u0107 aktualn\u0105 wersj\u0119 projektu. Mo\u017ce to by\u0107 przydatne np. w \u015brodowisku CI. Dla wygody nas wszystkich, pojawi\u0142y si\u0119 za\u015b nowe oficjalne <em>Reachability Metadata<\/em> dla takich projekt\u00f3w jak Hibernate, Jetty, Thymeleaf, JAXB.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli chodzi o internale, to tu te\u017c jest ciekawie. min. poprzez wsparcie <code>jlink<\/code> czy nowa wersja <strong>Native Build Tools 0.9.15<\/strong>. Tw\u00f3rcy narz\u0119dzi otrzymali za\u015b nowe <strong>Native Image API<\/strong>, kt\u00f3re pom\u00f3c ma na integracje narz\u0119dzi zewn\u0119trznych z GraalVM.<\/p>\n","innerContent":["\n<p>Je\u015bli chodzi o internale, to tu te\u017c jest ciekawie. min. poprzez wsparcie <code>jlink<\/code> czy nowa wersja <strong>Native Build Tools 0.9.15<\/strong>. Tw\u00f3rcy narz\u0119dzi otrzymali za\u015b nowe <strong>Native Image API<\/strong>, kt\u00f3re pom\u00f3c ma na integracje narz\u0119dzi zewn\u0119trznych z GraalVM.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ju\u017c na samo zako\u0144czenie, nie mog\u0119 nie wspomnie\u0107 o tym, \u017ce projekt otrzyma\u0142 swoj\u0105 w\u0142asn\u0105 maskotk\u0119. Jest ni\u0105 Grabbit i przyznam szczerze, jest ostatni\u0105 rzecz\u0105 kt\u00f3ra kojarzy mi si\u0119 z Graal VM, ale ja og\u00f3lnie bardzo lubi\u0119, gdy projekty programistyczne maj\u0105 maskotki... mocno wi\u0119c propsuje.<\/p>\n","innerContent":["\n<p>Ju\u017c na samo zako\u0144czenie, nie mog\u0119 nie wspomnie\u0107 o tym, \u017ce projekt otrzyma\u0142 swoj\u0105 w\u0142asn\u0105 maskotk\u0119. Jest ni\u0105 Grabbit i przyznam szczerze, jest ostatni\u0105 rzecz\u0105 kt\u00f3ra kojarzy mi si\u0119 z Graal VM, ale ja og\u00f3lnie bardzo lubi\u0119, gdy projekty programistyczne maj\u0105 maskotki... mocno wi\u0119c propsuje.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":[],"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/181iWqmXga91wgjk3qztbog.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/181iWqmXga91wgjk3qztbog.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Polecam lektur\u0119 samego <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">postu releasowego<\/a>, w kt\u00f3rym tw\u00f3rcy chwal\u0105 si\u0119 aktualizacjami dla \u015brodowisk uruchomieniowych innych ni\u017c Java, ale tak\u017ce poprawkami w samym kompilatorze.<\/p>\n","innerContent":["\n<p>Polecam lektur\u0119 samego <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95\">postu releasowego<\/a>, w kt\u00f3rym tw\u00f3rcy chwal\u0105 si\u0119 aktualizacjami dla \u015brodowisk uruchomieniowych innych ni\u017c Java, ale tak\u017ce poprawkami w samym kompilatorze.<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11527","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=11527"}],"version-history":[{"count":20,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11527\/revisions"}],"predecessor-version":[{"id":11575,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11527\/revisions\/11575"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/11561"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=11527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=11527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=11527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}