{"id":17562,"date":"2024-01-25T10:30:24","date_gmt":"2024-01-25T09:30:24","guid":{"rendered":"https:\/\/vived.io\/?p=17562"},"modified":"2024-01-25T10:45:11","modified_gmt":"2024-01-25T09:45:11","slug":"amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/","title":{"rendered":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024  \u2013 JVM Weekly vol. 162"},"content":{"rendered":"\n<h2 id=\"1-plany-javy-na-2024\" data-num=1>1. Plany Javy na 2024<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-1024x585.png\" alt=\"\" class=\"wp-image-17563\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Zacznijmy od video &#8211; Nicolai Parlog, Developer Advocate Javy, opublikowa\u0142 video z planami rozwoju j\u0119zyka na najbli\u017csze dwana\u015bcie miesi\u0119cy:<\/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=\"Java&#039;s Plans for 2024 - Inside Java Newscast #61\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/iL7d-gGrms8?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<p>TLDW: W 2024 roku Jav\u0119 b\u0119dzie rozwija\u0107 si\u0119 przez projekty dobrze znane, jak Amber (dla mniejszych funkcji zwi\u0119kszaj\u0105cych produktywno\u015b\u0107) czy Valhalla (ulepszaj\u0105cy model obiektowy Javy poprzez warto\u015bciowe obiekty dla lepszej wydajno\u015bci), ale te\u017c nowe, jak Babylon (rozszerzaj\u0105cy Jav\u0119 o tak zwan\u0105&nbsp;Code Reflection). Te projekty, a tak\u017ce znane ju\u017c Leyden, Lilliput, Panama i Loom (kt\u00f3ry osi\u0105gn\u0105\u0142 wi\u0119kszo\u015b\u0107 celi i b\u0119dzie stopniowo wygaszany), maj\u0105 na celu ulepszenie Javy w obszarach takich jak refleksja kodu, czas uruchamiania, efektywno\u015b\u0107 pami\u0119ciowa, kompatybilno\u015b\u0107 z natywnym kodem czy wsp\u00f3\u0142bie\u017cno\u015b\u0107. Nie spodziewajcie si\u0119, \u017ce wszystkie dzia\u0142ania zamkn\u0105 si\u0119 w bie\u017c\u0105cym roku &#8211; wiele z powy\u017cszych zapewni\u0119 przeci\u0105gnie si\u0119 na rok 2025.<\/p>\n\n\n\n<p>Na kt\u00f3ry projekt czekacie najbardziej? Bo ja si\u0119 bije z my\u015blami, czy bardziej ciesz\u0119 si\u0119 na Leyden czy Babylon. Ten drugi ostatnio doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/airhacks.fm\/#episode_277\">ciekawego epizodu airhacks.fm<\/a> od <a href=\"https:\/\/twitter.com\/AdamBien?\">Adama Biena<\/a>, w kt\u00f3rym w ponad godzinnej rozmowie <a href=\"https:\/\/twitter.com\/PaulSandoz\">Paul Sandoz<\/a> ods\u0142oni\u0142 sporo detali stoj\u0105cych za Babylonem.<\/p>\n\n\n\n<p>Dostali\u015bmy te\u017c pierwsze informacje w kontek\u015bcie przysz\u0142o\u015bci Projektu Amber. <a href=\"https:\/\/twitter.com\/BrianGoetz\">Brian Goetz<\/a> w klasycznej dla siebie formie mailo-eseju <strong><a href=\"https:\/\/mail.openjdk.org\/pipermail\/amber-spec-experts\/2024-January\/003976.html\">Towards member patterns<\/a><\/strong> przedstawia kompleksowy pogl\u0105d na przysz\u0142\u0105 ewolucj\u0119 pattern matchingu w Javie. W nim Goetz proponuje model mentalny dla dalszej integracji Pattern Matchingu w szerszym kontek\u015bcie modelu obiektowego Java. Mo\u017cna sobie wyobrazi\u0107 wzorce jako odwrotne konstruktory i metody, gdzie zwi\u0105zek mi\u0119dzy wej\u015bciami a wyj\u015bciami jest odwr\u00f3cony w por\u00f3wnaniu do tradycyjnych metod. Zasada dualno\u015bci prowadzi do bardziej sp\u00f3jnego projektowania API, poniewa\u017c zach\u0119ca programist\u00f3w do my\u015blenia o metodach i wzorcach jako o powi\u0105zanych parach.<\/p>\n\n\n\n<p>Wraca wi\u0119c prezentowany kiedy\u015b konceptu &#8222;wzorc\u00f3w dekonstrukcyjnych&#8221;, kt\u00f3re pozwalaj\u0105 ka\u017cdej klasie zadeklarowa\u0107 wyra\u017any wzorzec do dekonstrukcji, stanowi\u0105c uog\u00f3lnienie nad istniej\u0105cym pattern matchingiem dla Rekord\u00f3w. Tekst przedstawia przyk\u0142adowo koncept wzorc\u00f3w statycznych, kt\u00f3re mog\u0105 by\u0107 u\u017cywane dla klas preferuj\u0105cych statyczne fabryki nad konstruktorami. Wida\u0107, \u017ce Goetz my\u015bli o Pattern Matchingu holistycznie i stara si\u0119 obs\u0142u\u017cy\u0107 jak najwi\u0119cej case. Tekst podkre\u015bla jednak, \u017ce nie wszystkie maj\u0105 odwrotno\u015bci, poniewa\u017c niekt\u00f3re operacje, zw\u0142aszcza te wi\u0105\u017c\u0105ce si\u0119 z efektami ubocznymi lub skomplikowanym przeplataj\u0105cym si\u0119 argumentami, nie nadaj\u0105 si\u0119 do takiej prostej inwersji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"499\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12.png\" alt=\"\" class=\"wp-image-17565\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12.png 808w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12-300x185.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12-768x474.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><figcaption class=\"wp-element-caption\">Podtrzymuje swoje twierdzenie: Java jest najrozs\u0105dniej rozwijanym j\u0119zykiem programowania.<\/figcaption><\/figure><\/div>\n\n\n<h2 id=\"2-rowniez-poczatkiem-roku-nowe-jep-y\" data-num=2>2. R\u00f3wnie\u017c pocz\u0105tkiem roku &#8211; Nowe JEP-y<\/h2>\n\n\n\n<p>Pozostaniemy w tematach przysz\u0142o\u015bci Javy, poniewa\u017c pocz\u0105tek roku to te\u017c kilka nowych propsali. Opr\u00f3cz kilku update&#8217;\u00f3w (kt\u00f3re troch\u0119 p\u00f3\u017aniej) mamy te\u017c absolutne nowinki, jak cho\u0107by<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323072\">JEP draft: Deprecate Memory-Access Methods in sun.misc.Unsafe for Removal<\/a><\/h3>\n\n\n\n<p>No to wchodzimy w 2024 z przytupem, celem powy\u017cszego JEP-a jest bowiem deprekacja, a ostatecznie usuni\u0119cie metod umo\u017cliwiaj\u0105cych dost\u0119p do pami\u0119ci z klasy <code>sun.misc.Unsafe<\/code>, kt\u00f3re powinny by\u0107 internalowe dla JDK, ale przez lata by\u0142a u\u017cywana przez r\u00f3\u017cne projekty, kt\u00f3re chcia\u0142y mie\u0107 bezpo\u015bredni\u0105 mo\u017cliwo\u015b\u0107 zarz\u0105dzania pami\u0119ci\u0105 systemu operacyjnego (tak zwanej off-heap). Propozycja pojawia si\u0119 w \u015bwietle bezpieczniejszych i bardziej wydajnych alternatyw: <code>VarHandle<\/code> w JDK 9 dla pami\u0119ci na stercie i <code>MemorySegment<\/code> w JDK 22 dla pami\u0119ci off-heap.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"690\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-13.png\" alt=\"\" class=\"wp-image-17568\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-13.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-13-217x300.png 217w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Big Data przed Project Panama<\/figcaption><\/figure><\/div>\n\n\n<p>W pierwszej fazie wszystkie metody dost\u0119pu do pami\u0119ci w <code>sun.misc.Unsafe<\/code> zostan\u0105 oznaczone jako <em>deprecated<\/em>, produkuj\u0105c ostrze\u017cenia podczas kompilacji. W nast\u0119pnych krokach ich u\u017cycie b\u0119dzie powodowa\u0142o b\u0142\u0119dy kompilacji, z mo\u017cliwo\u015bci\u0105 przekazania odpowiedniej flagi pozwalaj\u0105c\u0105 na ich wy\u0142\u0105czenie. Nast\u0119pnie dojdzie do sekwencyjnego usuwania metod, najpier operuj\u0105cych na heap, a nast\u0119pnie tych off-heap. Proces b\u0119dzie wi\u0119c stopniowy, co pozwoli zminimalizowa\u0107 wp\u0142yw na istniej\u0105ce biblioteki i aplikacje. Co ciekawe, JEP nie ma na celu usuni\u0119cia klasy <code>sun.misc.Unsafe<\/code> w ca\u0142o\u015bci, a konkretnych metod u\u017cywanych do dost\u0119pu do pami\u0119ci &#8211; jednak w przysz\u0142o\u015bci planowane jest stopniowe pozbywanie si\u0119 pozosta\u0142ych operacji.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323335\">JEP draft: Implicitly Declared Classes and Instance Main Methods (Final)<\/a><\/h3>\n\n\n\n<p>Prace koncentruj\u0105ce si\u0119 na uczynieniu Javy bardziej dost\u0119pnym dla pocz\u0105tkuj\u0105cych zbli\u017caj\u0105 si\u0119 ku ko\u0144cowi. Wygl\u0105da na to, \u017ce druga wersja preview, kt\u00f3r\u0105 zobaczymy w JDK 22 jest rozwi\u0105zaniem ostatecznym. Wersja finalna nie wprowadza bowiem \u017cadnych zmian, a tylko stabilizuje zaproponowane API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323333\">JEP draft: String Templates (Final)<\/a><\/h3>\n\n\n\n<p>Dok\u0142adnie tak samo wygl\u0105da kwestia String Templates. Wszystko wskazuje na to, \u017ce te zostan\u0105 ustabilizowane w wersji zgodnej z tym, co zobaczymy <a href=\"https:\/\/openjdk.org\/jeps\/459\">przy okazji JDK 22<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)<\/a><\/h3>\n\n\n\n<p>Powy\u017csze to tylko drafty, ale doczekali\u015bmy si\u0119 pierwszego JEPa <a href=\"https:\/\/openjdk.org\/projects\/jdk\/23\/\">targetowanego na wydanie JDK 23<\/a>. Jest to te\u017c&nbsp;JEP szalenie ciekawy, poniewa\u017c mowa o featurze, kt\u00f3ry jest strikte powi\u0105zany z Project Valhalla.<\/p>\n\n\n\n<p>To po kolei, dla tych kt\u00f3rzy gubi\u0105 si\u0119 ju\u017c troch\u0119 w nowej terminologii. Project Valhalla wprowadza w Javie now\u0105 koncepcj\u0119 znana jako &#8222;Primitive Types&#8221;, kt\u00f3ra ma na celu \u0142\u0105czenie zalet typ\u00f3w prymitywnych \u2013 takich jak int czy double \u2013 z elastyczno\u015bci\u0105 obiekt\u00f3w. G\u0142\u00f3wnym celem Primitive Types jest umo\u017cliwienie tworzenia typ\u00f3w danych, kt\u00f3re dzia\u0142aj\u0105 z wydajno\u015bci\u0105 typ\u00f3w prymitywnych, jednocze\u015bnie oferuj\u0105c mo\u017cliwo\u015bci obiekt\u00f3w, takie jak mo\u017cliwo\u015b\u0107 u\u017cycia jako typy generyczne i w kolekcjach. Ich cechy i charakterystyka ewoluowa\u0142y wraz z kolejnymi iteracjami Valhalli, a teraz wreszcie dostali\u015bmy pierwszego zwi\u0105zanego z nimi JEP-a, kt\u00f3ry zosta\u0142 stargetowany na konkretne wydanie JDK.<\/p>\n\n\n\n<p><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455<\/a> koncentruje si\u0119 na rozbudowie dopasowywania wzorc\u00f3w poprzez wprowadzenie Pattern Matchingu dla typ\u00f3w prymitywnych dla instrukcji <code>instanceof<\/code> i <code>switch<\/code> i ma na celu ujednolicenie traktowania wszystkich typ\u00f3w danych (zgodnie z wcze\u015bniej przedstawionym, maksymalistycznym podej\u015bciem Briana Goetza).<\/p>\n\n\n\n<p>Ciekawe jest to, \u017ce ca\u0142o\u015b\u0107 zosta\u0142a opublikowana jeszcze zanim dostali\u015bmy finalny proposal dotycz\u0105cy samych typ\u00f3w prymitywnych. W praktyce oznacza to, \u017ce praca pewnie wrze i mo\u017cemy nied\u0142ugo spodziewa\u0107 si\u0119 nowych og\u0142osze\u0144. Ca\u0142o\u015b\u0107 mocno zaostrzy\u0142a m\u00f3j apetyt na JDK 23 &#8211; oznacza bowiem, \u017ce jest to wydanie, kt\u00f3re powinno zawiera\u0107 znacznie wi\u0119cej niespodzianek zwi\u0105zanych z Valhall\u0105.<\/p>\n\n\n\n<h2 id=\"3-jakarta-ee-11-jednak-ze-wsparciem-dla-jdk-17\" data-num=3>3. Jakarta EE 11 jednak ze wsparciem dla JDK 17<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-1024x585.png\" alt=\"\" class=\"wp-image-17571\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Mia\u0142em wra\u017cenie, \u017ce ostatni okres to ci\u0105g\u0142e prze\u015bciganie si\u0119 poszczeg\u00f3lnych projekt\u00f3w o to, kto b\u0119dzie wymaga\u0142 najnowszej wersji Javy. \u017beby nie szuka\u0107 daleko, taki Spring Boot 3.0 czy nowe wydanie Quarkusa to minimalnie JDK 17, Helidon podbija stawk\u0119, bo dla wersji 4.0 wymaga ju\u017c JDK 21 &#8211; a podobnych og\u0142osze\u0144 nie brakowa\u0142o. Podobnie ambitne cele mia\u0142o Eclipse Foundation, kt\u00f3re to og\u0142asza\u0142o, \u017ce ze wzgl\u0119du na wst\u0119pne wsparcie dla Wirtualnych W\u0105tk\u00f3w w Jakarta Concurrency 3.1, od wydania Jakarta EE 11 programi\u015bci b\u0119d\u0105 musieli u\u017cywa\u0107 w\u0142a\u015bnie JDK 21. Pocz\u0105tek 2024 przyni\u00f3s\u0142 jednak og\u0142oszenia o zmianach.<\/p>\n\n\n\n<p>Ivar Grimstad, Developer Advocate Jakarta EE, <a href=\"https:\/\/www.agilejava.eu\/2024\/01\/21\/hashtag-jakarta-ee-212\/\">poinformowa\u0142 bowiem o kroku wstecz<\/a> &#8211; tw\u00f3rcy nowej wersji zdecydowali bowiem, \u017ce zmieniaj\u0105 decyzje i b\u0119d\u0105 wspiera\u0107 r\u00f3wnie\u017c JDK 17, a \u017ceby otrzyma\u0107 certyfikacje, implementacje standardu musz\u0105 spe\u0142nia\u0107 specyfikacje zar\u00f3wno na JDK 17, jak i 21. Decyzja ta wynika z obecnych trend\u00f3w w zakresie adopcji technologii i preferencji u\u017cytkownik\u00f3w. Dane z New Relic i telemetrii VSCode Java wskazuj\u0105 na znacz\u0105ce preferencje dla Java SE 17 lub ni\u017cszych wersji, sugeruj\u0105c, \u017ce wym\u00f3g korzystania z Java SE 21 mo\u017ce by\u0107 zbyt du\u017cym ograniczeniem. Wsparcie zar\u00f3wno dla Java SE 17, jak i 21 zapewnia, \u017ce migracja na Jakarta EE 11 b\u0119dzie \u0142atwiejsza. Zgodnie z dyskusj\u0105 w <a href=\"https:\/\/github.com\/jakartaee\/platform\/issues\/820\">GitHub Issue<\/a>, wsparcie dla Wirtualnych W\u0105tk\u00f3w ci\u0105gle pozostaje w zakresie wydania, po prostu w wypadku uruchomienia na JDK 17 API zwi\u0105zane z Virtual Threads b\u0119d\u0105 wykorzystywa\u0142y klasyczne w\u0105tki. Jak to okre\u015bla <a href=\"https:\/\/github.com\/jakartaee\/concurrency\/blob\/main\/api\/src\/main\/java\/jakarta\/enterprise\/concurrent\/ManagedThreadFactoryDefinition.java#L190\">dokumentacja<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>When {@code true}, the thread factory can create<br>* virtual threads if it is capable of doing so<br>* and if the request is not overridden by vendor-specific<br>* configuration that restricts the use of virtual threads.<\/p>\n<\/blockquote>\n\n\n\n<p>Powiedzmy sobie szczerze &#8211; wsparcie dla JDK 17 ma sens. Jakarta EE nigdy nie by\u0142a standardem, kt\u00f3ry wyznacza\u0142 trendy, a raczej stanowi\u0142 pewn\u0105 oaz\u0119 stabilno\u015bci, wi\u0119c szersza kompatybilno\u015b\u0107 w tym wypadku ma sens. Szkoda by by\u0142o, \u017ceby jedno jedyne API (Jakarta Concurrency 3.1) tak mocno utrudnia\u0142o upgrade, zw\u0142aszcza w organizacjach kt\u00f3re maj\u0105 bardzo \u015bcis\u0142e zasady dotycz\u0105ce dopuszczonych wersji JDK. Wa\u017cne, \u017ceby tw\u00f3rcy nie byli ograniczani przez kurczowe trzymanie si\u0119 kompatybilno\u015bci, ale kiedy i tak mowa by\u0142a tylko o jednym API, jest to dla mnie zrozumia\u0142y kompromis.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"180\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-15.png\" alt=\"\" class=\"wp-image-17573\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-15.png 566w, https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-15-300x95.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption class=\"wp-element-caption\">Mam tylko nadzieje, \u017ce programi\u015bci czytaj\u0105 docsy i nikt nie zdziwi si\u0119 podczas incydentu, \u017ce jednak niechn\u0105cy u\u017cy\u0142 klasycznych w\u0105tk\u00f3w.<\/figcaption><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Dzisiaj skupimy si\u0119 na przysz\u0142o\u015bci i 2024, skupiaj\u0105c si\u0119 na og\u0142oszeniach dotycz\u0105cych tego, czego mo\u017cna si\u0119 spodziewa\u0107 w przysz\u0142ym roku. <\/p>\n","protected":false},"author":10,"featured_media":17580,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-17562","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"7","feature_image_blog":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780-1.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>Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - 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\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj skupimy si\u0119 na przysz\u0142o\u015bci i 2024, skupiaj\u0105c si\u0119 na og\u0142oszeniach dotycz\u0105cych tego, czego mo\u017cna si\u0119 spodziewa\u0107 w przysz\u0142ym roku.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-25T09:30:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-25T09:45:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\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\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162\",\"datePublished\":\"2024-01-25T09:30:24+00:00\",\"dateModified\":\"2024-01-25T09:45:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\"},\"wordCount\":1507,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\",\"url\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\",\"name\":\"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png\",\"datePublished\":\"2024-01-25T09:30:24+00:00\",\"dateModified\":\"2024-01-25T09:45:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162\"}]},{\"@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":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - 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\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/","og_locale":"pl_PL","og_type":"article","og_title":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - Vived","og_description":"Dzisiaj skupimy si\u0119 na przysz\u0142o\u015bci i 2024, skupiaj\u0105c si\u0119 na og\u0142oszeniach dotycz\u0105cych tego, czego mo\u017cna si\u0119 spodziewa\u0107 w przysz\u0142ym roku.","og_url":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/","og_site_name":"Vived","article_published_time":"2024-01-25T09:30:24+00:00","article_modified_time":"2024-01-25T09:45:11+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.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\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162","datePublished":"2024-01-25T09:30:24+00:00","dateModified":"2024-01-25T09:45:11+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/"},"wordCount":1507,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/","url":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/","name":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png","datePublished":"2024-01-25T09:30:24+00:00","dateModified":"2024-01-25T09:45:11+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/Group-780.png","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/amber-babylon-sun-misc-unsafe-i-reszta-plany-na-2024-jvm-weekly-vol-162\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Amber, Babylon, sun.misc.Unsafe i reszta: Plany na 2024 \u2013 JVM Weekly vol. 162"}]},{"@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\">1. Plany Javy na 2024<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Plany Javy na 2024<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17563,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-1024x585.png\" alt=\"\" class=\"wp-image-17563\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-11-1024x585.png\" alt=\"\" class=\"wp-image-17563\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od video - Nicolai Parlog, Developer Advocate Javy, opublikowa\u0142 video z planami rozwoju j\u0119zyka na najbli\u017csze dwana\u015bcie miesi\u0119cy:<\/p>\n","innerContent":["\n<p>Zacznijmy od video - Nicolai Parlog, Developer Advocate Javy, opublikowa\u0142 video z planami rozwoju j\u0119zyka na najbli\u017csze dwana\u015bcie miesi\u0119cy:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=iL7d-gGrms8","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=iL7d-gGrms8\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=iL7d-gGrms8\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>TLDW: W 2024 roku Jav\u0119 b\u0119dzie rozwija\u0107 si\u0119 przez projekty dobrze znane, jak Amber (dla mniejszych funkcji zwi\u0119kszaj\u0105cych produktywno\u015b\u0107) czy Valhalla (ulepszaj\u0105cy model obiektowy Javy poprzez warto\u015bciowe obiekty dla lepszej wydajno\u015bci), ale te\u017c nowe, jak Babylon (rozszerzaj\u0105cy Jav\u0119 o tak zwan\u0105&nbsp;Code Reflection). Te projekty, a tak\u017ce znane ju\u017c Leyden, Lilliput, Panama i Loom (kt\u00f3ry osi\u0105gn\u0105\u0142 wi\u0119kszo\u015b\u0107 celi i b\u0119dzie stopniowo wygaszany), maj\u0105 na celu ulepszenie Javy w obszarach takich jak refleksja kodu, czas uruchamiania, efektywno\u015b\u0107 pami\u0119ciowa, kompatybilno\u015b\u0107 z natywnym kodem czy wsp\u00f3\u0142bie\u017cno\u015b\u0107. Nie spodziewajcie si\u0119, \u017ce wszystkie dzia\u0142ania zamkn\u0105 si\u0119 w bie\u017c\u0105cym roku - wiele z powy\u017cszych zapewni\u0119 przeci\u0105gnie si\u0119 na rok 2025.<\/p>\n","innerContent":["\n<p>TLDW: W 2024 roku Jav\u0119 b\u0119dzie rozwija\u0107 si\u0119 przez projekty dobrze znane, jak Amber (dla mniejszych funkcji zwi\u0119kszaj\u0105cych produktywno\u015b\u0107) czy Valhalla (ulepszaj\u0105cy model obiektowy Javy poprzez warto\u015bciowe obiekty dla lepszej wydajno\u015bci), ale te\u017c nowe, jak Babylon (rozszerzaj\u0105cy Jav\u0119 o tak zwan\u0105&nbsp;Code Reflection). Te projekty, a tak\u017ce znane ju\u017c Leyden, Lilliput, Panama i Loom (kt\u00f3ry osi\u0105gn\u0105\u0142 wi\u0119kszo\u015b\u0107 celi i b\u0119dzie stopniowo wygaszany), maj\u0105 na celu ulepszenie Javy w obszarach takich jak refleksja kodu, czas uruchamiania, efektywno\u015b\u0107 pami\u0119ciowa, kompatybilno\u015b\u0107 z natywnym kodem czy wsp\u00f3\u0142bie\u017cno\u015b\u0107. Nie spodziewajcie si\u0119, \u017ce wszystkie dzia\u0142ania zamkn\u0105 si\u0119 w bie\u017c\u0105cym roku - wiele z powy\u017cszych zapewni\u0119 przeci\u0105gnie si\u0119 na rok 2025.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na kt\u00f3ry projekt czekacie najbardziej? Bo ja si\u0119 bije z my\u015blami, czy bardziej ciesz\u0119 si\u0119 na Leyden czy Babylon. Ten drugi ostatnio doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/airhacks.fm\/#episode_277\">ciekawego epizodu airhacks.fm<\/a> od <a href=\"https:\/\/twitter.com\/AdamBien?\">Adama Biena<\/a>, w kt\u00f3rym w ponad godzinnej rozmowie <a href=\"https:\/\/twitter.com\/PaulSandoz\">Paul Sandoz<\/a> ods\u0142oni\u0142 sporo detali stoj\u0105cych za Babylonem.<\/p>\n","innerContent":["\n<p>Na kt\u00f3ry projekt czekacie najbardziej? Bo ja si\u0119 bije z my\u015blami, czy bardziej ciesz\u0119 si\u0119 na Leyden czy Babylon. Ten drugi ostatnio doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/airhacks.fm\/#episode_277\">ciekawego epizodu airhacks.fm<\/a> od <a href=\"https:\/\/twitter.com\/AdamBien?\">Adama Biena<\/a>, w kt\u00f3rym w ponad godzinnej rozmowie <a href=\"https:\/\/twitter.com\/PaulSandoz\">Paul Sandoz<\/a> ods\u0142oni\u0142 sporo detali stoj\u0105cych za Babylonem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dostali\u015bmy te\u017c pierwsze informacje w kontek\u015bcie przysz\u0142o\u015bci Projektu Amber. <a href=\"https:\/\/twitter.com\/BrianGoetz\">Brian Goetz<\/a> w klasycznej dla siebie formie mailo-eseju <strong><a href=\"https:\/\/mail.openjdk.org\/pipermail\/amber-spec-experts\/2024-January\/003976.html\">Towards member patterns<\/a><\/strong> przedstawia kompleksowy pogl\u0105d na przysz\u0142\u0105 ewolucj\u0119 pattern matchingu w Javie. W nim Goetz proponuje model mentalny dla dalszej integracji Pattern Matchingu w szerszym kontek\u015bcie modelu obiektowego Java. Mo\u017cna sobie wyobrazi\u0107 wzorce jako odwrotne konstruktory i metody, gdzie zwi\u0105zek mi\u0119dzy wej\u015bciami a wyj\u015bciami jest odwr\u00f3cony w por\u00f3wnaniu do tradycyjnych metod. Zasada dualno\u015bci prowadzi do bardziej sp\u00f3jnego projektowania API, poniewa\u017c zach\u0119ca programist\u00f3w do my\u015blenia o metodach i wzorcach jako o powi\u0105zanych parach.<\/p>\n","innerContent":["\n<p>Dostali\u015bmy te\u017c pierwsze informacje w kontek\u015bcie przysz\u0142o\u015bci Projektu Amber. <a href=\"https:\/\/twitter.com\/BrianGoetz\">Brian Goetz<\/a> w klasycznej dla siebie formie mailo-eseju <strong><a href=\"https:\/\/mail.openjdk.org\/pipermail\/amber-spec-experts\/2024-January\/003976.html\">Towards member patterns<\/a><\/strong> przedstawia kompleksowy pogl\u0105d na przysz\u0142\u0105 ewolucj\u0119 pattern matchingu w Javie. W nim Goetz proponuje model mentalny dla dalszej integracji Pattern Matchingu w szerszym kontek\u015bcie modelu obiektowego Java. Mo\u017cna sobie wyobrazi\u0107 wzorce jako odwrotne konstruktory i metody, gdzie zwi\u0105zek mi\u0119dzy wej\u015bciami a wyj\u015bciami jest odwr\u00f3cony w por\u00f3wnaniu do tradycyjnych metod. Zasada dualno\u015bci prowadzi do bardziej sp\u00f3jnego projektowania API, poniewa\u017c zach\u0119ca programist\u00f3w do my\u015blenia o metodach i wzorcach jako o powi\u0105zanych parach.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wraca wi\u0119c prezentowany kiedy\u015b konceptu \"wzorc\u00f3w dekonstrukcyjnych\", kt\u00f3re pozwalaj\u0105 ka\u017cdej klasie zadeklarowa\u0107 wyra\u017any wzorzec do dekonstrukcji, stanowi\u0105c uog\u00f3lnienie nad istniej\u0105cym pattern matchingiem dla Rekord\u00f3w. Tekst przedstawia przyk\u0142adowo koncept wzorc\u00f3w statycznych, kt\u00f3re mog\u0105 by\u0107 u\u017cywane dla klas preferuj\u0105cych statyczne fabryki nad konstruktorami. Wida\u0107, \u017ce Goetz my\u015bli o Pattern Matchingu holistycznie i stara si\u0119 obs\u0142u\u017cy\u0107 jak najwi\u0119cej case. Tekst podkre\u015bla jednak, \u017ce nie wszystkie maj\u0105 odwrotno\u015bci, poniewa\u017c niekt\u00f3re operacje, zw\u0142aszcza te wi\u0105\u017c\u0105ce si\u0119 z efektami ubocznymi lub skomplikowanym przeplataj\u0105cym si\u0119 argumentami, nie nadaj\u0105 si\u0119 do takiej prostej inwersji.<\/p>\n","innerContent":["\n<p>Wraca wi\u0119c prezentowany kiedy\u015b konceptu \"wzorc\u00f3w dekonstrukcyjnych\", kt\u00f3re pozwalaj\u0105 ka\u017cdej klasie zadeklarowa\u0107 wyra\u017any wzorzec do dekonstrukcji, stanowi\u0105c uog\u00f3lnienie nad istniej\u0105cym pattern matchingiem dla Rekord\u00f3w. Tekst przedstawia przyk\u0142adowo koncept wzorc\u00f3w statycznych, kt\u00f3re mog\u0105 by\u0107 u\u017cywane dla klas preferuj\u0105cych statyczne fabryki nad konstruktorami. Wida\u0107, \u017ce Goetz my\u015bli o Pattern Matchingu holistycznie i stara si\u0119 obs\u0142u\u017cy\u0107 jak najwi\u0119cej case. Tekst podkre\u015bla jednak, \u017ce nie wszystkie maj\u0105 odwrotno\u015bci, poniewa\u017c niekt\u00f3re operacje, zw\u0142aszcza te wi\u0105\u017c\u0105ce si\u0119 z efektami ubocznymi lub skomplikowanym przeplataj\u0105cym si\u0119 argumentami, nie nadaj\u0105 si\u0119 do takiej prostej inwersji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17565,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12.png\" alt=\"\" class=\"wp-image-17565\"\/><figcaption class=\"wp-element-caption\">Podtrzymuje swoje twierdzenie: Java jest najrozs\u0105dniej rozwijanym j\u0119zykiem programowania.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-12.png\" alt=\"\" class=\"wp-image-17565\"\/><figcaption class=\"wp-element-caption\">Podtrzymuje swoje twierdzenie: Java jest najrozs\u0105dniej rozwijanym j\u0119zykiem programowania.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">2. R\u00f3wnie\u017c pocz\u0105tkiem roku - Nowe JEP-y<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. R\u00f3wnie\u017c pocz\u0105tkiem roku - Nowe JEP-y<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pozostaniemy w tematach przysz\u0142o\u015bci Javy, poniewa\u017c pocz\u0105tek roku to te\u017c kilka nowych propsali. Opr\u00f3cz kilku update'\u00f3w (kt\u00f3re troch\u0119 p\u00f3\u017aniej) mamy te\u017c absolutne nowinki, jak cho\u0107by<\/p>\n","innerContent":["\n<p>Pozostaniemy w tematach przysz\u0142o\u015bci Javy, poniewa\u017c pocz\u0105tek roku to te\u017c kilka nowych propsali. Opr\u00f3cz kilku update'\u00f3w (kt\u00f3re troch\u0119 p\u00f3\u017aniej) mamy te\u017c absolutne nowinki, jak cho\u0107by<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323072\">JEP draft: Deprecate Memory-Access Methods in sun.misc.Unsafe for Removal<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323072\">JEP draft: Deprecate Memory-Access Methods in sun.misc.Unsafe for Removal<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No to wchodzimy w 2024 z przytupem, celem powy\u017cszego JEP-a jest bowiem deprekacja, a ostatecznie usuni\u0119cie metod umo\u017cliwiaj\u0105cych dost\u0119p do pami\u0119ci z klasy <code>sun.misc.Unsafe<\/code>, kt\u00f3re powinny by\u0107 internalowe dla JDK, ale przez lata by\u0142a u\u017cywana przez r\u00f3\u017cne projekty, kt\u00f3re chcia\u0142y mie\u0107 bezpo\u015bredni\u0105 mo\u017cliwo\u015b\u0107 zarz\u0105dzania pami\u0119ci\u0105 systemu operacyjnego (tak zwanej off-heap). Propozycja pojawia si\u0119 w \u015bwietle bezpieczniejszych i bardziej wydajnych alternatyw: <code>VarHandle<\/code> w JDK 9 dla pami\u0119ci na stercie i <code>MemorySegment<\/code> w JDK 22 dla pami\u0119ci off-heap.<\/p>\n","innerContent":["\n<p>No to wchodzimy w 2024 z przytupem, celem powy\u017cszego JEP-a jest bowiem deprekacja, a ostatecznie usuni\u0119cie metod umo\u017cliwiaj\u0105cych dost\u0119p do pami\u0119ci z klasy <code>sun.misc.Unsafe<\/code>, kt\u00f3re powinny by\u0107 internalowe dla JDK, ale przez lata by\u0142a u\u017cywana przez r\u00f3\u017cne projekty, kt\u00f3re chcia\u0142y mie\u0107 bezpo\u015bredni\u0105 mo\u017cliwo\u015b\u0107 zarz\u0105dzania pami\u0119ci\u0105 systemu operacyjnego (tak zwanej off-heap). Propozycja pojawia si\u0119 w \u015bwietle bezpieczniejszych i bardziej wydajnych alternatyw: <code>VarHandle<\/code> w JDK 9 dla pami\u0119ci na stercie i <code>MemorySegment<\/code> w JDK 22 dla pami\u0119ci off-heap.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17568,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-13.png\" alt=\"\" class=\"wp-image-17568\"\/><figcaption class=\"wp-element-caption\">Big Data przed Project Panama<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-13.png\" alt=\"\" class=\"wp-image-17568\"\/><figcaption class=\"wp-element-caption\">Big Data przed Project Panama<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W pierwszej fazie wszystkie metody dost\u0119pu do pami\u0119ci w <code>sun.misc.Unsafe<\/code> zostan\u0105 oznaczone jako <em>deprecated<\/em>, produkuj\u0105c ostrze\u017cenia podczas kompilacji. W nast\u0119pnych krokach ich u\u017cycie b\u0119dzie powodowa\u0142o b\u0142\u0119dy kompilacji, z mo\u017cliwo\u015bci\u0105 przekazania odpowiedniej flagi pozwalaj\u0105c\u0105 na ich wy\u0142\u0105czenie. Nast\u0119pnie dojdzie do sekwencyjnego usuwania metod, najpier operuj\u0105cych na heap, a nast\u0119pnie tych off-heap. Proces b\u0119dzie wi\u0119c stopniowy, co pozwoli zminimalizowa\u0107 wp\u0142yw na istniej\u0105ce biblioteki i aplikacje. Co ciekawe, JEP nie ma na celu usuni\u0119cia klasy <code>sun.misc.Unsafe<\/code> w ca\u0142o\u015bci, a konkretnych metod u\u017cywanych do dost\u0119pu do pami\u0119ci - jednak w przysz\u0142o\u015bci planowane jest stopniowe pozbywanie si\u0119 pozosta\u0142ych operacji.<\/p>\n","innerContent":["\n<p>W pierwszej fazie wszystkie metody dost\u0119pu do pami\u0119ci w <code>sun.misc.Unsafe<\/code> zostan\u0105 oznaczone jako <em>deprecated<\/em>, produkuj\u0105c ostrze\u017cenia podczas kompilacji. W nast\u0119pnych krokach ich u\u017cycie b\u0119dzie powodowa\u0142o b\u0142\u0119dy kompilacji, z mo\u017cliwo\u015bci\u0105 przekazania odpowiedniej flagi pozwalaj\u0105c\u0105 na ich wy\u0142\u0105czenie. Nast\u0119pnie dojdzie do sekwencyjnego usuwania metod, najpier operuj\u0105cych na heap, a nast\u0119pnie tych off-heap. Proces b\u0119dzie wi\u0119c stopniowy, co pozwoli zminimalizowa\u0107 wp\u0142yw na istniej\u0105ce biblioteki i aplikacje. Co ciekawe, JEP nie ma na celu usuni\u0119cia klasy <code>sun.misc.Unsafe<\/code> w ca\u0142o\u015bci, a konkretnych metod u\u017cywanych do dost\u0119pu do pami\u0119ci - jednak w przysz\u0142o\u015bci planowane jest stopniowe pozbywanie si\u0119 pozosta\u0142ych operacji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323335\">JEP draft: Implicitly Declared Classes and Instance Main Methods (Final)<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323335\">JEP draft: Implicitly Declared Classes and Instance Main Methods (Final)<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Prace koncentruj\u0105ce si\u0119 na uczynieniu Javy bardziej dost\u0119pnym dla pocz\u0105tkuj\u0105cych zbli\u017caj\u0105 si\u0119 ku ko\u0144cowi. Wygl\u0105da na to, \u017ce druga wersja preview, kt\u00f3r\u0105 zobaczymy w JDK 22 jest rozwi\u0105zaniem ostatecznym. Wersja finalna nie wprowadza bowiem \u017cadnych zmian, a tylko stabilizuje zaproponowane API.<\/p>\n","innerContent":["\n<p>Prace koncentruj\u0105ce si\u0119 na uczynieniu Javy bardziej dost\u0119pnym dla pocz\u0105tkuj\u0105cych zbli\u017caj\u0105 si\u0119 ku ko\u0144cowi. Wygl\u0105da na to, \u017ce druga wersja preview, kt\u00f3r\u0105 zobaczymy w JDK 22 jest rozwi\u0105zaniem ostatecznym. Wersja finalna nie wprowadza bowiem \u017cadnych zmian, a tylko stabilizuje zaproponowane API.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323333\">JEP draft: String Templates (Final)<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/8323333\">JEP draft: String Templates (Final)<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dok\u0142adnie tak samo wygl\u0105da kwestia String Templates. Wszystko wskazuje na to, \u017ce te zostan\u0105 ustabilizowane w wersji zgodnej z tym, co zobaczymy <a href=\"https:\/\/openjdk.org\/jeps\/459\">przy okazji JDK 22<\/a>.<\/p>\n","innerContent":["\n<p>Dok\u0142adnie tak samo wygl\u0105da kwestia String Templates. Wszystko wskazuje na to, \u017ce te zostan\u0105 ustabilizowane w wersji zgodnej z tym, co zobaczymy <a href=\"https:\/\/openjdk.org\/jeps\/459\">przy okazji JDK 22<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Powy\u017csze to tylko drafty, ale doczekali\u015bmy si\u0119 pierwszego JEPa <a href=\"https:\/\/openjdk.org\/projects\/jdk\/23\/\">targetowanego na wydanie JDK 23<\/a>. Jest to te\u017c&nbsp;JEP szalenie ciekawy, poniewa\u017c mowa o featurze, kt\u00f3ry jest strikte powi\u0105zany z Project Valhalla.<\/p>\n","innerContent":["\n<p>Powy\u017csze to tylko drafty, ale doczekali\u015bmy si\u0119 pierwszego JEPa <a href=\"https:\/\/openjdk.org\/projects\/jdk\/23\/\">targetowanego na wydanie JDK 23<\/a>. Jest to te\u017c&nbsp;JEP szalenie ciekawy, poniewa\u017c mowa o featurze, kt\u00f3ry jest strikte powi\u0105zany z Project Valhalla.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To po kolei, dla tych kt\u00f3rzy gubi\u0105 si\u0119 ju\u017c troch\u0119 w nowej terminologii. Project Valhalla wprowadza w Javie now\u0105 koncepcj\u0119 znana jako \"Primitive Types\", kt\u00f3ra ma na celu \u0142\u0105czenie zalet typ\u00f3w prymitywnych \u2013 takich jak int czy double \u2013 z elastyczno\u015bci\u0105 obiekt\u00f3w. G\u0142\u00f3wnym celem Primitive Types jest umo\u017cliwienie tworzenia typ\u00f3w danych, kt\u00f3re dzia\u0142aj\u0105 z wydajno\u015bci\u0105 typ\u00f3w prymitywnych, jednocze\u015bnie oferuj\u0105c mo\u017cliwo\u015bci obiekt\u00f3w, takie jak mo\u017cliwo\u015b\u0107 u\u017cycia jako typy generyczne i w kolekcjach. Ich cechy i charakterystyka ewoluowa\u0142y wraz z kolejnymi iteracjami Valhalli, a teraz wreszcie dostali\u015bmy pierwszego zwi\u0105zanego z nimi JEP-a, kt\u00f3ry zosta\u0142 stargetowany na konkretne wydanie JDK.<\/p>\n","innerContent":["\n<p>To po kolei, dla tych kt\u00f3rzy gubi\u0105 si\u0119 ju\u017c troch\u0119 w nowej terminologii. Project Valhalla wprowadza w Javie now\u0105 koncepcj\u0119 znana jako \"Primitive Types\", kt\u00f3ra ma na celu \u0142\u0105czenie zalet typ\u00f3w prymitywnych \u2013 takich jak int czy double \u2013 z elastyczno\u015bci\u0105 obiekt\u00f3w. G\u0142\u00f3wnym celem Primitive Types jest umo\u017cliwienie tworzenia typ\u00f3w danych, kt\u00f3re dzia\u0142aj\u0105 z wydajno\u015bci\u0105 typ\u00f3w prymitywnych, jednocze\u015bnie oferuj\u0105c mo\u017cliwo\u015bci obiekt\u00f3w, takie jak mo\u017cliwo\u015b\u0107 u\u017cycia jako typy generyczne i w kolekcjach. Ich cechy i charakterystyka ewoluowa\u0142y wraz z kolejnymi iteracjami Valhalli, a teraz wreszcie dostali\u015bmy pierwszego zwi\u0105zanego z nimi JEP-a, kt\u00f3ry zosta\u0142 stargetowany na konkretne wydanie JDK.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455<\/a> koncentruje si\u0119 na rozbudowie dopasowywania wzorc\u00f3w poprzez wprowadzenie Pattern Matchingu dla typ\u00f3w prymitywnych dla instrukcji <code>instanceof<\/code> i <code>switch<\/code> i ma na celu ujednolicenie traktowania wszystkich typ\u00f3w danych (zgodnie z wcze\u015bniej przedstawionym, maksymalistycznym podej\u015bciem Briana Goetza).<\/p>\n","innerContent":["\n<p><a href=\"https:\/\/openjdk.org\/jeps\/455\">JEP 455<\/a> koncentruje si\u0119 na rozbudowie dopasowywania wzorc\u00f3w poprzez wprowadzenie Pattern Matchingu dla typ\u00f3w prymitywnych dla instrukcji <code>instanceof<\/code> i <code>switch<\/code> i ma na celu ujednolicenie traktowania wszystkich typ\u00f3w danych (zgodnie z wcze\u015bniej przedstawionym, maksymalistycznym podej\u015bciem Briana Goetza).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ciekawe jest to, \u017ce ca\u0142o\u015b\u0107 zosta\u0142a opublikowana jeszcze zanim dostali\u015bmy finalny proposal dotycz\u0105cy samych typ\u00f3w prymitywnych. W praktyce oznacza to, \u017ce praca pewnie wrze i mo\u017cemy nied\u0142ugo spodziewa\u0107 si\u0119 nowych og\u0142osze\u0144. Ca\u0142o\u015b\u0107 mocno zaostrzy\u0142a m\u00f3j apetyt na JDK 23 - oznacza bowiem, \u017ce jest to wydanie, kt\u00f3re powinno zawiera\u0107 znacznie wi\u0119cej niespodzianek zwi\u0105zanych z Valhall\u0105.<\/p>\n","innerContent":["\n<p>Ciekawe jest to, \u017ce ca\u0142o\u015b\u0107 zosta\u0142a opublikowana jeszcze zanim dostali\u015bmy finalny proposal dotycz\u0105cy samych typ\u00f3w prymitywnych. W praktyce oznacza to, \u017ce praca pewnie wrze i mo\u017cemy nied\u0142ugo spodziewa\u0107 si\u0119 nowych og\u0142osze\u0144. Ca\u0142o\u015b\u0107 mocno zaostrzy\u0142a m\u00f3j apetyt na JDK 23 - oznacza bowiem, \u017ce jest to wydanie, kt\u00f3re powinno zawiera\u0107 znacznie wi\u0119cej niespodzianek zwi\u0105zanych z Valhall\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">3. Jakarta EE 11 jednak ze wsparciem dla JDK 17<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">3. Jakarta EE 11 jednak ze wsparciem dla JDK 17<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17571,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-1024x585.png\" alt=\"\" class=\"wp-image-17571\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-14-1024x585.png\" alt=\"\" class=\"wp-image-17571\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mia\u0142em wra\u017cenie, \u017ce ostatni okres to ci\u0105g\u0142e prze\u015bciganie si\u0119 poszczeg\u00f3lnych projekt\u00f3w o to, kto b\u0119dzie wymaga\u0142 najnowszej wersji Javy. \u017beby nie szuka\u0107 daleko, taki Spring Boot 3.0 czy nowe wydanie Quarkusa to minimalnie JDK 17, Helidon podbija stawk\u0119, bo dla wersji 4.0 wymaga ju\u017c JDK 21 - a podobnych og\u0142osze\u0144 nie brakowa\u0142o. Podobnie ambitne cele mia\u0142o Eclipse Foundation, kt\u00f3re to og\u0142asza\u0142o, \u017ce ze wzgl\u0119du na wst\u0119pne wsparcie dla Wirtualnych W\u0105tk\u00f3w w Jakarta Concurrency 3.1, od wydania Jakarta EE 11 programi\u015bci b\u0119d\u0105 musieli u\u017cywa\u0107 w\u0142a\u015bnie JDK 21. Pocz\u0105tek 2024 przyni\u00f3s\u0142 jednak og\u0142oszenia o zmianach.<\/p>\n","innerContent":["\n<p>Mia\u0142em wra\u017cenie, \u017ce ostatni okres to ci\u0105g\u0142e prze\u015bciganie si\u0119 poszczeg\u00f3lnych projekt\u00f3w o to, kto b\u0119dzie wymaga\u0142 najnowszej wersji Javy. \u017beby nie szuka\u0107 daleko, taki Spring Boot 3.0 czy nowe wydanie Quarkusa to minimalnie JDK 17, Helidon podbija stawk\u0119, bo dla wersji 4.0 wymaga ju\u017c JDK 21 - a podobnych og\u0142osze\u0144 nie brakowa\u0142o. Podobnie ambitne cele mia\u0142o Eclipse Foundation, kt\u00f3re to og\u0142asza\u0142o, \u017ce ze wzgl\u0119du na wst\u0119pne wsparcie dla Wirtualnych W\u0105tk\u00f3w w Jakarta Concurrency 3.1, od wydania Jakarta EE 11 programi\u015bci b\u0119d\u0105 musieli u\u017cywa\u0107 w\u0142a\u015bnie JDK 21. Pocz\u0105tek 2024 przyni\u00f3s\u0142 jednak og\u0142oszenia o zmianach.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ivar Grimstad, Developer Advocate Jakarta EE, <a href=\"https:\/\/www.agilejava.eu\/2024\/01\/21\/hashtag-jakarta-ee-212\/\">poinformowa\u0142 bowiem o kroku wstecz<\/a> - tw\u00f3rcy nowej wersji zdecydowali bowiem, \u017ce zmieniaj\u0105 decyzje i b\u0119d\u0105 wspiera\u0107 r\u00f3wnie\u017c JDK 17, a \u017ceby otrzyma\u0107 certyfikacje, implementacje standardu musz\u0105 spe\u0142nia\u0107 specyfikacje zar\u00f3wno na JDK 17, jak i 21. Decyzja ta wynika z obecnych trend\u00f3w w zakresie adopcji technologii i preferencji u\u017cytkownik\u00f3w. Dane z New Relic i telemetrii VSCode Java wskazuj\u0105 na znacz\u0105ce preferencje dla Java SE 17 lub ni\u017cszych wersji, sugeruj\u0105c, \u017ce wym\u00f3g korzystania z Java SE 21 mo\u017ce by\u0107 zbyt du\u017cym ograniczeniem. Wsparcie zar\u00f3wno dla Java SE 17, jak i 21 zapewnia, \u017ce migracja na Jakarta EE 11 b\u0119dzie \u0142atwiejsza. Zgodnie z dyskusj\u0105 w <a href=\"https:\/\/github.com\/jakartaee\/platform\/issues\/820\">GitHub Issue<\/a>, wsparcie dla Wirtualnych W\u0105tk\u00f3w ci\u0105gle pozostaje w zakresie wydania, po prostu w wypadku uruchomienia na JDK 17 API zwi\u0105zane z Virtual Threads b\u0119d\u0105 wykorzystywa\u0142y klasyczne w\u0105tki. Jak to okre\u015bla <a href=\"https:\/\/github.com\/jakartaee\/concurrency\/blob\/main\/api\/src\/main\/java\/jakarta\/enterprise\/concurrent\/ManagedThreadFactoryDefinition.java#L190\">dokumentacja<\/a>:<\/p>\n","innerContent":["\n<p>Ivar Grimstad, Developer Advocate Jakarta EE, <a href=\"https:\/\/www.agilejava.eu\/2024\/01\/21\/hashtag-jakarta-ee-212\/\">poinformowa\u0142 bowiem o kroku wstecz<\/a> - tw\u00f3rcy nowej wersji zdecydowali bowiem, \u017ce zmieniaj\u0105 decyzje i b\u0119d\u0105 wspiera\u0107 r\u00f3wnie\u017c JDK 17, a \u017ceby otrzyma\u0107 certyfikacje, implementacje standardu musz\u0105 spe\u0142nia\u0107 specyfikacje zar\u00f3wno na JDK 17, jak i 21. Decyzja ta wynika z obecnych trend\u00f3w w zakresie adopcji technologii i preferencji u\u017cytkownik\u00f3w. Dane z New Relic i telemetrii VSCode Java wskazuj\u0105 na znacz\u0105ce preferencje dla Java SE 17 lub ni\u017cszych wersji, sugeruj\u0105c, \u017ce wym\u00f3g korzystania z Java SE 21 mo\u017ce by\u0107 zbyt du\u017cym ograniczeniem. Wsparcie zar\u00f3wno dla Java SE 17, jak i 21 zapewnia, \u017ce migracja na Jakarta EE 11 b\u0119dzie \u0142atwiejsza. Zgodnie z dyskusj\u0105 w <a href=\"https:\/\/github.com\/jakartaee\/platform\/issues\/820\">GitHub Issue<\/a>, wsparcie dla Wirtualnych W\u0105tk\u00f3w ci\u0105gle pozostaje w zakresie wydania, po prostu w wypadku uruchomienia na JDK 17 API zwi\u0105zane z Virtual Threads b\u0119d\u0105 wykorzystywa\u0142y klasyczne w\u0105tki. Jak to okre\u015bla <a href=\"https:\/\/github.com\/jakartaee\/concurrency\/blob\/main\/api\/src\/main\/java\/jakarta\/enterprise\/concurrent\/ManagedThreadFactoryDefinition.java#L190\">dokumentacja<\/a>:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/quote","attrs":[],"innerBlocks":[{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>When {@code true}, the thread factory can create<br>* virtual threads if it is capable of doing so<br>* and if the request is not overridden by vendor-specific<br>* configuration that restricts the use of virtual threads.<\/p>\n","innerContent":["\n<p>When {@code true}, the thread factory can create<br>* virtual threads if it is capable of doing so<br>* and if the request is not overridden by vendor-specific<br>* configuration that restricts the use of virtual threads.<\/p>\n"]}],"innerHTML":"\n<blockquote class=\"wp-block-quote\"><\/blockquote>\n","innerContent":["\n<blockquote class=\"wp-block-quote\">",null,"<\/blockquote>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Powiedzmy sobie szczerze - wsparcie dla JDK 17 ma sens. Jakarta EE nigdy nie by\u0142a standardem, kt\u00f3ry wyznacza\u0142 trendy, a raczej stanowi\u0142 pewn\u0105 oaz\u0119 stabilno\u015bci, wi\u0119c szersza kompatybilno\u015b\u0107 w tym wypadku ma sens. Szkoda by by\u0142o, \u017ceby jedno jedyne API (Jakarta Concurrency 3.1) tak mocno utrudnia\u0142o upgrade, zw\u0142aszcza w organizacjach kt\u00f3re maj\u0105 bardzo \u015bcis\u0142e zasady dotycz\u0105ce dopuszczonych wersji JDK. Wa\u017cne, \u017ceby tw\u00f3rcy nie byli ograniczani przez kurczowe trzymanie si\u0119 kompatybilno\u015bci, ale kiedy i tak mowa by\u0142a tylko o jednym API, jest to dla mnie zrozumia\u0142y kompromis.<\/p>\n","innerContent":["\n<p>Powiedzmy sobie szczerze - wsparcie dla JDK 17 ma sens. Jakarta EE nigdy nie by\u0142a standardem, kt\u00f3ry wyznacza\u0142 trendy, a raczej stanowi\u0142 pewn\u0105 oaz\u0119 stabilno\u015bci, wi\u0119c szersza kompatybilno\u015b\u0107 w tym wypadku ma sens. Szkoda by by\u0142o, \u017ceby jedno jedyne API (Jakarta Concurrency 3.1) tak mocno utrudnia\u0142o upgrade, zw\u0142aszcza w organizacjach kt\u00f3re maj\u0105 bardzo \u015bcis\u0142e zasady dotycz\u0105ce dopuszczonych wersji JDK. Wa\u017cne, \u017ceby tw\u00f3rcy nie byli ograniczani przez kurczowe trzymanie si\u0119 kompatybilno\u015bci, ale kiedy i tak mowa by\u0142a tylko o jednym API, jest to dla mnie zrozumia\u0142y kompromis.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17573,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-15.png\" alt=\"\" class=\"wp-image-17573\"\/><figcaption class=\"wp-element-caption\">Mam tylko nadzieje, \u017ce programi\u015bci czytaj\u0105 docsy i nikt nie zdziwi si\u0119 podczas incydentu, \u017ce jednak niechn\u0105cy u\u017cy\u0142 klasycznych w\u0105tk\u00f3w.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/01\/image-15.png\" alt=\"\" class=\"wp-image-17573\"\/><figcaption class=\"wp-element-caption\">Mam tylko nadzieje, \u017ce programi\u015bci czytaj\u0105 docsy i nikt nie zdziwi si\u0119 podczas incydentu, \u017ce jednak niechn\u0105cy u\u017cy\u0142 klasycznych w\u0105tk\u00f3w.<\/figcaption><\/figure>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17562","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=17562"}],"version-history":[{"count":11,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17562\/revisions"}],"predecessor-version":[{"id":17587,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17562\/revisions\/17587"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/17580"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=17562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=17562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=17562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}