{"id":14435,"date":"2023-02-09T14:06:55","date_gmt":"2023-02-09T13:06:55","guid":{"rendered":"https:\/\/vived.io\/?p=14435"},"modified":"2023-02-09T16:29:55","modified_gmt":"2023-02-09T15:29:55","slug":"czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/","title":{"rendered":"Czy Valhalla przyniesie lepsze nulle w Javie? &#8211; JVM Weekly vol. 124"},"content":{"rendered":"\n<h2 id=\"1-nadchodzi-kotlin-2-0\" data-num=1>1. Nadchodzi Kotlin 2.0<\/h2>\n\n\n\n<p>Okazuje si\u0119, \u017ce w \u015bwiecie Kotlina szykuj\u0105 si\u0119 spore zmiany &#8211; przynajmniej je\u015bli chodzi o numeracje.<\/p>\n\n\n\n<p>Tw\u00f3rcy <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">og\u0142osili bowiem<\/a>, \u017ce wydanie 1.9 b\u0119dzie ostatnim z linii 1.x. Wersja 1.10 si\u0119 nie poka\u017ce, zamiast niej przeskoczymy od razu do wydania 2.0. Wynika\u0107 ma to z faktu, \u017ce to w\u0142a\u015bnie na t\u0105 wersje planowane jest wydanie d\u0142ugo oczekiwanego kompilatora K2 &#8211; &#8222;jednego, by wszystkimi rz\u0105dzi\u0107&#8221; i maj\u0105cego zapewni\u0107 wsp\u00f3ln\u0105 infrastruktur\u0119 dla wszystkich potencjalnych target\u00f3w j\u0119zyka. Dzi\u0119ki temu jego tw\u00f3rcy nie b\u0119d\u0105 musieli ka\u017cdorazowo implementowa\u0107 tych samych funkcjonalno\u015bci na potrzeby JVM, WebAssembly czy Androida, co ma znacznie przyspieszy\u0107 ewolucje Kotlina. Zmiana jest wi\u0119c na tyle du\u017ca, \u017ce uznano za zasadne odpowiednie ukoronowanie jej podbiciem numeracji. <\/p>\n\n\n\n<p>Zmiana &#8222;du\u017cej&#8221; wersji j\u0119zyka potrafi\u0142a mocno zamiesza\u0107 w ekosystemie danego j\u0119zyka, jednak w wypadku Kotlina JetBrains obiecuje bardzo stabilny proces migracji. Ma by\u0107 to mo\u017cliwe do osi\u0105gni\u0119cia dzi\u0119ki dw\u00f3m sk\u0142adowym. Po pierwsze, zmiany motywuj\u0105ce podbicie numeracji odbywaj\u0105 si\u0119 pod mask\u0105, a tw\u00f3rcy celowo nie planuj\u0105 wprowadza\u0107 w nowym wydaniu \u017cadnych nowych nowo\u015bci w samym syntaksie j\u0119zyka &#8211; te zostawiaj\u0105 sobie na wydania 2.x, kt\u00f3re przyjd\u0105 po udanym przej\u015bciu na K2. Dodatkowo jednak JetBrains zyskuje na tym, \u017ce kontroluje zar\u00f3wno Kotlina, jak i jest g\u0142\u00f3wnym dostawc\u0105 narz\u0119dzi do niego. Pozwala to bowiem na znacznie sprawniejsze przeprowadzenie ca\u0142ej operacji, gdy wi\u0119kszo\u015b\u0107 najwa\u017cniejszego toolingu mo\u017ce by\u0107 rozwijana r\u00f3wnolegle z j\u0119zykiem. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11.png\" alt=\"\" class=\"wp-image-14440\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11-300x300.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11-150x150.png 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Vertical Integration, troch\u0119 jak w Apple.<\/figcaption><\/figure><\/div>\n\n\n<p>R\u00f3wnocze\u015bnie z powy\u017csz\u0105 zapowiedzi\u0105 ukaza\u0142a si\u0119 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">wersja preview wydania 1.8.20<\/a>, kt\u00f3ra wprowadza flag\u0119 <code>-language-version 2.0<\/code>. Ta umo\u017cliwia przetestowanie najnowszych zmian w kompilatorze. Jakich? Do tematu wr\u00f3cimy sobie pewnie wraz z wydaniem wersji stabilnej, ale 1.8.20 b\u0119dzie wydaniem mocno skupiaj\u0105cym si\u0119 na internalach j\u0119zyka.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"614\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-12.png\" alt=\"\" class=\"wp-image-14442\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-12.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-12-244x300.png 244w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Aczkolwiek Roman Elizarov ju\u017c si\u0119 odgra\u017ca, \u017ce jak tylko wypuszcz\u0105 Kotlin 2.0 i K2 to rusz\u0105 z kopyta.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">The K2 Compiler is going stable in Kotlin 2.0<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">Kotlin 1.8.20 EAP<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"2-spolecznosci-microprofile-scali-i-kotlina-bawia-sie-projektem-loom\" data-num=2>2. Spo\u0142eczno\u015bci MicroProfile, Scali i Kotlina bawi\u0105 si\u0119 projektem Loom<\/h2>\n\n\n\n<p>Nazbiera\u0142o si\u0119 troch\u0119 og\u0142osze\u0144 oko\u0142o-loomowych, im wi\u0119c po\u015bwi\u0119cimy kolejn\u0105 sekcje.<\/p>\n\n\n\n<p>Zacznijmy od Helidon N\u00edma, projekt bowiem opublikowa\u0142 w zesz\u0142ym <a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">tygodniu wersj\u0119 ALPHA4<\/a>. Nie zwyk\u0142em informowa\u0107 Was o tak wczesnych wydaniach, tym razem Alpha jest jednak naprawd\u0119 ciekawa. Tw\u00f3rcom N\u00edma uda\u0142o si\u0119 bowiem dokona\u0107 sporego osi\u0105gni\u0119cia, jakim jest stworzenie implementacji API MicroProfile 5.0 kompatybilnych z Wirtualnymi W\u0105tkami, a dok\u0142adnie na implementacji WebServera dostarczanej przez N\u00edma. Jest to olbrzymi skok dla projektu (i w\u0142a\u015bciwie dla ca\u0142ego community w ko\u0142o MP).<\/p>\n\n\n\n<p>W ostatnim tygodniu pojawi\u0142 si\u0119 r\u00f3wnie\u017c tekst <a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a> <a href=\"https:\/\/twitter.com\/adamwarski\">Adama Warskiego, CTO SoftwareMill<\/a>, w kt\u00f3rym ten eksperymentuje z konceptem stworzenia &#8222;natywnego&#8221; API dla wirtualnych w\u0105tk\u00f3w w Scali, wykorzystuj\u0105ce system typ\u00f3w j\u0119zyka w spos\u00f3b uniemo\u017cliwiaj\u0105cy programistom kopni\u0119cie si\u0119 w kolano. Nale\u017cy bowiem pami\u0119ta\u0107, \u017ce wirtualne w\u0105tki same w sobie to do\u015b\u0107 niskopoziomowe API, kt\u00f3re wi\u0119kszo\u015b\u0107 programist\u00f3w b\u0119dzie pewnie u\u017cywa\u0107 jednak poprzez jak\u0105\u015b abstrakcj\u0119. <\/p>\n\n\n\n<p>Tekst dotyka tematu Structured Concurrency, Scoped Values oraz dokonuje por\u00f3wnania eksperymentalnego API (prototyp kt\u00f3rego Adam nazwa\u0142 ox &#8211; cOncurrency eXtensions) z istniej\u0105cymi w Scali rozwi\u0105zaniami. Na tym etapie, jak \u0142atwo si\u0119 domy\u015ble\u0107, rozwijane od wielu lat biblioteki s\u0105 o wiele dojrzalsze. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce jak ma to miejsce w przypadku Reactive Extension, tak r\u00f3wnie\u017c kod monadyczny jest po prostu trudniejszy do zrozumienia dla niewprawionego w nim programisty. To, co przynosi za\u015b Loom, to prostota u\u017cycia, nawet je\u015bli jego abstrakcja nie ma jeszcze gotowych wzorc\u00f3w na wszystkie problemy. <\/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\/2023\/02\/image-17-1024x576.png\" alt=\"\" class=\"wp-image-14459\" width=\"512\" height=\"288\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17-1024x576.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17-300x169.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17-768x432.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17-1536x864.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17.png 1600w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption class=\"wp-element-caption\">Przypuszczalnie o\u015b x mog\u0142aby by\u0107 r\u00f3wnie\u017c oznaczona jako &#8222;Poziom wypalenia&#8221;.<\/figcaption><\/figure><\/div>\n\n\n<p>Sam tekst jest jednak \u015bwietny i je\u015bli macie cho\u0107 troch\u0119 zainteresowania j\u0119zykami funkcyjnymi, b\u0119dzie to \u015bwietna lektura. Sam kod Ox <a href=\"https:\/\/github.com\/softwaremill\/ox\">te\u017c jest dost\u0119pny na GitHubie<\/a>, wi\u0119c wol\u0105cy nauk\u0119 przez eksperymentowanie te\u017c znaj\u0105 co\u015b dla siebie.<\/p>\n\n\n\n<p>A \u017ce by\u0142o ju\u017c dzisiaj o Kotlinie, to rzu\u0107my te\u017c okiem, jak ten j\u0119zyk przygotowuje si\u0119 do zbli\u017caj\u0105cej si\u0119 premiery Projektu Loom. Przyznam, <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html#roadmap-details\">\u017ce przegl\u0105daj\u0105c si\u0119 Roadmapie j\u0119zyka<\/a> pr\u00f3\u017cno szuka\u0107 tam wirtualnych w\u0105tk\u00f3w, ale mo\u017ce wynika\u0107 to z faktu, \u017ce same korutyny s\u0105 na tyle elastyczne, \u017ce umo\u017cliwiaj\u0105 uruchomienie na wielu Dispatcherach. Oznacza to, \u017ce \u0142atwo mo\u017cna &#8222;wymieni\u0107&#8221; model asynchroniczno\u015bci dzia\u0142aj\u0105cy pod spodem. Tak jak wi\u0119c mamy Dispatcher dla RX, tak \u0142atwo mo\u017cna stworzy\u0107 taki dla Looma.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"610\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-14.png\" alt=\"\" class=\"wp-image-14453\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-14.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-14-246x300.png 246w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Ja, na moment przed kopni\u0119ciem si\u0119 w kolano i u\u017cyciem w\u0142asnego Dispatchera Korutyn na produkcji<\/figcaption><\/figure><\/div>\n\n\n<p>Temat przewin\u0105\u0142 si\u0119 w grudniu w podca\u015bcie &#8222;Talking Kotlin&#8221; JetBrains, gdzie <a href=\"https:\/\/twitter.com\/urs_peter\">Urs Peter<\/a> rozwija temat i pomimo z\u0142owieszczego tytu\u0142u <a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a> buduje narracje, \u017ce tak naprawd\u0119 to w\u0142a\u015bnie Kotlin najszybciej b\u0119dzie w stanie skonsumowa\u0107 warto\u015b\u0107 z wirtualnych w\u0105tk\u00f3w. Te s\u0105 bowiem funkcj\u0105 niskopoziomow\u0105, a Korutyny ju\u017c dzisiaj dostarczaj\u0105 wysokopoziomowe API, posiadaj\u0105ce ustandaryzowane sposoby na radzenie sobie z programowaniem asynchronicznym &#8211; jest to wi\u0119c ten sam temat, kt\u00f3ry przewija si\u0119 przez powy\u017cszy tekst o Scali. Je\u017celi jeste\u015bcie ciekawi, jakie zalety dla pisz\u0105cych w Kotlinie b\u0119dzie mia\u0142 Project Loom, to na <a class=\"autolink\" href=\"https:\/\/kt.academy\">kt.academy<\/a> pojawi\u0142 si\u0119 artyku\u0142 <a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom&#8217;s virtual threads<\/a>, pokazuj\u0105cy jak ju\u017c dzisiaj mo\u017cna si\u0119 ca\u0142o\u015bci\u0105 pobawi\u0107.<\/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\/2023\/02\/image-21-1024x441.png\" alt=\"\" class=\"wp-image-14468\" width=\"512\" height=\"221\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21-1024x441.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21-300x129.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21-768x331.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21-1536x661.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21.png 1998w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption class=\"wp-element-caption\">Bo powiedzmy sobie szczerze, jak kto\u015b troch\u0119 grzeba\u0142 w bajtkodzie to zdaje sobie spraw\u0119, \u017ce tak naprawd\u0119 Kotlin brak Korutyn w Javie musia\u0142 ostro hakowa\u0107 &#8211; co wida\u0107 na powy\u017cszym zrzucie.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom&#8217;s virtual threads<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">Helidon Nima 4.0 ALPHA4<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"3-czyzby-valhalla-miala-przyniesc-lepsze-wsparcie-nullowalnosci-w-javie\" data-num=3>3. Czy\u017cby Valhalla mia\u0142a przynie\u015b\u0107 lepsze wsparcie nullowalno\u015bci w Javie?<\/h2>\n\n\n\n<p>Na koniec zajmiemy si\u0119 Valhall\u0105. Po okresie ciszy, projekt zacz\u0105\u0142 ponownie publikowa\u0107 aktualizacje. Ostatnia jest na tyle interesuj\u0105ca, \u017ce pomimo bardzo wczesnego etapu dyskusji warto o niej tutaj pokr\u00f3tce wspomnie\u0107.<\/p>\n\n\n\n<p>Jedn\u0105 z funkcji j\u0119zyka, kt\u00f3re dostarczy\u0107 ma Valhalla s\u0105 Value Type (czy jak one si\u0119 tam teraz po kolejnych iteracjach maj\u0105 nazywa\u0107). G\u0142\u00f3wnym rozr\u00f3\u017cnieniem mi\u0119dzy &#8222;typem referencyjnym&#8221; (czyli obecnie istniej\u0105cymi w j\u0119zyku) a &#8222;typem warto\u015bci&#8221; jest fakt, \u017ce te drugie nie mog\u0105 przyjmowa\u0107 warto\u015bci null. W odr\u00f3\u017cnieniu od takiego Kotlina, w\u0142asno\u015b\u0107 ta nie jest \u0142atwo wyra\u017calna w samym j\u0119zyku. Dlatego te\u017c projektanci do Valhalli rozwa\u017caj\u0105 <a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">wprowadzenie nowego znacznika &#8222;nullness&#8221; dla obiekt\u00f3w<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20.png\" alt=\"\" class=\"wp-image-14466\" width=\"474\" height=\"369\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20.png 948w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20-300x234.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20-768x598.png 768w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><figcaption class=\"wp-element-caption\">Bo jak wida\u0107, r\u00f3\u017cnica jest spora<\/figcaption><\/figure><\/div>\n\n\n<p>Nowa funkcja ma pozwoli\u0107 obiektom jasno oznacza\u0107, czy dopuszczaj\u0105&nbsp;nullowalno\u015b\u0107 czy nie i zachowywa\u0107 t\u0105 informacj\u0119 w runtime. Dzi\u0119ki temu JVM b\u0119dzie w stanie optymalizowa\u0107 spos\u00f3b ich przechowywania w heapie. Na razie nie ma propozycji konkretnego syntaxu, dla uproszczenia tw\u00f3rcy w korespondencji u\u017cywaj\u0105 sk\u0142adni zbli\u017conej do Kotlinowej (<code>Foo!<\/code> jako non-null Foo i <code>Foo?<\/code> dla wariantu <code>Foo<\/code> lub null). Jest to jednak jeszcze bardzo wczesny etap, a tw\u00f3rcy nie wykluczaj\u0105 jednak u\u017cycia do tego celu jakiej\u015b adnotacji pokroju <code>@NonNull<\/code>.<\/p>\n\n\n\n<p>A jak ju\u017c nam wysz\u0142o, \u017ce w ka\u017cdej sekcji nawi\u0105zujemy do Kotlina &#8211; to podobnie jak w przypadku Wirtualnych W\u0105tk\u00f3w, inne j\u0119zyki u\u017cywaj\u0105ce Javy jako Hosta mog\u0105 na tym tylko zyska\u0107. Tw\u00f3rcy JVM zamierzaj\u0105 bowiem wykorzysta\u0107 znaczniki min. do lepszego zarz\u0105dzania pami\u0119ci\u0105 na poziomie samej maszyny wirtualnej. <\/p>\n\n\n\n<p>Przyp\u0142yw podnosi wszystkie \u0142odzie.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/7aj6su.gif\" alt=\"\" class=\"wp-image-14437\" width=\"360\" height=\"202\"\/><\/figure><\/div>\n\n\n<p>Warto\u015bciow\u0105 dyskusj\u0119 nad proposalem <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">znajdziecie na reddicie<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">Nullness markers to enable flattening<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">Reddit: Nullness markers to enable flattening<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"ps-ukazal-sie-raport-the-state-of-spring-2022\" data-num=4>PS: Ukaza\u0142 si\u0119 raport <a href=\"https:\/\/spring.io\/blog\/2023\/02\/03\/the-state-of-spring-survey-2022-report\">The State of Spring 2022<\/a><\/h2>\n\n\n\n<p>Przebi\u0142em si\u0119 przez raport, i raczej nie ma w nim niczego rewolucyjnego, ale podziel\u0119 si\u0119 z Wami dwoma faktami, kt\u00f3re przyku\u0142y moje oczy.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15.png\" alt=\"\" class=\"wp-image-14455\" width=\"500\" height=\"490\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15.png 1000w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15-300x294.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15-768x753.png 768w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Po pierwsze, 35% u\u017cytkownik\u00f3w Springa deklaruje u\u017cywanie jego reaktywnej wersji. Ciekawym jest te\u017c wzrost (cho\u0107 nie jaki\u015b olbrzymi) zastosowa\u0144 Springa w rozwi\u0105zaniach Serverless.<\/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\/2023\/02\/image-16-1024x482.png\" alt=\"\" class=\"wp-image-14457\" width=\"768\" height=\"362\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16-1024x482.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16-300x141.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16-768x361.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16-1536x723.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16.png 1658w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n<p>Spo\u0142eczno\u015b\u0107 Springa (przynajmniej Ci, kt\u00f3rzy o nich s\u0142yszeli) reaguje te\u017c entuzjastycznie na nowo\u015bci w Javie. 90% maj\u0105cych \u015bwiadomo\u015b\u0107 istnienia Looma chcia\u0142aby m\u00f3c u\u017cywa\u0107 go w Springu, a GraalVM jest na radarze a\u017c 98%. Entuzjazm jest, ciekawe ilu osobom rzeczywi\u015bcie uda si\u0119 wprowadzi\u0107 natywne obrazy na produkcj\u0119.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj trzy tematy, i w\u0142a\u015bciwie ka\u017cdy z nich zas\u0142u\u017cy\u0142 na nag\u0142\u00f3wek&#8230; co jednak pokazuje, jak du\u017co si\u0119 dzia\u0142o w ostatnim tygodniu. B\u0119dzie wi\u0119c zapowied\u017a Kotlina 2.0, masa eksperyment\u00f3w z Projektem Loom oraz&#8230; czy\u017cby w Javie mia\u0142y si\u0119 pojawi\u0107 kotlinowe Nulle?<\/p>\n","protected":false},"author":10,"featured_media":14475,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-14435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"7","feature_image_blog":{"ID":14479,"id":14479,"title":"ID2T8X5","filename":"ID2T8X5.jpeg","filesize":122297,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","link":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/id2t8x5\/","alt":"","author":"10","description":"","caption":"","name":"id2t8x5","status":"inherit","uploaded_to":14435,"date":"2023-02-09 13:08:39","modified":"2023-02-09 13:08:39","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1356,"height":894,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5-150x150.jpeg","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5-300x198.jpeg","medium-width":300,"medium-height":198,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5-768x506.jpeg","medium_large-width":768,"medium_large-height":506,"large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5-1024x675.jpeg","large-width":1024,"large-height":675,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","1536x1536-width":1356,"1536x1536-height":894,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","2048x2048-width":1356,"2048x2048-height":894,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":198,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","gform-image-choice-md-width":400,"gform-image-choice-md-height":264,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/ID2T8X5.jpeg","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":396}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.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>Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - 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\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj trzy tematy, i w\u0142a\u015bciwie ka\u017cdy z nich zas\u0142u\u017cy\u0142 na nag\u0142\u00f3wek... co jednak pokazuje, jak du\u017co si\u0119 dzia\u0142o w ostatnim tygodniu. B\u0119dzie wi\u0119c zapowied\u017a Kotlina 2.0, masa eksperyment\u00f3w z Projektem Loom oraz... czy\u017cby w Javie mia\u0142y si\u0119 pojawi\u0107 kotlinowe Nulle?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-09T13:06:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-09T15:29:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.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\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Czy Valhalla przyniesie lepsze nulle w Javie? &#8211; JVM Weekly vol. 124\",\"datePublished\":\"2023-02-09T13:06:55+00:00\",\"dateModified\":\"2023-02-09T15:29:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\"},\"wordCount\":1431,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\",\"url\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\",\"name\":\"Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png\",\"datePublished\":\"2023-02-09T13:06:55+00:00\",\"dateModified\":\"2023-02-09T15:29:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Czy Valhalla przyniesie lepsze nulle w Javie? &#8211; JVM Weekly vol. 124\"}]},{\"@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":"Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - 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\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/","og_locale":"pl_PL","og_type":"article","og_title":"Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - Vived","og_description":"Dzisiaj trzy tematy, i w\u0142a\u015bciwie ka\u017cdy z nich zas\u0142u\u017cy\u0142 na nag\u0142\u00f3wek... co jednak pokazuje, jak du\u017co si\u0119 dzia\u0142o w ostatnim tygodniu. B\u0119dzie wi\u0119c zapowied\u017a Kotlina 2.0, masa eksperyment\u00f3w z Projektem Loom oraz... czy\u017cby w Javie mia\u0142y si\u0119 pojawi\u0107 kotlinowe Nulle?","og_url":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/","og_site_name":"Vived","article_published_time":"2023-02-09T13:06:55+00:00","article_modified_time":"2023-02-09T15:29:55+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.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\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Czy Valhalla przyniesie lepsze nulle w Javie? &#8211; JVM Weekly vol. 124","datePublished":"2023-02-09T13:06:55+00:00","dateModified":"2023-02-09T15:29:55+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/"},"wordCount":1431,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/","url":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/","name":"Czy Valhalla przyniesie lepsze nulle w Javie? - JVM Weekly vol. 124 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png","datePublished":"2023-02-09T13:06:55+00:00","dateModified":"2023-02-09T15:29:55+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/JVM-Weekly-1200x628_V2-4.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/czy-valhalla-przyniesie-lepsze-nulle-w-javie-jvm-weekly-122\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Czy Valhalla przyniesie lepsze nulle w Javie? &#8211; JVM Weekly vol. 124"}]},{"@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>1. Nadchodzi Kotlin 2.0<\/h2>\n","innerContent":["\n<h2>1. Nadchodzi Kotlin 2.0<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Okazuje si\u0119, \u017ce w \u015bwiecie Kotlina szykuj\u0105 si\u0119 spore zmiany - przynajmniej je\u015bli chodzi o numeracje.<\/p>\n","innerContent":["\n<p>Okazuje si\u0119, \u017ce w \u015bwiecie Kotlina szykuj\u0105 si\u0119 spore zmiany - przynajmniej je\u015bli chodzi o numeracje.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tw\u00f3rcy <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">og\u0142osili bowiem<\/a>, \u017ce wydanie 1.9 b\u0119dzie ostatnim z linii 1.x. Wersja 1.10 si\u0119 nie poka\u017ce, zamiast niej przeskoczymy od razu do wydania 2.0. Wynika\u0107 ma to z faktu, \u017ce to w\u0142a\u015bnie na t\u0105 wersje planowane jest wydanie d\u0142ugo oczekiwanego kompilatora K2 - \"jednego, by wszystkimi rz\u0105dzi\u0107\" i maj\u0105cego zapewni\u0107 wsp\u00f3ln\u0105 infrastruktur\u0119 dla wszystkich potencjalnych target\u00f3w j\u0119zyka. Dzi\u0119ki temu jego tw\u00f3rcy nie b\u0119d\u0105 musieli ka\u017cdorazowo implementowa\u0107 tych samych funkcjonalno\u015bci na potrzeby JVM, WebAssembly czy Androida, co ma znacznie przyspieszy\u0107 ewolucje Kotlina. Zmiana jest wi\u0119c na tyle du\u017ca, \u017ce uznano za zasadne odpowiednie ukoronowanie jej podbiciem numeracji. <\/p>\n","innerContent":["\n<p>Tw\u00f3rcy <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">og\u0142osili bowiem<\/a>, \u017ce wydanie 1.9 b\u0119dzie ostatnim z linii 1.x. Wersja 1.10 si\u0119 nie poka\u017ce, zamiast niej przeskoczymy od razu do wydania 2.0. Wynika\u0107 ma to z faktu, \u017ce to w\u0142a\u015bnie na t\u0105 wersje planowane jest wydanie d\u0142ugo oczekiwanego kompilatora K2 - \"jednego, by wszystkimi rz\u0105dzi\u0107\" i maj\u0105cego zapewni\u0107 wsp\u00f3ln\u0105 infrastruktur\u0119 dla wszystkich potencjalnych target\u00f3w j\u0119zyka. Dzi\u0119ki temu jego tw\u00f3rcy nie b\u0119d\u0105 musieli ka\u017cdorazowo implementowa\u0107 tych samych funkcjonalno\u015bci na potrzeby JVM, WebAssembly czy Androida, co ma znacznie przyspieszy\u0107 ewolucje Kotlina. Zmiana jest wi\u0119c na tyle du\u017ca, \u017ce uznano za zasadne odpowiednie ukoronowanie jej podbiciem numeracji. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zmiana \"du\u017cej\" wersji j\u0119zyka potrafi\u0142a mocno zamiesza\u0107 w ekosystemie danego j\u0119zyka, jednak w wypadku Kotlina JetBrains obiecuje bardzo stabilny proces migracji. Ma by\u0107 to mo\u017cliwe do osi\u0105gni\u0119cia dzi\u0119ki dw\u00f3m sk\u0142adowym. Po pierwsze, zmiany motywuj\u0105ce podbicie numeracji odbywaj\u0105 si\u0119 pod mask\u0105, a tw\u00f3rcy celowo nie planuj\u0105 wprowadza\u0107 w nowym wydaniu \u017cadnych nowych nowo\u015bci w samym syntaksie j\u0119zyka - te zostawiaj\u0105 sobie na wydania 2.x, kt\u00f3re przyjd\u0105 po udanym przej\u015bciu na K2. Dodatkowo jednak JetBrains zyskuje na tym, \u017ce kontroluje zar\u00f3wno Kotlina, jak i jest g\u0142\u00f3wnym dostawc\u0105 narz\u0119dzi do niego. Pozwala to bowiem na znacznie sprawniejsze przeprowadzenie ca\u0142ej operacji, gdy wi\u0119kszo\u015b\u0107 najwa\u017cniejszego toolingu mo\u017ce by\u0107 rozwijana r\u00f3wnolegle z j\u0119zykiem. <\/p>\n","innerContent":["\n<p>Zmiana \"du\u017cej\" wersji j\u0119zyka potrafi\u0142a mocno zamiesza\u0107 w ekosystemie danego j\u0119zyka, jednak w wypadku Kotlina JetBrains obiecuje bardzo stabilny proces migracji. Ma by\u0107 to mo\u017cliwe do osi\u0105gni\u0119cia dzi\u0119ki dw\u00f3m sk\u0142adowym. Po pierwsze, zmiany motywuj\u0105ce podbicie numeracji odbywaj\u0105 si\u0119 pod mask\u0105, a tw\u00f3rcy celowo nie planuj\u0105 wprowadza\u0107 w nowym wydaniu \u017cadnych nowych nowo\u015bci w samym syntaksie j\u0119zyka - te zostawiaj\u0105 sobie na wydania 2.x, kt\u00f3re przyjd\u0105 po udanym przej\u015bciu na K2. Dodatkowo jednak JetBrains zyskuje na tym, \u017ce kontroluje zar\u00f3wno Kotlina, jak i jest g\u0142\u00f3wnym dostawc\u0105 narz\u0119dzi do niego. Pozwala to bowiem na znacznie sprawniejsze przeprowadzenie ca\u0142ej operacji, gdy wi\u0119kszo\u015b\u0107 najwa\u017cniejszego toolingu mo\u017ce by\u0107 rozwijana r\u00f3wnolegle z j\u0119zykiem. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14440,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11.png\" alt=\"\" class=\"wp-image-14440\"\/><figcaption class=\"wp-element-caption\">Vertical Integration, troch\u0119 jak w Apple.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-11.png\" alt=\"\" class=\"wp-image-14440\"\/><figcaption class=\"wp-element-caption\">Vertical Integration, troch\u0119 jak w Apple.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>R\u00f3wnocze\u015bnie z powy\u017csz\u0105 zapowiedzi\u0105 ukaza\u0142a si\u0119 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">wersja preview wydania 1.8.20<\/a>, kt\u00f3ra wprowadza flag\u0119 <code>-language-version 2.0<\/code>. Ta umo\u017cliwia przetestowanie najnowszych zmian w kompilatorze. Jakich? Do tematu wr\u00f3cimy sobie pewnie wraz z wydaniem wersji stabilnej, ale 1.8.20 b\u0119dzie wydaniem mocno skupiaj\u0105cym si\u0119 na internalach j\u0119zyka.<\/p>\n","innerContent":["\n<p>R\u00f3wnocze\u015bnie z powy\u017csz\u0105 zapowiedzi\u0105 ukaza\u0142a si\u0119 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">wersja preview wydania 1.8.20<\/a>, kt\u00f3ra wprowadza flag\u0119 <code>-language-version 2.0<\/code>. Ta umo\u017cliwia przetestowanie najnowszych zmian w kompilatorze. Jakich? Do tematu wr\u00f3cimy sobie pewnie wraz z wydaniem wersji stabilnej, ale 1.8.20 b\u0119dzie wydaniem mocno skupiaj\u0105cym si\u0119 na internalach j\u0119zyka.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14442,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-12.png\" alt=\"\" class=\"wp-image-14442\"\/><figcaption class=\"wp-element-caption\">Aczkolwiek Roman Elizarov ju\u017c si\u0119 odgra\u017ca, \u017ce jak tylko wypuszcz\u0105 Kotlin 2.0 i K2 to rusz\u0105 z kopyta.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-12.png\" alt=\"\" class=\"wp-image-14442\"\/><figcaption class=\"wp-element-caption\">Aczkolwiek Roman Elizarov ju\u017c si\u0119 odgra\u017ca, \u017ce jak tylko wypuszcz\u0105 Kotlin 2.0 i K2 to rusz\u0105 z kopyta.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">The K2 Compiler is going stable in Kotlin 2.0<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/02\/k2-kotlin-2-0\">The K2 Compiler is going stable in Kotlin 2.0<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">Kotlin 1.8.20 EAP<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\">Kotlin 1.8.20 EAP<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Spo\u0142eczno\u015bci MicroProfile, Scali i Kotlina bawi\u0105 si\u0119 projektem Loom<\/h2>\n","innerContent":["\n<h2>2. Spo\u0142eczno\u015bci MicroProfile, Scali i Kotlina bawi\u0105 si\u0119 projektem Loom<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nazbiera\u0142o si\u0119 troch\u0119 og\u0142osze\u0144 oko\u0142o-loomowych, im wi\u0119c po\u015bwi\u0119cimy kolejn\u0105 sekcje.<\/p>\n","innerContent":["\n<p>Nazbiera\u0142o si\u0119 troch\u0119 og\u0142osze\u0144 oko\u0142o-loomowych, im wi\u0119c po\u015bwi\u0119cimy kolejn\u0105 sekcje.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od Helidon N\u00edma, projekt bowiem opublikowa\u0142 w zesz\u0142ym <a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">tygodniu wersj\u0119 ALPHA4<\/a>. Nie zwyk\u0142em informowa\u0107 Was o tak wczesnych wydaniach, tym razem Alpha jest jednak naprawd\u0119 ciekawa. Tw\u00f3rcom N\u00edma uda\u0142o si\u0119 bowiem dokona\u0107 sporego osi\u0105gni\u0119cia, jakim jest stworzenie implementacji API MicroProfile 5.0 kompatybilnych z Wirtualnymi W\u0105tkami, a dok\u0142adnie na implementacji WebServera dostarczanej przez N\u00edma. Jest to olbrzymi skok dla projektu (i w\u0142a\u015bciwie dla ca\u0142ego community w ko\u0142o MP).<\/p>\n","innerContent":["\n<p>Zacznijmy od Helidon N\u00edma, projekt bowiem opublikowa\u0142 w zesz\u0142ym <a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">tygodniu wersj\u0119 ALPHA4<\/a>. Nie zwyk\u0142em informowa\u0107 Was o tak wczesnych wydaniach, tym razem Alpha jest jednak naprawd\u0119 ciekawa. Tw\u00f3rcom N\u00edma uda\u0142o si\u0119 bowiem dokona\u0107 sporego osi\u0105gni\u0119cia, jakim jest stworzenie implementacji API MicroProfile 5.0 kompatybilnych z Wirtualnymi W\u0105tkami, a dok\u0142adnie na implementacji WebServera dostarczanej przez N\u00edma. Jest to olbrzymi skok dla projektu (i w\u0142a\u015bciwie dla ca\u0142ego community w ko\u0142o MP).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W ostatnim tygodniu pojawi\u0142 si\u0119 r\u00f3wnie\u017c tekst <a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a> <a href=\"https:\/\/twitter.com\/adamwarski\">Adama Warskiego, CTO SoftwareMill<\/a>, w kt\u00f3rym ten eksperymentuje z konceptem stworzenia \"natywnego\" API dla wirtualnych w\u0105tk\u00f3w w Scali, wykorzystuj\u0105ce system typ\u00f3w j\u0119zyka w spos\u00f3b uniemo\u017cliwiaj\u0105cy programistom kopni\u0119cie si\u0119 w kolano. Nale\u017cy bowiem pami\u0119ta\u0107, \u017ce wirtualne w\u0105tki same w sobie to do\u015b\u0107 niskopoziomowe API, kt\u00f3re wi\u0119kszo\u015b\u0107 programist\u00f3w b\u0119dzie pewnie u\u017cywa\u0107 jednak poprzez jak\u0105\u015b abstrakcj\u0119. <\/p>\n","innerContent":["\n<p>W ostatnim tygodniu pojawi\u0142 si\u0119 r\u00f3wnie\u017c tekst <a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a> <a href=\"https:\/\/twitter.com\/adamwarski\">Adama Warskiego, CTO SoftwareMill<\/a>, w kt\u00f3rym ten eksperymentuje z konceptem stworzenia \"natywnego\" API dla wirtualnych w\u0105tk\u00f3w w Scali, wykorzystuj\u0105ce system typ\u00f3w j\u0119zyka w spos\u00f3b uniemo\u017cliwiaj\u0105cy programistom kopni\u0119cie si\u0119 w kolano. Nale\u017cy bowiem pami\u0119ta\u0107, \u017ce wirtualne w\u0105tki same w sobie to do\u015b\u0107 niskopoziomowe API, kt\u00f3re wi\u0119kszo\u015b\u0107 programist\u00f3w b\u0119dzie pewnie u\u017cywa\u0107 jednak poprzez jak\u0105\u015b abstrakcj\u0119. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tekst dotyka tematu Structured Concurrency, Scoped Values oraz dokonuje por\u00f3wnania eksperymentalnego API (prototyp kt\u00f3rego Adam nazwa\u0142 ox - cOncurrency eXtensions) z istniej\u0105cymi w Scali rozwi\u0105zaniami. Na tym etapie, jak \u0142atwo si\u0119 domy\u015ble\u0107, rozwijane od wielu lat biblioteki s\u0105 o wiele dojrzalsze. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce jak ma to miejsce w przypadku Reactive Extension, tak r\u00f3wnie\u017c kod monadyczny jest po prostu trudniejszy do zrozumienia dla niewprawionego w nim programisty. To, co przynosi za\u015b Loom, to prostota u\u017cycia, nawet je\u015bli jego abstrakcja nie ma jeszcze gotowych wzorc\u00f3w na wszystkie problemy. <\/p>\n","innerContent":["\n<p>Tekst dotyka tematu Structured Concurrency, Scoped Values oraz dokonuje por\u00f3wnania eksperymentalnego API (prototyp kt\u00f3rego Adam nazwa\u0142 ox - cOncurrency eXtensions) z istniej\u0105cymi w Scali rozwi\u0105zaniami. Na tym etapie, jak \u0142atwo si\u0119 domy\u015ble\u0107, rozwijane od wielu lat biblioteki s\u0105 o wiele dojrzalsze. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce jak ma to miejsce w przypadku Reactive Extension, tak r\u00f3wnie\u017c kod monadyczny jest po prostu trudniejszy do zrozumienia dla niewprawionego w nim programisty. To, co przynosi za\u015b Loom, to prostota u\u017cycia, nawet je\u015bli jego abstrakcja nie ma jeszcze gotowych wzorc\u00f3w na wszystkie problemy. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14459,"width":512,"height":288,"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\/2023\/02\/image-17-1024x576.png\" alt=\"\" class=\"wp-image-14459\" width=\"512\" height=\"288\"\/><figcaption class=\"wp-element-caption\">Przypuszczalnie o\u015b x mog\u0142aby by\u0107 r\u00f3wnie\u017c oznaczona jako \"Poziom wypalenia\".<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-17-1024x576.png\" alt=\"\" class=\"wp-image-14459\" width=\"512\" height=\"288\"\/><figcaption class=\"wp-element-caption\">Przypuszczalnie o\u015b x mog\u0142aby by\u0107 r\u00f3wnie\u017c oznaczona jako \"Poziom wypalenia\".<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Sam tekst jest jednak \u015bwietny i je\u015bli macie cho\u0107 troch\u0119 zainteresowania j\u0119zykami funkcyjnymi, b\u0119dzie to \u015bwietna lektura. Sam kod Ox <a href=\"https:\/\/github.com\/softwaremill\/ox\">te\u017c jest dost\u0119pny na GitHubie<\/a>, wi\u0119c wol\u0105cy nauk\u0119 przez eksperymentowanie te\u017c znaj\u0105 co\u015b dla siebie.<\/p>\n","innerContent":["\n<p>Sam tekst jest jednak \u015bwietny i je\u015bli macie cho\u0107 troch\u0119 zainteresowania j\u0119zykami funkcyjnymi, b\u0119dzie to \u015bwietna lektura. Sam kod Ox <a href=\"https:\/\/github.com\/softwaremill\/ox\">te\u017c jest dost\u0119pny na GitHubie<\/a>, wi\u0119c wol\u0105cy nauk\u0119 przez eksperymentowanie te\u017c znaj\u0105 co\u015b dla siebie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A \u017ce by\u0142o ju\u017c dzisiaj o Kotlinie, to rzu\u0107my te\u017c okiem, jak ten j\u0119zyk przygotowuje si\u0119 do zbli\u017caj\u0105cej si\u0119 premiery Projektu Loom. Przyznam, <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html#roadmap-details\">\u017ce przegl\u0105daj\u0105c si\u0119 Roadmapie j\u0119zyka<\/a> pr\u00f3\u017cno szuka\u0107 tam wirtualnych w\u0105tk\u00f3w, ale mo\u017ce wynika\u0107 to z faktu, \u017ce same korutyny s\u0105 na tyle elastyczne, \u017ce umo\u017cliwiaj\u0105 uruchomienie na wielu Dispatcherach. Oznacza to, \u017ce \u0142atwo mo\u017cna \"wymieni\u0107\" model asynchroniczno\u015bci dzia\u0142aj\u0105cy pod spodem. Tak jak wi\u0119c mamy Dispatcher dla RX, tak \u0142atwo mo\u017cna stworzy\u0107 taki dla Looma.<\/p>\n","innerContent":["\n<p>A \u017ce by\u0142o ju\u017c dzisiaj o Kotlinie, to rzu\u0107my te\u017c okiem, jak ten j\u0119zyk przygotowuje si\u0119 do zbli\u017caj\u0105cej si\u0119 premiery Projektu Loom. Przyznam, <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html#roadmap-details\">\u017ce przegl\u0105daj\u0105c si\u0119 Roadmapie j\u0119zyka<\/a> pr\u00f3\u017cno szuka\u0107 tam wirtualnych w\u0105tk\u00f3w, ale mo\u017ce wynika\u0107 to z faktu, \u017ce same korutyny s\u0105 na tyle elastyczne, \u017ce umo\u017cliwiaj\u0105 uruchomienie na wielu Dispatcherach. Oznacza to, \u017ce \u0142atwo mo\u017cna \"wymieni\u0107\" model asynchroniczno\u015bci dzia\u0142aj\u0105cy pod spodem. Tak jak wi\u0119c mamy Dispatcher dla RX, tak \u0142atwo mo\u017cna stworzy\u0107 taki dla Looma.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14453,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-14.png\" alt=\"\" class=\"wp-image-14453\"\/><figcaption class=\"wp-element-caption\">Ja, na moment przed kopni\u0119ciem si\u0119 w kolano i u\u017cyciem w\u0142asnego Dispatchera Korutyn na produkcji<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-14.png\" alt=\"\" class=\"wp-image-14453\"\/><figcaption class=\"wp-element-caption\">Ja, na moment przed kopni\u0119ciem si\u0119 w kolano i u\u017cyciem w\u0142asnego Dispatchera Korutyn na produkcji<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Temat przewin\u0105\u0142 si\u0119 w grudniu w podca\u015bcie \"Talking Kotlin\" JetBrains, gdzie <a href=\"https:\/\/twitter.com\/urs_peter\">Urs Peter<\/a> rozwija temat i pomimo z\u0142owieszczego tytu\u0142u <a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a> buduje narracje, \u017ce tak naprawd\u0119 to w\u0142a\u015bnie Kotlin najszybciej b\u0119dzie w stanie skonsumowa\u0107 warto\u015b\u0107 z wirtualnych w\u0105tk\u00f3w. Te s\u0105 bowiem funkcj\u0105 niskopoziomow\u0105, a Korutyny ju\u017c dzisiaj dostarczaj\u0105 wysokopoziomowe API, posiadaj\u0105ce ustandaryzowane sposoby na radzenie sobie z programowaniem asynchronicznym - jest to wi\u0119c ten sam temat, kt\u00f3ry przewija si\u0119 przez powy\u017cszy tekst o Scali. Je\u017celi jeste\u015bcie ciekawi, jakie zalety dla pisz\u0105cych w Kotlinie b\u0119dzie mia\u0142 Project Loom, to na <a class=\"autolink\" href=\"https:\/\/kt.academy\">kt.academy<\/a> pojawi\u0142 si\u0119 artyku\u0142 <a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom's virtual threads<\/a>, pokazuj\u0105cy jak ju\u017c dzisiaj mo\u017cna si\u0119 ca\u0142o\u015bci\u0105 pobawi\u0107.<\/p>\n","innerContent":["\n<p>Temat przewin\u0105\u0142 si\u0119 w grudniu w podca\u015bcie \"Talking Kotlin\" JetBrains, gdzie <a href=\"https:\/\/twitter.com\/urs_peter\">Urs Peter<\/a> rozwija temat i pomimo z\u0142owieszczego tytu\u0142u <a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a> buduje narracje, \u017ce tak naprawd\u0119 to w\u0142a\u015bnie Kotlin najszybciej b\u0119dzie w stanie skonsumowa\u0107 warto\u015b\u0107 z wirtualnych w\u0105tk\u00f3w. Te s\u0105 bowiem funkcj\u0105 niskopoziomow\u0105, a Korutyny ju\u017c dzisiaj dostarczaj\u0105 wysokopoziomowe API, posiadaj\u0105ce ustandaryzowane sposoby na radzenie sobie z programowaniem asynchronicznym - jest to wi\u0119c ten sam temat, kt\u00f3ry przewija si\u0119 przez powy\u017cszy tekst o Scali. Je\u017celi jeste\u015bcie ciekawi, jakie zalety dla pisz\u0105cych w Kotlinie b\u0119dzie mia\u0142 Project Loom, to na <a class=\"autolink\" href=\"https:\/\/kt.academy\">kt.academy<\/a> pojawi\u0142 si\u0119 artyku\u0142 <a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom's virtual threads<\/a>, pokazuj\u0105cy jak ju\u017c dzisiaj mo\u017cna si\u0119 ca\u0142o\u015bci\u0105 pobawi\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14468,"width":512,"height":221,"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\/2023\/02\/image-21-1024x441.png\" alt=\"\" class=\"wp-image-14468\" width=\"512\" height=\"221\"\/><figcaption class=\"wp-element-caption\">Bo powiedzmy sobie szczerze, jak kto\u015b troch\u0119 grzeba\u0142 w bajtkodzie to zdaje sobie spraw\u0119, \u017ce tak naprawd\u0119 Kotlin brak Korutyn w Javie musia\u0142 ostro hakowa\u0107 - co wida\u0107 na powy\u017cszym zrzucie.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-21-1024x441.png\" alt=\"\" class=\"wp-image-14468\" width=\"512\" height=\"221\"\/><figcaption class=\"wp-element-caption\">Bo powiedzmy sobie szczerze, jak kto\u015b troch\u0119 grzeba\u0142 w bajtkodzie to zdaje sobie spraw\u0119, \u017ce tak naprawd\u0119 Kotlin brak Korutyn w Javie musia\u0142 ostro hakowa\u0107 - co wida\u0107 na powy\u017cszym zrzucie.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/softwaremill.com\/prototype-loom-based-concurrency-api-for-scala\/\">Prototype Loom-based concurrency API for Scala<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1qezCNVWpHc\">Will Loom Kill Kotlin Coroutines?<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom's virtual threads<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/kt.academy\/article\/dispatcher-loom\">Running Kotlin coroutines on Project Loom's virtual threads<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">Helidon Nima 4.0 ALPHA4<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/medium.com\/helidon\/helidon-4-0-0-alpha4-release-d113a9079a97\">Helidon Nima 4.0 ALPHA4<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n\n\n\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"\n\n",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Czy\u017cby Valhalla mia\u0142a przynie\u015b\u0107 lepsze wsparcie nullowalno\u015bci w Javie?<\/h2>\n","innerContent":["\n<h2>3. Czy\u017cby Valhalla mia\u0142a przynie\u015b\u0107 lepsze wsparcie nullowalno\u015bci w Javie?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na koniec zajmiemy si\u0119 Valhall\u0105. Po okresie ciszy, projekt zacz\u0105\u0142 ponownie publikowa\u0107 aktualizacje. Ostatnia jest na tyle interesuj\u0105ca, \u017ce pomimo bardzo wczesnego etapu dyskusji warto o niej tutaj pokr\u00f3tce wspomnie\u0107.<\/p>\n","innerContent":["\n<p>Na koniec zajmiemy si\u0119 Valhall\u0105. Po okresie ciszy, projekt zacz\u0105\u0142 ponownie publikowa\u0107 aktualizacje. Ostatnia jest na tyle interesuj\u0105ca, \u017ce pomimo bardzo wczesnego etapu dyskusji warto o niej tutaj pokr\u00f3tce wspomnie\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jedn\u0105 z funkcji j\u0119zyka, kt\u00f3re dostarczy\u0107 ma Valhalla s\u0105 Value Type (czy jak one si\u0119 tam teraz po kolejnych iteracjach maj\u0105 nazywa\u0107). G\u0142\u00f3wnym rozr\u00f3\u017cnieniem mi\u0119dzy \"typem referencyjnym\" (czyli obecnie istniej\u0105cymi w j\u0119zyku) a \"typem warto\u015bci\" jest fakt, \u017ce te drugie nie mog\u0105 przyjmowa\u0107 warto\u015bci null. W odr\u00f3\u017cnieniu od takiego Kotlina, w\u0142asno\u015b\u0107 ta nie jest \u0142atwo wyra\u017calna w samym j\u0119zyku. Dlatego te\u017c projektanci do Valhalli rozwa\u017caj\u0105 <a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">wprowadzenie nowego znacznika \"nullness\" dla obiekt\u00f3w<\/a>.<\/p>\n","innerContent":["\n<p>Jedn\u0105 z funkcji j\u0119zyka, kt\u00f3re dostarczy\u0107 ma Valhalla s\u0105 Value Type (czy jak one si\u0119 tam teraz po kolejnych iteracjach maj\u0105 nazywa\u0107). G\u0142\u00f3wnym rozr\u00f3\u017cnieniem mi\u0119dzy \"typem referencyjnym\" (czyli obecnie istniej\u0105cymi w j\u0119zyku) a \"typem warto\u015bci\" jest fakt, \u017ce te drugie nie mog\u0105 przyjmowa\u0107 warto\u015bci null. W odr\u00f3\u017cnieniu od takiego Kotlina, w\u0142asno\u015b\u0107 ta nie jest \u0142atwo wyra\u017calna w samym j\u0119zyku. Dlatego te\u017c projektanci do Valhalli rozwa\u017caj\u0105 <a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">wprowadzenie nowego znacznika \"nullness\" dla obiekt\u00f3w<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14466,"width":474,"height":369,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20.png\" alt=\"\" class=\"wp-image-14466\" width=\"474\" height=\"369\"\/><figcaption class=\"wp-element-caption\">Bo jak wida\u0107, r\u00f3\u017cnica jest spora<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-20.png\" alt=\"\" class=\"wp-image-14466\" width=\"474\" height=\"369\"\/><figcaption class=\"wp-element-caption\">Bo jak wida\u0107, r\u00f3\u017cnica jest spora<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowa funkcja ma pozwoli\u0107 obiektom jasno oznacza\u0107, czy dopuszczaj\u0105&nbsp;nullowalno\u015b\u0107 czy nie i zachowywa\u0107 t\u0105 informacj\u0119 w runtime. Dzi\u0119ki temu JVM b\u0119dzie w stanie optymalizowa\u0107 spos\u00f3b ich przechowywania w heapie. Na razie nie ma propozycji konkretnego syntaxu, dla uproszczenia tw\u00f3rcy w korespondencji u\u017cywaj\u0105 sk\u0142adni zbli\u017conej do Kotlinowej (<code>Foo!<\/code> jako non-null Foo i <code>Foo?<\/code> dla wariantu <code>Foo<\/code> lub null). Jest to jednak jeszcze bardzo wczesny etap, a tw\u00f3rcy nie wykluczaj\u0105 jednak u\u017cycia do tego celu jakiej\u015b adnotacji pokroju <code>@NonNull<\/code>.<\/p>\n","innerContent":["\n<p>Nowa funkcja ma pozwoli\u0107 obiektom jasno oznacza\u0107, czy dopuszczaj\u0105&nbsp;nullowalno\u015b\u0107 czy nie i zachowywa\u0107 t\u0105 informacj\u0119 w runtime. Dzi\u0119ki temu JVM b\u0119dzie w stanie optymalizowa\u0107 spos\u00f3b ich przechowywania w heapie. Na razie nie ma propozycji konkretnego syntaxu, dla uproszczenia tw\u00f3rcy w korespondencji u\u017cywaj\u0105 sk\u0142adni zbli\u017conej do Kotlinowej (<code>Foo!<\/code> jako non-null Foo i <code>Foo?<\/code> dla wariantu <code>Foo<\/code> lub null). Jest to jednak jeszcze bardzo wczesny etap, a tw\u00f3rcy nie wykluczaj\u0105 jednak u\u017cycia do tego celu jakiej\u015b adnotacji pokroju <code>@NonNull<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A jak ju\u017c nam wysz\u0142o, \u017ce w ka\u017cdej sekcji nawi\u0105zujemy do Kotlina - to podobnie jak w przypadku Wirtualnych W\u0105tk\u00f3w, inne j\u0119zyki u\u017cywaj\u0105ce Javy jako Hosta mog\u0105 na tym tylko zyska\u0107. Tw\u00f3rcy JVM zamierzaj\u0105 bowiem wykorzysta\u0107 znaczniki min. do lepszego zarz\u0105dzania pami\u0119ci\u0105 na poziomie samej maszyny wirtualnej. <\/p>\n","innerContent":["\n<p>A jak ju\u017c nam wysz\u0142o, \u017ce w ka\u017cdej sekcji nawi\u0105zujemy do Kotlina - to podobnie jak w przypadku Wirtualnych W\u0105tk\u00f3w, inne j\u0119zyki u\u017cywaj\u0105ce Javy jako Hosta mog\u0105 na tym tylko zyska\u0107. Tw\u00f3rcy JVM zamierzaj\u0105 bowiem wykorzysta\u0107 znaczniki min. do lepszego zarz\u0105dzania pami\u0119ci\u0105 na poziomie samej maszyny wirtualnej. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przyp\u0142yw podnosi wszystkie \u0142odzie.<\/p>\n","innerContent":["\n<p>Przyp\u0142yw podnosi wszystkie \u0142odzie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14437,"width":360,"height":202,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/7aj6su.gif\" alt=\"\" class=\"wp-image-14437\" width=\"360\" height=\"202\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/7aj6su.gif\" alt=\"\" class=\"wp-image-14437\" width=\"360\" height=\"202\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Warto\u015bciow\u0105 dyskusj\u0119 nad proposalem <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">znajdziecie na reddicie<\/a><\/p>\n","innerContent":["\n<p>Warto\u015bciow\u0105 dyskusj\u0119 nad proposalem <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">znajdziecie na reddicie<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">Nullness markers to enable flattening<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/mail.openjdk.org\/pipermail\/valhalla-spec-experts\/2023-February\/002223.html\">Nullness markers to enable flattening<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">Reddit: Nullness markers to enable flattening<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/10vpelw\/nullness_markers_to_enable_flattening_valhalla\/\">Reddit: Nullness markers to enable flattening<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>PS: Ukaza\u0142 si\u0119 raport <a href=\"https:\/\/spring.io\/blog\/2023\/02\/03\/the-state-of-spring-survey-2022-report\">The State of Spring 2022<\/a><\/h2>\n","innerContent":["\n<h2>PS: Ukaza\u0142 si\u0119 raport <a href=\"https:\/\/spring.io\/blog\/2023\/02\/03\/the-state-of-spring-survey-2022-report\">The State of Spring 2022<\/a><\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przebi\u0142em si\u0119 przez raport, i raczej nie ma w nim niczego rewolucyjnego, ale podziel\u0119 si\u0119 z Wami dwoma faktami, kt\u00f3re przyku\u0142y moje oczy.<\/p>\n","innerContent":["\n<p>Przebi\u0142em si\u0119 przez raport, i raczej nie ma w nim niczego rewolucyjnego, ale podziel\u0119 si\u0119 z Wami dwoma faktami, kt\u00f3re przyku\u0142y moje oczy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14455,"width":500,"height":490,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15.png\" alt=\"\" class=\"wp-image-14455\" width=\"500\" height=\"490\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-15.png\" alt=\"\" class=\"wp-image-14455\" width=\"500\" height=\"490\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Po pierwsze, 35% u\u017cytkownik\u00f3w Springa deklaruje u\u017cywanie jego reaktywnej wersji. Ciekawym jest te\u017c wzrost (cho\u0107 nie jaki\u015b olbrzymi) zastosowa\u0144 Springa w rozwi\u0105zaniach Serverless.<\/p>\n","innerContent":["\n<p>Po pierwsze, 35% u\u017cytkownik\u00f3w Springa deklaruje u\u017cywanie jego reaktywnej wersji. Ciekawym jest te\u017c wzrost (cho\u0107 nie jaki\u015b olbrzymi) zastosowa\u0144 Springa w rozwi\u0105zaniach Serverless.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14457,"width":768,"height":362,"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\/2023\/02\/image-16-1024x482.png\" alt=\"\" class=\"wp-image-14457\" width=\"768\" height=\"362\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/image-16-1024x482.png\" alt=\"\" class=\"wp-image-14457\" width=\"768\" height=\"362\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Spo\u0142eczno\u015b\u0107 Springa (przynajmniej Ci, kt\u00f3rzy o nich s\u0142yszeli) reaguje te\u017c entuzjastycznie na nowo\u015bci w Javie. 90% maj\u0105cych \u015bwiadomo\u015b\u0107 istnienia Looma chcia\u0142aby m\u00f3c u\u017cywa\u0107 go w Springu, a GraalVM jest na radarze a\u017c 98%. Entuzjazm jest, ciekawe ilu osobom rzeczywi\u015bcie uda si\u0119 wprowadzi\u0107 natywne obrazy na produkcj\u0119.<\/p>\n","innerContent":["\n<p>Spo\u0142eczno\u015b\u0107 Springa (przynajmniej Ci, kt\u00f3rzy o nich s\u0142yszeli) reaguje te\u017c entuzjastycznie na nowo\u015bci w Javie. 90% maj\u0105cych \u015bwiadomo\u015b\u0107 istnienia Looma chcia\u0142aby m\u00f3c u\u017cywa\u0107 go w Springu, a GraalVM jest na radarze a\u017c 98%. Entuzjazm jest, ciekawe ilu osobom rzeczywi\u015bcie uda si\u0119 wprowadzi\u0107 natywne obrazy na produkcj\u0119.<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14435","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=14435"}],"version-history":[{"count":10,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14435\/revisions"}],"predecessor-version":[{"id":14501,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14435\/revisions\/14501"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/14475"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=14435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=14435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=14435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}