{"id":17119,"date":"2023-11-29T13:01:08","date_gmt":"2023-11-29T12:01:08","guid":{"rendered":"https:\/\/vived.io\/?p=17119"},"modified":"2023-11-29T13:22:34","modified_gmt":"2023-11-29T12:22:34","slug":"state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/","title":{"rendered":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali &#8211; JVM Weekly vol. 155"},"content":{"rendered":"\n<h2 id=\"1-co-w-2023-ciekawego-mozna-sie-dowiedziec-z-state-of-developer-ecosystem-oraz-jakarta-ee-developer-survey\" data-num=1>1. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey<\/h2>\n\n\n\n<p>Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera &#8211; a wi\u0119c <a href=\"https:\/\/blog.jetbrains.com\/team\/2023\/11\/20\/the-state-of-developer-ecosystem-2023\/\">State of Developer Ecosystem 2023<\/a> (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, posiada wiele interesuj\u0105cych danych kotlinowo\/javowych) oraz Jakarta EE Developers Survey 2023 (a tu to ju\u017c nazwa chyba m\u00f3wi sama za siebie). Nie b\u0119dzie to jaka\u015b mocno wnikliwa analiza &#8211; jako \u017ce same raporty s\u0105 dost\u0119pne publicznie dla ka\u017cdego zainteresowanego &#8211; ale wybior\u0119 ze swojej strony smaczki, kt\u00f3re mi si\u0119 rzuci\u0142y w oczy.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"213\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-32.png\" alt=\"\" class=\"wp-image-17141\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-32.png 652w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-32-300x98.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><figcaption class=\"wp-element-caption\">Kiedy\u015b mi si\u0119 na pewno przydadz\u0105, prawda?<\/figcaption><\/figure><\/div>\n\n\n<p>Najpierw na warsztat we\u017amiemy ten pierwszy i zanim zobaczymy jeszcze szczeg\u00f3\u0142y poszczeg\u00f3lnych j\u0119zyk\u00f3w, zobaczmy sobie jak wed\u0142ug zebranej przez JetBrains pr\u00f3bki 27-tys developer\u00f3w wygl\u0105daj\u0105 obecnie migracje mi\u0119dzy j\u0119zykami.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/uo2Kkkt.png\" alt=\"\" style=\"width:991px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Programi\u015bci zdecydowanie okopali si\u0119 na swoich pozycjach i ci\u0119\u017cko zauwa\u017cy\u0107 jakie\u015b wielkie kierunki migracji (mo\u017ce poza Rust i Go, te dwa j\u0119zyki wydaj\u0105 si\u0119 by\u0107 nieco bardziej przyci\u0105ga\u0107 developer\u00f3w). Szczerze m\u00f3wi\u0105c, to spodziewa\u0142em si\u0119 znacznie wi\u0119kszych liczb przy Pythonie. Og\u00f3lnie wojny j\u0119zyk\u00f3w powoli wydaj\u0105 si\u0119 by\u0107 coraz mniej interesuj\u0105ce, przynajmniej w por\u00f3wnaniu do sza\u0142u sprzed kilku lat. Ci\u0119\u017cko szuka\u0107 jakich\u015b potencjalnie wielkich <em>success stories <\/em>na nast\u0119pne lata, takich pokroju Rusta czy Go.<\/p>\n\n\n\n<p>Z ciekawych obserwacji raportu &#8211; trzeba te\u017c przyzna\u0107, \u017ce Scalowcy s\u0105 swojemu j\u0119zykowi bardzo wierni&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/cTFUleG.png\" alt=\"\" style=\"width:451px;height:auto\"\/><\/figure><\/div>\n\n\n<p>&#8230; ale patrz\u0105c na kolejny wykres &#8211; troch\u0119 ci\u0119\u017cko im si\u0119 dziwi\u0107 \ud83d\ude09.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/U1ofFuS.png\" alt=\"\" style=\"width:521px;height:auto\"\/><\/figure><\/div>\n\n\n<p>A j\u0119zyki pewnie staj\u0105 si\u0119 coraz mniej istotne, bo z ankiety wychodzi, \u017ce j\u0119zykiem wszystkich programist\u00f3w staje si\u0119 j\u0119zyk angielski (czy te\u017c inne j\u0119zyki naturalne), i raczej panuje w ankiecie w tym temacie konsensus:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/jycp1Z3.png\" alt=\"\" style=\"width:863px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Og\u00f3lnie <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/ai\/\">sekcja po\u015bwi\u0119cona generatywnemu AI<\/a> jest ciekawa i posiada sporo insightu na temat adopcji konkretnych narz\u0119dzia czy modeli. Nie b\u0119d\u0119 ca\u0142o\u015bci rozbija\u0142 na czynniki pierwsze, bo ani tu miejsce ani czas, ale polecam chocia\u017c zerkn\u0105\u0107 &#8211; mo\u017ce znajdziecie dla siebie jak\u0105\u015b inspiracj\u0119.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Teraz przejd\u017amy sobie do Javy<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/YfKutbv.png\" alt=\"\"\/><\/figure><\/div>\n\n\n<p>Okazuje si\u0119 bowiem, \u017ce wed\u0142ug danych zebranych przez JetBrains, mamy obecnie Jave dw\u00f3ch pr\u0119dko\u015bci. Z jednej strony bowiem projekty ci\u0105gle tkwi\u0105 na stare\u0144kiej Javie 8, mimo faktu \u017ce ju\u017c w zasadzie nic w ekosystemie jej nie wspiera i ca\u0142y czas dostajemy og\u0142oszenia o jej porzucaniu przez g\u0142\u00f3wnych graczy. Z drugiej za\u015b mamy olbrzymi\u0105 adopcj\u0119 JDK 17. W praktyce &#8211; a przynajmniej w mojej g\u0142owie &#8211; oznacza to, \u017ce w wypadku Javy firmy ju\u017c zostan\u0105 na JDK 8 do ko\u0144ca \u015bwiata (i jeden dzie\u0144 d\u0142u\u017cej). Z drugiej strony je\u017celi ju\u017c kto\u015b przejdzie przez proces migracji, to jest spora szansa, \u017ce ju\u017c zostanie na szybkiej \u015bcie\u017cce aktualizacji na kolejne LTSy.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/IeDd3us.png\" alt=\"\" style=\"width:731px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Tutaj te\u017c jest bardzo ciekawie &#8211; pierwsze miejsce Dockera nie dziwi, za to zaskakuj\u0105ce jest to, \u017ce jednak serwery aplikacyjne bior\u0105 wci\u0105\u017c g\u00f3r\u0119 nad samodzielnymi <code>*.jar<\/code> &#8211; cho\u0107 to akurat mo\u017ce troch\u0119 korelowa\u0107 z Jav\u0105 8 z poprzedniej sekcji. Smuci mnie ma\u0142a popularno\u015b\u0107 GraalVM, za to \u015bmieszy homeopatyczne u\u017cycie <code>jlink<\/code> &#8211; w ramach jednej z moich prezentacji konferencyjnych jak ostatni troll pytam ludzi o faz\u0119 linkowania w Javie, i je\u015bli cho\u0107 jedna osoba skojarzy, to ju\u017c wiem \u017ce mocna grupa si\u0119 trafi\u0142a.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/AM0RDiQ.png\" alt=\"\" style=\"width:806px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Tutaj da\u0142em 2022 do por\u00f3wnania, \u017ceby u\u015bwiadomi\u0107 Wam, jak chorym sukcesem jest Spring i jak mimo ca\u0142ej konkurencji nie traci on trakcji.<\/p>\n\n\n\n<p>Podobnych ciekawych statystyk, dotycz\u0105cych bibliotek, serwer\u00f3w itd jest jeszcze wi\u0119cej, ale ekipa z JetBrains i zaproszeni go\u015bcie zrobili tam ju\u017c w\u0142asn\u0105 analiz\u0119, wi\u0119c <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/java\/\">odsy\u0142am Was do oryginalnego dokumentu<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">To teraz pora na Kotlina<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/bot3uvr.png\" alt=\"\"\/><\/figure><\/div>\n\n\n<p>Rewolucji nie stwierdzono. Serwerowe u\u017cycie powr\u00f3ci\u0142o do procentowego udzia\u0142u z 2021, ro\u015bnie Multiplatform. Nothing to see there&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/kTjfFAF.png\" alt=\"\" style=\"width:724px;height:auto\"\/><\/figure><\/div>\n\n\n<p>&#8230; za to tutaj jak por\u00f3wnamy do wynik\u00f3w w przypadku Javy, to totalna dominacja Gradle robi wra\u017cenie nie mniejsze, ni\u017c dominacja Springa w domenie javowych framework\u00f3w.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/UXCJXQK.png\" alt=\"\"\/><\/figure><\/div>\n\n\n<p>Ten wykresie zostawiam tylko, \u017ceby podzieli\u0107 si\u0119 obserwacj\u0105, \u017ce <strong>&#8222;Which JetBrains Kotlin libraries and tools do you currently use?&#8221;<\/strong> jest prawdopodobnie to\u017csame z <strong>&#8222;Which Kotlin libraries and tools do you currently use?&#8221;<\/strong>. Istnieje totalna dominacja JetBrains w tej kwestii.<\/p>\n\n\n\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/kotlin\/\">raport tutaj<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">No to jeszcze kr\u00f3tko o Scali<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/C0RIV4m.png\" alt=\"\" style=\"width:681px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Te liczby pewnie \u0142atwo skomentowa\u0107 &#8222;Scala 3.0 dalej w tyle&#8221;, ale nie pokazuj\u0105 one trendu. Dla por\u00f3wnania, dane z zesz\u0142ego roku \ud83d\udc47<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/lW62QP2.png\" alt=\"\" style=\"width:372px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Scala 3.0 bowiem ro\u015bnie, i to bardzo elegancko. Cho\u0107 zastanawiaj\u0105cy jest te\u017c wzrost Scali 2.13 &#8211; i to co ciekawe nawet w por\u00f3wnaniu do 2021. Mo\u017cliwe, \u017ce istniej\u0105 po prostu dwie \u015bcie\u017cki kanibalizacji Scali 2.12 i 2.11 &#8211; cz\u0119\u015b\u0107 projekt\u00f3w decyduje si\u0119 na przej\u015bcie do najnowszej wersji ga\u0142\u0119zi 2.x<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/T6jZox3.png\" alt=\"\" style=\"width:919px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Je\u015bli chodzi o Akke &#8211; to jestem zaskoczony, jak wszystko stabilnie si\u0119 trzyma w statystykach, mimo kontrowersji z nowym modelem licencyjnym. Ale pewnie trudno pozby\u0107 si\u0119 trzonu istniej\u0105cych system\u00f3w i powodu, dla kt\u00f3rego projekty w og\u00f3le w Scale inwestowa\u0142y.<\/p>\n\n\n\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/scala\/\">raport ponownie tutaj<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>I jeszcze kilka wniosk\u00f3w z Jakarta EE Developer Survey 2023 &#8211; aczkolwiek sam raport jest tutaj nieco mniej rozbudowany, bo dotyczy jednej tylko technologii, i te\u017c mamy dost\u0119p do samego &#8222;Executive Summary&#8221;.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"405\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-26.png\" alt=\"\" class=\"wp-image-17125\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-26.png 576w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-26-300x211.png 300w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/figure><\/div>\n\n\n<p>O ile popularno\u015b\u0107 Jakarty EE 10 jest logiczna, bior\u0105c pod uwag\u0119 jak ca\u0142y ekosystem si\u0119 na ni\u0105 przepina, to dla mnie najwi\u0119kszym zaskoczeniem by\u0142 procentowy wzrost&#8230; Jakarty EE 8. Po d\u0142u\u017cszym zastanowieniu jest to jednak logiczne &#8211; prawdopodobnie s\u0105 to migracje z Java EE 8. Z punktu widzenia modernizacji jest to naturalny pierwszy krok.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"241\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27.png\" alt=\"\" class=\"wp-image-17127\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27.png 935w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27-300x77.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27-768x198.png 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure><\/div>\n\n\n<p>Ciekawie prezentuj\u0105 si\u0119 te\u017c priorytety spo\u0142eczno\u015bci &#8211; wida\u0107, \u017ce ch\u0119\u0107 konteneryzacji dalej jest w ludziach silna, co samo w sobie b\u0119dzie promowa\u0142o rozwi\u0105zania zwi\u0105zane z szybkim startem aplikacji. My\u015bl\u0119, \u017ce dobrze to koreluje z punktem numer 2, czyli mikroserwisami (cho\u0107 z mojej perspektywy, po wdro\u017ceniu Core Profile ju\u017c jest naprawd\u0119 dobrze) oraz czwartym, czyli server. No i ja te\u017c bardzo czkam na to, w jaki spos\u00f3b rozwi\u0105zana b\u0119dzie kwestia standaryzacji Virtual Thread\u00f3w i w kt\u00f3rych cz\u0119\u015bciach specyfikacji si\u0119 one znajd\u0105.<\/p>\n\n\n\n<p>Przyznam, \u017ce troch\u0119 brakowa\u0142o mi w raporcie cz\u0105stkowych danych &#8211; czu\u0107, \u017ce jednak pracujemy tutaj na typowym Executive Summary. Przyk\u0142adowo, mamy zobrazowane pewne trendy:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"368\" height=\"332\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-29.png\" alt=\"\" class=\"wp-image-17131\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-29.png 368w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-29-300x271.png 300w\" sizes=\"auto, (max-width: 368px) 100vw, 368px\" \/><\/figure><\/div>\n\n\n<p>ale osobi\u015bcie jestem ciekawy pe\u0142nego roz\u0142o\u017cenia nie tylko LTS-\u00f3w JDK, a te\u017c wersji starszych ni\u017c JDK 9 czy u\u017cy\u0107 konkretnych serwer\u00f3w aplikacyjnych. Pe\u0142ne dane s\u0105 niestety dost\u0119pne tylko dla cz\u0142onk\u00f3w Jakarta EE Working Group&#8230; ale aktywnie nad tym te\u017c ju\u017c pracuje, mo\u017ce ju\u017c nied\u0142ugo b\u0119d\u0119 mia\u0142 dla Was jakie\u015b og\u0142oszenia \ud83e\udd1e<\/p>\n\n\n\n<p>Wspomniany raport dostaniecie zostawiaj\u0105c <a href=\"https:\/\/outreach.eclipse.foundation\/jakarta-ee-developer-survey-2023\">e-mail oraz dusz\u0119 tutaj<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"445\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-31.png\" alt=\"\" class=\"wp-image-17137\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-31.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-31-300x267.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Z t\u0105 dusz\u0105 to nie jestem akurat pewien, <a href=\"https:\/\/www.foxnews.com\/tech\/7500-online-shoppers-unknowingly-sold-their-souls\">nie czyta\u0142em polityki prywatno\u015bci<\/a>.<\/figcaption><\/figure><\/div>\n\n\n<h2 id=\"2-wlasciciele-springa-przejeci-przez-broadcom\" data-num=2>2. W\u0142a\u015bciciele Springa przej\u0119ci przez Broadcom<\/h2>\n\n\n\n<p>To teraz og\u0142oszenie na styku biznesu i \u015bwiata technologii. Dla nikogo zaskoczeniem nie b\u0119dzie, \u017ce du\u017ce projekty Open-Source w dzisiejszych czasach zwykle posiadaj\u0105 swoich korporacyjnych sponsor\u00f3w, a wielu ludzi rozwijaj\u0105cych je robi\u0105 to w ramach firmowych etat\u00f3w. Tydzie\u0144 temu pisali\u015bmy o wysypie nowo\u015bci i du\u017cych premier w ekosystemie Springa, projekt wydaje si\u0119 wi\u0119c by\u0107 w najlepszym miejscu od lat. Przykro s\u0142ysze\u0107 wi\u0119c o tym, \u017ce od strony backstage dziej\u0105 si\u0119 zawirowania. A aby to wyja\u015bni\u0107, wybaczcie mi za to, \u017ce b\u0119d\u0119 musia\u0142 wprowadzi\u0107 nieco korporacyjnej struktury, w stopniu minimalnym, \u017ceby wyja\u015bni\u0107 co si\u0119 dzieje.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"532\" height=\"661\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-33.png\" alt=\"\" class=\"wp-image-17145\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-33.png 532w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-33-241x300.png 241w\" sizes=\"auto, (max-width: 532px) 100vw, 532px\" \/><figcaption class=\"wp-element-caption\">Powy\u017cszy obrazek jest tu bez \u017cadnego kontekstu i nie ma nic wsp\u00f3lnego z tre\u015bci\u0105 sekcji. W\u0142a\u015bciwie nie wiem sk\u0105d on si\u0119 tu w og\u00f3le wzi\u0105\u0142&#8230;<\/figcaption><\/figure><\/div>\n\n\n<p>Pivotal Software (stoj\u0105cy za Springiem) i VMware maj\u0105 ze sob\u0105 silne powi\u0105zania historyczne i biznesowe. Pivotal, specjalizuj\u0105cy si\u0119 w rozwoju platformy chmurowej i narz\u0119dzi programistycznych, zosta\u0142 pierwotnie za\u0142o\u017cony jako niezale\u017cna firma przez EMC Corporation, kt\u00f3ra posiada\u0142a tak\u017ce wi\u0119kszo\u015bciowy udzia\u0142 w VMware, lidera w bran\u017cy wirtualizacji i infrastruktury chmurowej. W 2012 roku VMware i EMC wsp\u00f3lnie zainwestowa\u0142y w Pivotal, a w 2013 roku Pivotal zosta\u0142 oficjalnie wydzielony jako oddzielna firma. W 2019 VMware przej\u0119\u0142o Pivotal, co nie tylko pog\u0142\u0119bi\u0142o ich zwi\u0105zek, ale tak\u017ce wzmocni\u0142o pozycj\u0119 VMware w obszarze rozwoju aplikacji i us\u0142ug chmurowych, korzystaj\u0105c z ekspertyzy Pivotal w tym zakresie &#8211; jak cho\u0107by ich rozwi\u0105za\u0144 Cloud Foundry.<\/p>\n\n\n\n<p>Tu jednak historia si\u0119 nie ko\u0144czy. Broadcom, znany g\u0142\u00f3wnie z produkcji p\u00f3\u0142przewodnik\u00f3w, podj\u0105\u0142 decyzj\u0119 o rozszerzeniu swojej dzia\u0142alno\u015bci na rynku oprogramowania, co by\u0142o cz\u0119\u015bci\u0105 szerszej strategii dywersyfikacji firmy. Wyb\u00f3r pad\u0142 na VMware, jako \u017ce firma uznawana jest za lidera w dziedzinie wirtualizacji i infrastruktury chmurowej, co stanowi\u0142o atrakcyjny kierunek rozwoju dla Broadcom. Przej\u0119cie rozpocz\u0119te w maju 2022, a b\u0119d\u0105ce jedn\u0105 z wi\u0119kszych transakcji tego typu opiewaj\u0105c\u0105 na 69 miliard\u00f3w dolar\u00f3w, domkni\u0119to finalnie w zesz\u0142ym tygodniu, 22 listopada.<\/p>\n\n\n\n<p>Przechodzimy do stanu dzisiejszego &#8211; bardzo szybko po transakcji dosz\u0142o do serii zwolnie\u0144 w firmie. Nie wiemy jaki jest ich zakres, ale na pewno zaafektowa\u0142y one te\u017c zesp\u00f3\u0142 odpowiadaj\u0105cy za najpopularniejszy javowy framework. Oliver Drotbohm, architekt Springa, kt\u00f3ry od ponad dekady prowadzi projekt Spring Data, podsumowa\u0142 ca\u0142o\u015b\u0107 wymownie.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/QMoyrOJ.png\" alt=\"\" style=\"width:657px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Jako, \u017ce nie mamy \u017cadnych oficjalnych komunikat\u00f3w nie b\u0119d\u0119 si\u0119 tutaj bawi\u0142 w przypuszczenia. Jedyne co, to wszystkim zaafektowanym \u017cycz\u0119 odpoczynku i szybkiego znalezienia dla siebie r\u00f3wnie dobrego, albo i lepszego nowego miejsca.<\/p>\n\n\n\n<h2 id=\"3-release-radar\" data-num=3>3. Release Radar<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Micronaut 4.20<\/h3>\n\n\n\n<p>W najnowszej wersji <a href=\"https:\/\/micronaut.io\/2023\/11\/17\/micronaut-framework-4-2-0-released\/\">Micronaut Framework 4.2.0<\/a> wprowadzono kilka istotnych zmian dotycz\u0105cych Kotlina i Gradle. Po pierwsze, dosz\u0142o do usprawnie\u0144 w integracji z Kotlin Symbol Processing (KSP). Wprowadzono tak\u017ce wsparcie dla Kotlin 1.9.20 i KSP 1.9.20-1.0.13, a tak\u017ce Ktor 2.3.5. Co wi\u0119cej, dla Gradle, nowe aplikacje domy\u015blnie u\u017cywaj\u0105 Gradle z Kotlin DSL, kt\u00f3ry zapewnia lepsz\u0105 integracj\u0119 z IDE, a tak\u017ce Kotlin DSL sta\u0142 si\u0119 domy\u015blnym dla Gradle\u200b\u200b\u200b\u200b\u200b\u200b. <strong>Micronaut Data<\/strong> wprowadzono korutynowe warianty operacji po\u0142\u0105czeniowych i transakcyjnych &#8211; odpowiednio <code>CoroutineConnectionOperation<\/code> oraz <code>CoroutineTransactionOperatio<\/code>.<\/p>\n\n\n\n<p>Nowe <strong>Micronaut Data<\/strong> to te\u017c wywo\u0142ania procedur w repozytoriach czy wsparcie dla asocjacji w DTOsach, czy Pozosta\u0142e aktualizacje obejmuj\u0105 wsparcie dla GraalVM z flag\u0105 <code>--strict-image-heap<\/code>, kt\u00f3re stanie si\u0119 domy\u015blne w nast\u0119pnej wersji GraalVM Native Image. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 wyboru Java 21 w <strong>Micronaut Launch<\/strong> lub <strong>CLI<\/strong>. W . Aktualizacje obj\u0119\u0142y r\u00f3wnie\u017c wiele innych modu\u0142\u00f3w, takich jak <strong>Micronaut Test<\/strong>, <strong>Micronaut Tracing<\/strong>, <strong>Micronaut Micrometer<\/strong>, <strong>Micronaut OpenAPI<\/strong>, a tak\u017ce wsparcie dla r\u00f3\u017cnych technologii, w tym <strong>GCP<\/strong>, <strong>Kafka<\/strong>, <strong>RabbitMQ<\/strong>, <strong>Redis<\/strong>, i wiele innych<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vert.x 4.5<\/h3>\n\n\n\n<p>Pami\u0119ta kto\u015b Vert.x? Projekt ten, b\u0119d\u0105cy wieloj\u0119zycznym zestaw narz\u0119dzi do tworzenia reaktywnych aplikacji na serwerze JVM, zgubi\u0142 sporo swojej trakcje wraz ze zmniejszeniem si\u0119 hype na programowanie reaktywne (bardzo ch\u0119tnie po\u015bwi\u0119ci\u0142bym temu kt\u00f3re\u015b z przysz\u0142ych wyda\u0144) i musi wymy\u015ble\u0107 si\u0119 troch\u0119 na nowo. Nic nie u\u015bwiadamia tego tak bardzo, jak nowe wydanie.<\/p>\n\n\n\n<p><a href=\"https:\/\/vertx.io\/blog\/eclipse-vert-x-4-5-0\/\">Vert.x 4.5<\/a> zaskakuje wprowadzeniem wirtualnych w\u0105tk\u00f3w z Javy 21. Jest to znacz\u0105ce, poniewa\u017c Vert.x znany jest z asynchronicznego (i reaktywnego) przetwarzania zapyta\u0144 w ramach \u0142a\u0144cuch\u00f3w kolejnych akcji, a wirtualne w\u0105tki pozwalaj\u0105 na pisanie kodu, kt\u00f3ry wydaje si\u0119 by\u0107 synchroniczny. To umo\u017cliwia \u0142atwiejsze zarz\u0105dzanie z\u0142o\u017conymi workflowami, jednocze\u015bnie zachowuj\u0105c asynchroniczne korzenie &#8211; w mojej g\u0142owie to wrappowanie zapyta\u0144 w <code>Future.await<\/code> wywraca jednak spos\u00f3b pisania w Vert.x do g\u00f3ry nogami, zw\u0142aszcza, \u017ce akurat mam sporo komercyjnego do\u015bwiadczenia z rozwi\u0105zaniem.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Verticle verticle = new AbstractVerticle() {\n  @Override\n  public void start() {\n    HttpClient client = vertx.createHttpClient();\n    HttpClientRequest req = Future.await(client.request(\n      HttpMethod.GET,\n      8080,\n      &quot;localhost&quot;,\n      &quot;\/&quot;));\n    HttpClientResponse resp = Future.await(req.send());\n    int status = resp.statusCode();\n    Buffer body = Future.await(resp.body());\n  }\n};\n<\/code><\/pre>\n\n\n\n<p>Cho\u0107 to pewnie po prostu ja, i dla kogo\u015b startuj\u0105cego z projektem b\u0119dzie to co\u015b zupe\u0142nie naturalnego.<\/p>\n\n\n\n<p>W tej wersji dodano tak\u017ce dynamiczne tworzenie po\u0142\u0105cze\u0144 SQL, co umo\u017cliwia elastyczne \u0142\u0105czenie si\u0119 z r\u00f3\u017cnymi bazami danych. Wprowadzono r\u00f3wnie\u017c wsparcie dla transakcyjnych tryb\u00f3w pulowania po\u0142\u0105cze\u0144 dla proxy na 7 poziomie sieci, takich jak <strong>PgBouncer<\/strong>.<\/p>\n\n\n\n<p>Nowo\u015bci\u0105 jest te\u017c mo\u017cliwo\u015b\u0107 aktualizacji konfiguracji SSL TCP w czasie rzeczywistym, co jest przydatne przy rotacji certyfikat\u00f3w. Ponadto, Vert.x 4.5 wprowadza oddzielny klient <code>WebSocket<\/code>, co pozwala na lepsze rozgraniczenie interakcji HTTP od tych na WebSocket. Wreszcie, dodano builder dla zaawansowanego tworzenia Vert.x-owych klient\u00f3w, co u\u0142atwia ich konfiguracj\u0119.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">EclipseStore 1.0<\/h3>\n\n\n\n<p>Tu mamy naprawd\u0119 ciekawe wydanie. Ale zanim b\u0119dziemy mogli opowiedzie\u0107 o Eclipse Stor\u0119, najpierw musimy powiedzie\u0107 sobie o MicroStream.<\/p>\n\n\n\n<p>MicroStream natywna dla Javy, stworzona z my\u015bl\u0105 o mikroserwisach oraz i serverlessie warstwa trwa\u0142o\u015bci &#8222;databaseless&#8221; (mamy serverless, to zdzier\u017cymy te\u017c ten skr\u00f3t). Jest to bardzo ciekawe rozwi\u0105zanie, umo\u017cliwiaj\u0105ce na zapisywanie w pami\u0119ci grafu obiekt\u00f3w Java bez wzgl\u0119du na jego wielko\u015b\u0107 i z\u0142o\u017cono\u015b\u0107, zapewniaj\u0105c przy tym pe\u0142n\u0105 sp\u00f3jno\u015b\u0107 transakcji. Dane s\u0105 \u0142adowane i przywracane z pami\u0119ci automatycznie, a mechanizm Lazy-Loading pozwala na optymalizacji jej zu\u017cycia.<\/p>\n\n\n\n<p>Niedawno sta\u0142a si\u0119 oficjalnym projektem Eclipse Foundation pod nazw\u0105 <a href=\"https:\/\/microstream.one\/blog\/article\/eclipse-serializer-1-0-final-release-is-now-available\/\">EclipseStore 1.0<\/a>, kt\u00f3ry powsta\u0142 na bazie kodu MicroStream wersji 8. Rozw\u00f3j MicroStream zosta\u0142 w zwi\u0105zku z tym zako\u0144czony, a wszystkie nowe funkcje b\u0119d\u0105 wydawane tylko w ramach projektu EclipseStore. Zesp\u00f3\u0142 MicroStream b\u0119dzie kontynuowa\u0142 intensywn\u0105 prac\u0119 nad projektem, rozwijaj\u0105c nowe funkcje i prezentuj\u0105c je na nadchodz\u0105cym EclipseStore Summit 2023 &#8211; maj\u0105 rozmach.<\/p>\n\n\n\n<p>Co ciekawe, nie mamy do czynienia z typowym &#8222;death by open sourcing&#8221;. EclipseStore pozostaje dla MicroStream kluczowym projektem, stanowi\u0105c baz\u0119 dla jego komercyjnej oferty, jak\u0105 s\u0105 MicroStream Cluster oraz MicroStream Enterprise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hibernate 6.4<\/h3>\n\n\n\n<p>W najnowszej wersji <a href=\"https:\/\/in.relation.to\/2023\/11\/23\/orm-640-final\">Hibernate ORM 6.4.0<\/a> wprowadzono kilka kluczowych zmian. Jedn\u0105 z nich jest wsparcie dla &#8222;mi\u0119kkiego usuwania&#8221; poprzez now\u0105 adnotacj\u0119 <code>@SoftDelete<\/code>. Umo\u017cliwia ona oznaczenie warto\u015bci jako usuni\u0119tych\/nieusuni\u0119tych (pokroju kolumny <code>deleted<\/code> typu boolean, my\u015bl\u0119 \u017ce rozumiecie o co chodzi). Dodano r\u00f3wnie\u017c nowy modu\u0142 <code>hibernate-vector<\/code>, kt\u00f3ry oferuje wsparcie dla typ\u00f3w wektorowych i funkcji matematycznych u\u017cytecznych w obszarze AI\/ML, umo\u017cliwiaj\u0105cych wyszukiwanie podobie\u0144stwa wektorowego. Na ten moment wspiera on jednak tylko PostgreSQL z w\u0142\u0105czonym rozszerzeniem <code>pgvector\u200b\u200b\u200b\u200b<\/code>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"524\" height=\"499\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-40.png\" alt=\"\" class=\"wp-image-17187\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-40.png 524w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-40-300x286.png 300w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><figcaption class=\"wp-element-caption\">Ciekaw czemu tak nagle&#8230;<\/figcaption><\/figure><\/div>\n\n\n<p>Ponadto, Hibernate ORM 6.4.0 dodaje nowe funkcje do obs\u0142ugi tablic w zapytaniach HQL i Criteria. Zaktualizowano tak\u017ce wsparcie dla zdarze\u0144 Java Flight Recorder (JFR) &#8211; ze wzgl\u0119du na r\u00f3\u017cnice w implementacji JFR stworzono oddzielny modu\u0142 <code>hibernate-jfr<\/code>, zapewnieniaj\u0105cy kompatybilno\u015b\u0107 miedzy nimi. Ciekaw\u0105 nowo\u015bci\u0105 jest te\u017c wsparcie dla u\u017cywania <code>tenant-id<\/code> z typami innymi ni\u017c String, popularnej funkcji dla aplikacji ze wsparciem MutliTenancy. U\u017cycie <code>tenant-id<\/code> pozwala na efektywne zarz\u0105dzanie dost\u0119pem i segregacj\u0119 danych, zapewniaj\u0105c, \u017ce dane jednego klienta nie s\u0105 dost\u0119pne dla innego.<\/p>\n\n\n\n<p>PS: Pojawi\u0142a si\u0119 te\u017c <a href=\"https:\/\/in.relation.to\/2023\/11\/28\/hibernate-reactive-2_2_Final\/\">wersja 2.2<\/a> Hibernate Reactive, ale jest w zasadzie wrapperem nad Hibernate ORM 6.4.0.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AWS SDK for Kotlin<\/h3>\n\n\n\n<p>Aktualnie w Las Vegas odbywa si\u0119 re:Invent &#8211; coroczna konferencja Amazon Web Services. W zesz\u0142ym roku jedn\u0105 z zapowiedzi kt\u00f3re otrzymali\u015bmy by\u0142 AWS Lambda SnapStart, integruj\u0105cy CRaC z AWS Lambda. W tym roku (jak na razie) og\u0142osze\u0144 JVM-owych jest mniej, ale uda\u0142o mi si\u0119 wy\u0142uska\u0107 ciekawe &#8211; wydano bowiem AWS SDK dla Kotlina!<\/p>\n\n\n\n<p>API biblioteki zosta\u0142o stworzone w idiomatycznym Kotlinie, i zawiera typowe dla j\u0119zyka DSL-e oraz wsparcie dla asynchronicznych wywo\u0142a\u0144 us\u0142ug AWS przy u\u017cyciu coroutines. Obecna wersja pozwala deweloperom na prac\u0119 na platformach JVM lub Android API Poziom 24+, z planowanym wsparciem dla dodatkowych platform takich jak Kotlin\/Native w przysz\u0142ych wydaniach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Micrometer 1.12<\/h3>\n\n\n\n<p>Micrometer powoli staje si\u0119 standardem je\u015bli chodzi o monitoring aplikacji Javowych. Do najwa\u017cniejszych nowo\u015bci <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/releases\/tag\/v1.12.0\">wersji 1.12<\/a> nale\u017cy wsparcie dla Jetty 12 w <code>JettyConnectionMetrics<\/code>, wsparcie \u015bwie\u017cutkiego generacyjnego ZGC, usuni\u0119cie <code>native-image.properties<\/code> z <code>micrometer-core<\/code>, a tak\u017ce dodanie instrumentacji obserwacji dla Jakarta JMS. Dodano r\u00f3wnie\u017c skr\u00f3t do przypisywania dynamicznych tag\u00f3w do metryk.<\/p>\n\n\n\n<p>Za\u0142atano te\u017c sporo bug\u00f3w <a class=\"autolink\" href=\"https:\/\/m.in\">m.in<\/a>. napraw\u0119 b\u0142\u0119d\u00f3w w serializacji metadanych w <strong>Dynatrace v2<\/strong>, poprawki w liczeniu asynchronicznych zdarze\u0144 <strong>log4j2<\/strong>, czy napraw\u0119 zale\u017cno\u015bci na <strong>Guav\u0119<\/strong> w module <strong>Stackdriver<\/strong>. Ponadto, w tej wersji zaktualizowano wiele zale\u017cno\u015bci, w tym <code>archunit-junit5<\/code>, <code>mockito-core<\/code>, <code>junit<\/code> czy <code>mongodb-driver-sync<\/code>\u200b\u200b\u200b\u200b.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sieroty po release Springa &#8211; nowe wersje Modulith i Vault<\/h3>\n\n\n\n<p>A na koniec, dwa wydania towarzysz\u0105ce Springowi, kt\u00f3re nie zd\u0105\u017cy\u0142y si\u0119 za\u0142apa\u0107 na poprzedni\u0105 edycj\u0119:<\/p>\n\n\n\n<p>W najnowszej wersji <a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-vault-3-1-available\">Spring Vault 3.1<\/a> wprowadzono aktualizacj\u0119 do Spring Framework 6.1, wsparcie dla uwierzytelniania JWT dzi\u0119ki <code>JwtAuthentication<\/code>, nowy interfejs <code>AuthenticationEventMulticaster<\/code>, umo\u017cliwiaj\u0105cy odnowienia Leases, gdy token logowania wygas\u0142. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c lepsze wsparcie dla reaktywno\u015bci.<\/p>\n\n\n\n<p><a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-modulith-1-1-ga-and-1-0-3-released\">Spring Modulith 1.1<\/a> przynosi za\u015b szczeg\u00f3lnie wsparcie dla eksternalizacji zdarze\u0144 do AMQP, Kafka, JMS, AWS SNS i SQS, API do obs\u0142ugi zako\u0144czonych i niezako\u0144czonych publikacji zdarze\u0144. Wzmocniono te\u017c ograniczenia relacji dla kodu w g\u0142\u00f3wnym katalogu aplikacji &#8211; w praktyce oznacza to, \u017ce Spring Modulith sprawdza i egzekwuje zasady dotycz\u0105ce tego, jak modu\u0142y mog\u0105 si\u0119 ze sob\u0105 komunikowa\u0107 i wsp\u00f3\u0142dzia\u0142a\u0107, ograniczaj\u0105c mo\u017cliwo\u015b\u0107 tworzenia niepo\u017c\u0105danych zale\u017cno\u015bci mi\u0119dzy nimi. Dodano te\u017c wsparcie dla aktuator\u00f3w w obrazach natywnych czy implementacj\u0119 Neo4j Event Publication Repository. Osobi\u015bcie bardzo za\u015b doceniam warianty Kotlina i Gradle Kotlin DSL zar\u00f3wno dla przyk\u0142ad\u00f3w kodu, jak i konfiguracji.<\/p>\n\n\n\n<h2 id=\"bonus-advent-of-code-2023-with-kotlin\" data-num=4>Bonus &#8211; Advent of Code 2023 with Kotlin! \ud83c\udf84<\/h2>\n\n\n\n<p>To jeszcze na koniec &#8211; kto ma PTSD widz\u0105c ten obrazek? <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"634\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39-1024x634.png\" alt=\"\" class=\"wp-image-17171\" style=\"width:632px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39-1024x634.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39-300x186.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39-768x476.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39.png 1106w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Ta sekcja jest dla Was \ud83c\udf84<\/figcaption><\/figure><\/div>\n\n\n<p>Jako \u017ce zbli\u017ca nam si\u0119 sezon \u015bwi\u0105teczny &#8211; ju\u017c nied\u0142ugo zaczyna si\u0119 <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Jest to coroczny konkurs programistyczny, w kt\u00f3rym \u015bmia\u0142kowie \u015bcigaj\u0105 si\u0119 w rozwi\u0105zywaniu zada\u0144 programistycznych o coraz wi\u0119kszym poziomie z\u0142o\u017cono\u015bci&#8230; p\u00f3\u017aniejsze tygodnie s\u0105 ju\u017c naprawd\u0119 wymagaj\u0105ce. Uwierzcie mi, b\u0119d\u0119 si\u0119 w to bawi\u0142 czwarty rok.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"329\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-36.png\" alt=\"\" class=\"wp-image-17159\" style=\"width:757px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-36.png 757w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-36-300x130.png 300w\" sizes=\"auto, (max-width: 757px) 100vw, 757px\" \/><figcaption class=\"wp-element-caption\">Bo c\u00f3\u017c mo\u017ce by\u0107 zabawniejszego w okresie przed\u015bwi\u0105tecznym.<\/figcaption><\/figure><\/div>\n\n\n<p>Jak w zesz\u0142ym roku, <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/advent-of-code-2023-with-kotlin\/\">JetBrains zaprosi\u0142o spo\u0142eczno\u015b\u0107 do rozwi\u0105zywania kolejnych zada\u0144 w Kotlinie<\/a>, tworz\u0105c min. w\u0142asne leaderboardy czy obiecuj\u0105c nagrody ka\u017cdemu, kto wykona przynajmniej trzy zadania (i nie b\u0119dzie u\u017cywa\u0142 do tego LLM). Przygotowali te\u017c gotowe repo do sklonowania dla ka\u017cdego, kto chcia\u0142by dosta\u0107 jak\u0105\u015b bazow\u0105 struktur\u0119 do rozwi\u0105zywania zada\u0144. Je\u015bli gdzie\u015b si\u0119 zatniecie, b\u0119d\u0105 te\u017c publikowali lifestreamy z rozwi\u0105zywania zada\u0144 w idiomatycznym Kotlinie.<\/p>\n\n\n\n<p>A je\u015bli chcecie do\u0142\u0105czy\u0107 do jakiego\u015b lokalnego LeaderBoardu, zapraszam do jednego, w kt\u00f3rym sam sam si\u0119 \u015bciga\u0142 &#8211; aczkolwiek podejrzewam, \u017ce cho\u0107by pisanie tego newslettera, jak i inne obowi\u0105zki (jeden z nich ma 2.5 roku) sprawi\u0105, \u017ce nie b\u0119d\u0119 trudnym przeciwnikiem \ud83e\udd74<\/p>\n\n\n\n<p>Kod znajdziecie tutaj <strong>3230435-45a28415<\/strong> (a poda\u0107 go <a href=\"https:\/\/adventofcode.com\/2023\/leaderboard\/private\">trzeba tutaj<\/a>), a nasz\u0105 <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">aktywn\u0105 grup\u0119 wsparcia tutaj<\/a>.<\/p>\n\n\n\n<p>Aczkolwiek ostatnie lata nauczy\u0142y mnie, \u017ce w Advent of Code wa\u017cniejsza jest systematyczno\u015b\u0107 i up\u00f3r, nie maszynowe wypluwanie kodu. To zostawmy GPT-4.<\/p>\n\n\n\n<p>PS: Ja w tym roku zdecydowanie nie kombinuje i te\u017c pisz\u0119 w Kotlinie. Mi\u0142ego wstawania o 6:00!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"650\" height=\"455\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-35.png\" alt=\"\" class=\"wp-image-17153\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-35.png 650w, https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-35-300x210.png 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"wp-element-caption\">Cho\u0107 jak co roku si\u0119 zastanawiam &#8211; dlaczego my sobie to w og\u00f3le robimy&#8230;<\/figcaption><\/figure><\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera &#8211; a wi\u0119c State of Developer Ecosystem 2023 (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":17165,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259,1],"tags":[],"class_list":["post-17119","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl","category-no-category"],"acf":{"estimated_reading_time":"16","feature_image_blog":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/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>State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - 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\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - Vived\" \/>\n<meta property=\"og:description\" content=\"1. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera &#8211; a wi\u0119c State of Developer Ecosystem 2023 (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-29T12:01:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-29T12:22:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/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\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali &#8211; JVM Weekly vol. 155\",\"datePublished\":\"2023-11-29T12:01:08+00:00\",\"dateModified\":\"2023-11-29T12:22:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\"},\"wordCount\":3203,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png\",\"articleSection\":[\"JVM\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\",\"url\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\",\"name\":\"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png\",\"datePublished\":\"2023-11-29T12:01:08+00:00\",\"dateModified\":\"2023-11-29T12:22:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali &#8211; JVM Weekly vol. 155\"}]},{\"@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":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - 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\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/","og_locale":"pl_PL","og_type":"article","og_title":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - Vived","og_description":"1. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera &#8211; a wi\u0119c State of Developer Ecosystem 2023 (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, [&hellip;]","og_url":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/","og_site_name":"Vived","article_published_time":"2023-11-29T12:01:08+00:00","article_modified_time":"2023-11-29T12:22:34+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/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\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali &#8211; JVM Weekly vol. 155","datePublished":"2023-11-29T12:01:08+00:00","dateModified":"2023-11-29T12:22:34+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/"},"wordCount":3203,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png","articleSection":["JVM","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/","url":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/","name":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali - JVM Weekly vol. 155 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png","datePublished":"2023-11-29T12:01:08+00:00","dateModified":"2023-11-29T12:22:34+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/JVM-Weekly-1200x628_V2-4.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/state-of-developer-ecosystem-2023-wnioski-o-javie-kotlinie-i-scali-jvm-weekly-vol-155\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"State of Developer Ecosystem 2023: Wnioski o Javie, Kotlinie i Scali &#8211; JVM Weekly vol. 155"}]},{"@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. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Co w 2023 ciekawego mo\u017cna si\u0119 dowiedzie\u0107 z State of Developer Ecosystem oraz Jakarta EE Developer Survey<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera - a wi\u0119c <a href=\"https:\/\/blog.jetbrains.com\/team\/2023\/11\/20\/the-state-of-developer-ecosystem-2023\/\">State of Developer Ecosystem 2023<\/a> (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, posiada wiele interesuj\u0105cych danych kotlinowo\/javowych) oraz Jakarta EE Developers Survey 2023 (a tu to ju\u017c nazwa chyba m\u00f3wi sama za siebie). Nie b\u0119dzie to jaka\u015b mocno wnikliwa analiza - jako \u017ce same raporty s\u0105 dost\u0119pne publicznie dla ka\u017cdego zainteresowanego - ale wybior\u0119 ze swojej strony smaczki, kt\u00f3re mi si\u0119 rzuci\u0142y w oczy.<\/p>\n","innerContent":["\n<p>Zaczniemy sobie od liczb i wykres\u00f3w, poniewa\u017c ukaza\u0142y si\u0119 nam dwa bran\u017cowe raporty, z fokusem na cz\u0119\u015bci ekosystemu b\u0119d\u0105ce punktem zainteresowania r\u00f3wnie\u017c tego newslettera - a wi\u0119c <a href=\"https:\/\/blog.jetbrains.com\/team\/2023\/11\/20\/the-state-of-developer-ecosystem-2023\/\">State of Developer Ecosystem 2023<\/a> (kt\u00f3ry b\u0119d\u0105c wydanym przez JetBrains, posiada wiele interesuj\u0105cych danych kotlinowo\/javowych) oraz Jakarta EE Developers Survey 2023 (a tu to ju\u017c nazwa chyba m\u00f3wi sama za siebie). Nie b\u0119dzie to jaka\u015b mocno wnikliwa analiza - jako \u017ce same raporty s\u0105 dost\u0119pne publicznie dla ka\u017cdego zainteresowanego - ale wybior\u0119 ze swojej strony smaczki, kt\u00f3re mi si\u0119 rzuci\u0142y w oczy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17141,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-32.png\" alt=\"\" class=\"wp-image-17141\"\/><figcaption class=\"wp-element-caption\">Kiedy\u015b mi si\u0119 na pewno przydadz\u0105, prawda?<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-32.png\" alt=\"\" class=\"wp-image-17141\"\/><figcaption class=\"wp-element-caption\">Kiedy\u015b mi si\u0119 na pewno przydadz\u0105, prawda?<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Najpierw na warsztat we\u017amiemy ten pierwszy i zanim zobaczymy jeszcze szczeg\u00f3\u0142y poszczeg\u00f3lnych j\u0119zyk\u00f3w, zobaczmy sobie jak wed\u0142ug zebranej przez JetBrains pr\u00f3bki 27-tys developer\u00f3w wygl\u0105daj\u0105 obecnie migracje mi\u0119dzy j\u0119zykami.<\/p>\n","innerContent":["\n<p>Najpierw na warsztat we\u017amiemy ten pierwszy i zanim zobaczymy jeszcze szczeg\u00f3\u0142y poszczeg\u00f3lnych j\u0119zyk\u00f3w, zobaczmy sobie jak wed\u0142ug zebranej przez JetBrains pr\u00f3bki 27-tys developer\u00f3w wygl\u0105daj\u0105 obecnie migracje mi\u0119dzy j\u0119zykami.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"991px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/uo2Kkkt.png\" alt=\"\" style=\"width:991px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/uo2Kkkt.png\" alt=\"\" style=\"width:991px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Programi\u015bci zdecydowanie okopali si\u0119 na swoich pozycjach i ci\u0119\u017cko zauwa\u017cy\u0107 jakie\u015b wielkie kierunki migracji (mo\u017ce poza Rust i Go, te dwa j\u0119zyki wydaj\u0105 si\u0119 by\u0107 nieco bardziej przyci\u0105ga\u0107 developer\u00f3w). Szczerze m\u00f3wi\u0105c, to spodziewa\u0142em si\u0119 znacznie wi\u0119kszych liczb przy Pythonie. Og\u00f3lnie wojny j\u0119zyk\u00f3w powoli wydaj\u0105 si\u0119 by\u0107 coraz mniej interesuj\u0105ce, przynajmniej w por\u00f3wnaniu do sza\u0142u sprzed kilku lat. Ci\u0119\u017cko szuka\u0107 jakich\u015b potencjalnie wielkich <em>success stories <\/em>na nast\u0119pne lata, takich pokroju Rusta czy Go.<\/p>\n","innerContent":["\n<p>Programi\u015bci zdecydowanie okopali si\u0119 na swoich pozycjach i ci\u0119\u017cko zauwa\u017cy\u0107 jakie\u015b wielkie kierunki migracji (mo\u017ce poza Rust i Go, te dwa j\u0119zyki wydaj\u0105 si\u0119 by\u0107 nieco bardziej przyci\u0105ga\u0107 developer\u00f3w). Szczerze m\u00f3wi\u0105c, to spodziewa\u0142em si\u0119 znacznie wi\u0119kszych liczb przy Pythonie. Og\u00f3lnie wojny j\u0119zyk\u00f3w powoli wydaj\u0105 si\u0119 by\u0107 coraz mniej interesuj\u0105ce, przynajmniej w por\u00f3wnaniu do sza\u0142u sprzed kilku lat. Ci\u0119\u017cko szuka\u0107 jakich\u015b potencjalnie wielkich <em>success stories <\/em>na nast\u0119pne lata, takich pokroju Rusta czy Go.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Z ciekawych obserwacji raportu - trzeba te\u017c przyzna\u0107, \u017ce Scalowcy s\u0105 swojemu j\u0119zykowi bardzo wierni...<\/p>\n","innerContent":["\n<p>Z ciekawych obserwacji raportu - trzeba te\u017c przyzna\u0107, \u017ce Scalowcy s\u0105 swojemu j\u0119zykowi bardzo wierni...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"451px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/cTFUleG.png\" alt=\"\" style=\"width:451px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/cTFUleG.png\" alt=\"\" style=\"width:451px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>... ale patrz\u0105c na kolejny wykres - troch\u0119 ci\u0119\u017cko im si\u0119 dziwi\u0107 \ud83d\ude09.<\/p>\n","innerContent":["\n<p>... ale patrz\u0105c na kolejny wykres - troch\u0119 ci\u0119\u017cko im si\u0119 dziwi\u0107 \ud83d\ude09.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"521px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/U1ofFuS.png\" alt=\"\" style=\"width:521px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/U1ofFuS.png\" alt=\"\" style=\"width:521px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A j\u0119zyki pewnie staj\u0105 si\u0119 coraz mniej istotne, bo z ankiety wychodzi, \u017ce j\u0119zykiem wszystkich programist\u00f3w staje si\u0119 j\u0119zyk angielski (czy te\u017c inne j\u0119zyki naturalne), i raczej panuje w ankiecie w tym temacie konsensus:<\/p>\n","innerContent":["\n<p>A j\u0119zyki pewnie staj\u0105 si\u0119 coraz mniej istotne, bo z ankiety wychodzi, \u017ce j\u0119zykiem wszystkich programist\u00f3w staje si\u0119 j\u0119zyk angielski (czy te\u017c inne j\u0119zyki naturalne), i raczej panuje w ankiecie w tym temacie konsensus:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"863px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/jycp1Z3.png\" alt=\"\" style=\"width:863px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/jycp1Z3.png\" alt=\"\" style=\"width:863px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Og\u00f3lnie <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/ai\/\">sekcja po\u015bwi\u0119cona generatywnemu AI<\/a> jest ciekawa i posiada sporo insightu na temat adopcji konkretnych narz\u0119dzia czy modeli. Nie b\u0119d\u0119 ca\u0142o\u015bci rozbija\u0142 na czynniki pierwsze, bo ani tu miejsce ani czas, ale polecam chocia\u017c zerkn\u0105\u0107 - mo\u017ce znajdziecie dla siebie jak\u0105\u015b inspiracj\u0119.<\/p>\n","innerContent":["\n<p>Og\u00f3lnie <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/ai\/\">sekcja po\u015bwi\u0119cona generatywnemu AI<\/a> jest ciekawa i posiada sporo insightu na temat adopcji konkretnych narz\u0119dzia czy modeli. Nie b\u0119d\u0119 ca\u0142o\u015bci rozbija\u0142 na czynniki pierwsze, bo ani tu miejsce ani czas, ale polecam chocia\u017c zerkn\u0105\u0107 - mo\u017ce znajdziecie dla siebie jak\u0105\u015b inspiracj\u0119.<\/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\">Teraz przejd\u017amy sobie do Javy<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Teraz przejd\u017amy sobie do Javy<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/YfKutbv.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/YfKutbv.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Okazuje si\u0119 bowiem, \u017ce wed\u0142ug danych zebranych przez JetBrains, mamy obecnie Jave dw\u00f3ch pr\u0119dko\u015bci. Z jednej strony bowiem projekty ci\u0105gle tkwi\u0105 na stare\u0144kiej Javie 8, mimo faktu \u017ce ju\u017c w zasadzie nic w ekosystemie jej nie wspiera i ca\u0142y czas dostajemy og\u0142oszenia o jej porzucaniu przez g\u0142\u00f3wnych graczy. Z drugiej za\u015b mamy olbrzymi\u0105 adopcj\u0119 JDK 17. W praktyce - a przynajmniej w mojej g\u0142owie - oznacza to, \u017ce w wypadku Javy firmy ju\u017c zostan\u0105 na JDK 8 do ko\u0144ca \u015bwiata (i jeden dzie\u0144 d\u0142u\u017cej). Z drugiej strony je\u017celi ju\u017c kto\u015b przejdzie przez proces migracji, to jest spora szansa, \u017ce ju\u017c zostanie na szybkiej \u015bcie\u017cce aktualizacji na kolejne LTSy.<\/p>\n","innerContent":["\n<p>Okazuje si\u0119 bowiem, \u017ce wed\u0142ug danych zebranych przez JetBrains, mamy obecnie Jave dw\u00f3ch pr\u0119dko\u015bci. Z jednej strony bowiem projekty ci\u0105gle tkwi\u0105 na stare\u0144kiej Javie 8, mimo faktu \u017ce ju\u017c w zasadzie nic w ekosystemie jej nie wspiera i ca\u0142y czas dostajemy og\u0142oszenia o jej porzucaniu przez g\u0142\u00f3wnych graczy. Z drugiej za\u015b mamy olbrzymi\u0105 adopcj\u0119 JDK 17. W praktyce - a przynajmniej w mojej g\u0142owie - oznacza to, \u017ce w wypadku Javy firmy ju\u017c zostan\u0105 na JDK 8 do ko\u0144ca \u015bwiata (i jeden dzie\u0144 d\u0142u\u017cej). Z drugiej strony je\u017celi ju\u017c kto\u015b przejdzie przez proces migracji, to jest spora szansa, \u017ce ju\u017c zostanie na szybkiej \u015bcie\u017cce aktualizacji na kolejne LTSy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"731px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/IeDd3us.png\" alt=\"\" style=\"width:731px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/IeDd3us.png\" alt=\"\" style=\"width:731px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tutaj te\u017c jest bardzo ciekawie - pierwsze miejsce Dockera nie dziwi, za to zaskakuj\u0105ce jest to, \u017ce jednak serwery aplikacyjne bior\u0105 wci\u0105\u017c g\u00f3r\u0119 nad samodzielnymi <code>*.jar<\/code> - cho\u0107 to akurat mo\u017ce troch\u0119 korelowa\u0107 z Jav\u0105 8 z poprzedniej sekcji. Smuci mnie ma\u0142a popularno\u015b\u0107 GraalVM, za to \u015bmieszy homeopatyczne u\u017cycie <code>jlink<\/code> - w ramach jednej z moich prezentacji konferencyjnych jak ostatni troll pytam ludzi o faz\u0119 linkowania w Javie, i je\u015bli cho\u0107 jedna osoba skojarzy, to ju\u017c wiem \u017ce mocna grupa si\u0119 trafi\u0142a.<\/p>\n","innerContent":["\n<p>Tutaj te\u017c jest bardzo ciekawie - pierwsze miejsce Dockera nie dziwi, za to zaskakuj\u0105ce jest to, \u017ce jednak serwery aplikacyjne bior\u0105 wci\u0105\u017c g\u00f3r\u0119 nad samodzielnymi <code>*.jar<\/code> - cho\u0107 to akurat mo\u017ce troch\u0119 korelowa\u0107 z Jav\u0105 8 z poprzedniej sekcji. Smuci mnie ma\u0142a popularno\u015b\u0107 GraalVM, za to \u015bmieszy homeopatyczne u\u017cycie <code>jlink<\/code> - w ramach jednej z moich prezentacji konferencyjnych jak ostatni troll pytam ludzi o faz\u0119 linkowania w Javie, i je\u015bli cho\u0107 jedna osoba skojarzy, to ju\u017c wiem \u017ce mocna grupa si\u0119 trafi\u0142a.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"806px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/AM0RDiQ.png\" alt=\"\" style=\"width:806px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/AM0RDiQ.png\" alt=\"\" style=\"width:806px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tutaj da\u0142em 2022 do por\u00f3wnania, \u017ceby u\u015bwiadomi\u0107 Wam, jak chorym sukcesem jest Spring i jak mimo ca\u0142ej konkurencji nie traci on trakcji.<\/p>\n","innerContent":["\n<p>Tutaj da\u0142em 2022 do por\u00f3wnania, \u017ceby u\u015bwiadomi\u0107 Wam, jak chorym sukcesem jest Spring i jak mimo ca\u0142ej konkurencji nie traci on trakcji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Podobnych ciekawych statystyk, dotycz\u0105cych bibliotek, serwer\u00f3w itd jest jeszcze wi\u0119cej, ale ekipa z JetBrains i zaproszeni go\u015bcie zrobili tam ju\u017c w\u0142asn\u0105 analiz\u0119, wi\u0119c <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/java\/\">odsy\u0142am Was do oryginalnego dokumentu<\/a>.<\/p>\n","innerContent":["\n<p>Podobnych ciekawych statystyk, dotycz\u0105cych bibliotek, serwer\u00f3w itd jest jeszcze wi\u0119cej, ale ekipa z JetBrains i zaproszeni go\u015bcie zrobili tam ju\u017c w\u0142asn\u0105 analiz\u0119, wi\u0119c <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/java\/\">odsy\u0142am Was do oryginalnego dokumentu<\/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\">To teraz pora na Kotlina<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">To teraz pora na Kotlina<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/bot3uvr.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/bot3uvr.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Rewolucji nie stwierdzono. Serwerowe u\u017cycie powr\u00f3ci\u0142o do procentowego udzia\u0142u z 2021, ro\u015bnie Multiplatform. Nothing to see there...<\/p>\n","innerContent":["\n<p>Rewolucji nie stwierdzono. Serwerowe u\u017cycie powr\u00f3ci\u0142o do procentowego udzia\u0142u z 2021, ro\u015bnie Multiplatform. Nothing to see there...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"724px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/kTjfFAF.png\" alt=\"\" style=\"width:724px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/kTjfFAF.png\" alt=\"\" style=\"width:724px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>... za to tutaj jak por\u00f3wnamy do wynik\u00f3w w przypadku Javy, to totalna dominacja Gradle robi wra\u017cenie nie mniejsze, ni\u017c dominacja Springa w domenie javowych framework\u00f3w.<\/p>\n","innerContent":["\n<p>... za to tutaj jak por\u00f3wnamy do wynik\u00f3w w przypadku Javy, to totalna dominacja Gradle robi wra\u017cenie nie mniejsze, ni\u017c dominacja Springa w domenie javowych framework\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/UXCJXQK.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/UXCJXQK.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ten wykresie zostawiam tylko, \u017ceby podzieli\u0107 si\u0119 obserwacj\u0105, \u017ce <strong>\"Which JetBrains Kotlin libraries and tools do you currently use?\"<\/strong> jest prawdopodobnie to\u017csame z <strong>\"Which Kotlin libraries and tools do you currently use?\"<\/strong>. Istnieje totalna dominacja JetBrains w tej kwestii.<\/p>\n","innerContent":["\n<p>Ten wykresie zostawiam tylko, \u017ceby podzieli\u0107 si\u0119 obserwacj\u0105, \u017ce <strong>\"Which JetBrains Kotlin libraries and tools do you currently use?\"<\/strong> jest prawdopodobnie to\u017csame z <strong>\"Which Kotlin libraries and tools do you currently use?\"<\/strong>. Istnieje totalna dominacja JetBrains w tej kwestii.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/kotlin\/\">raport tutaj<\/a>.<\/p>\n","innerContent":["\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/kotlin\/\">raport tutaj<\/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\">No to jeszcze kr\u00f3tko o Scali<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">No to jeszcze kr\u00f3tko o Scali<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"681px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/C0RIV4m.png\" alt=\"\" style=\"width:681px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/C0RIV4m.png\" alt=\"\" style=\"width:681px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Te liczby pewnie \u0142atwo skomentowa\u0107 \"Scala 3.0 dalej w tyle\", ale nie pokazuj\u0105 one trendu. Dla por\u00f3wnania, dane z zesz\u0142ego roku \ud83d\udc47<\/p>\n","innerContent":["\n<p>Te liczby pewnie \u0142atwo skomentowa\u0107 \"Scala 3.0 dalej w tyle\", ale nie pokazuj\u0105 one trendu. Dla por\u00f3wnania, dane z zesz\u0142ego roku \ud83d\udc47<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"372px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/lW62QP2.png\" alt=\"\" style=\"width:372px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/lW62QP2.png\" alt=\"\" style=\"width:372px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Scala 3.0 bowiem ro\u015bnie, i to bardzo elegancko. Cho\u0107 zastanawiaj\u0105cy jest te\u017c wzrost Scali 2.13 - i to co ciekawe nawet w por\u00f3wnaniu do 2021. Mo\u017cliwe, \u017ce istniej\u0105 po prostu dwie \u015bcie\u017cki kanibalizacji Scali 2.12 i 2.11 - cz\u0119\u015b\u0107 projekt\u00f3w decyduje si\u0119 na przej\u015bcie do najnowszej wersji ga\u0142\u0119zi 2.x<\/p>\n","innerContent":["\n<p>Scala 3.0 bowiem ro\u015bnie, i to bardzo elegancko. Cho\u0107 zastanawiaj\u0105cy jest te\u017c wzrost Scali 2.13 - i to co ciekawe nawet w por\u00f3wnaniu do 2021. Mo\u017cliwe, \u017ce istniej\u0105 po prostu dwie \u015bcie\u017cki kanibalizacji Scali 2.12 i 2.11 - cz\u0119\u015b\u0107 projekt\u00f3w decyduje si\u0119 na przej\u015bcie do najnowszej wersji ga\u0142\u0119zi 2.x<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"919px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/T6jZox3.png\" alt=\"\" style=\"width:919px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/T6jZox3.png\" alt=\"\" style=\"width:919px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli chodzi o Akke - to jestem zaskoczony, jak wszystko stabilnie si\u0119 trzyma w statystykach, mimo kontrowersji z nowym modelem licencyjnym. Ale pewnie trudno pozby\u0107 si\u0119 trzonu istniej\u0105cych system\u00f3w i powodu, dla kt\u00f3rego projekty w og\u00f3le w Scale inwestowa\u0142y.<\/p>\n","innerContent":["\n<p>Je\u015bli chodzi o Akke - to jestem zaskoczony, jak wszystko stabilnie si\u0119 trzyma w statystykach, mimo kontrowersji z nowym modelem licencyjnym. Ale pewnie trudno pozby\u0107 si\u0119 trzonu istniej\u0105cych system\u00f3w i powodu, dla kt\u00f3rego projekty w og\u00f3le w Scale inwestowa\u0142y.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/scala\/\">raport ponownie tutaj<\/a>.<\/p>\n","innerContent":["\n<p>No i pe\u0142ny <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/scala\/\">raport ponownie tutaj<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":[],"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>I jeszcze kilka wniosk\u00f3w z Jakarta EE Developer Survey 2023 - aczkolwiek sam raport jest tutaj nieco mniej rozbudowany, bo dotyczy jednej tylko technologii, i te\u017c mamy dost\u0119p do samego \"Executive Summary\".<\/p>\n","innerContent":["\n<p>I jeszcze kilka wniosk\u00f3w z Jakarta EE Developer Survey 2023 - aczkolwiek sam raport jest tutaj nieco mniej rozbudowany, bo dotyczy jednej tylko technologii, i te\u017c mamy dost\u0119p do samego \"Executive Summary\".<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17125,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-26.png\" alt=\"\" class=\"wp-image-17125\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-26.png\" alt=\"\" class=\"wp-image-17125\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>O ile popularno\u015b\u0107 Jakarty EE 10 jest logiczna, bior\u0105c pod uwag\u0119 jak ca\u0142y ekosystem si\u0119 na ni\u0105 przepina, to dla mnie najwi\u0119kszym zaskoczeniem by\u0142 procentowy wzrost... Jakarty EE 8. Po d\u0142u\u017cszym zastanowieniu jest to jednak logiczne - prawdopodobnie s\u0105 to migracje z Java EE 8. Z punktu widzenia modernizacji jest to naturalny pierwszy krok.<\/p>\n","innerContent":["\n<p>O ile popularno\u015b\u0107 Jakarty EE 10 jest logiczna, bior\u0105c pod uwag\u0119 jak ca\u0142y ekosystem si\u0119 na ni\u0105 przepina, to dla mnie najwi\u0119kszym zaskoczeniem by\u0142 procentowy wzrost... Jakarty EE 8. Po d\u0142u\u017cszym zastanowieniu jest to jednak logiczne - prawdopodobnie s\u0105 to migracje z Java EE 8. Z punktu widzenia modernizacji jest to naturalny pierwszy krok.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17127,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27.png\" alt=\"\" class=\"wp-image-17127\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-27.png\" alt=\"\" class=\"wp-image-17127\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ciekawie prezentuj\u0105 si\u0119 te\u017c priorytety spo\u0142eczno\u015bci - wida\u0107, \u017ce ch\u0119\u0107 konteneryzacji dalej jest w ludziach silna, co samo w sobie b\u0119dzie promowa\u0142o rozwi\u0105zania zwi\u0105zane z szybkim startem aplikacji. My\u015bl\u0119, \u017ce dobrze to koreluje z punktem numer 2, czyli mikroserwisami (cho\u0107 z mojej perspektywy, po wdro\u017ceniu Core Profile ju\u017c jest naprawd\u0119 dobrze) oraz czwartym, czyli server. No i ja te\u017c bardzo czkam na to, w jaki spos\u00f3b rozwi\u0105zana b\u0119dzie kwestia standaryzacji Virtual Thread\u00f3w i w kt\u00f3rych cz\u0119\u015bciach specyfikacji si\u0119 one znajd\u0105.<\/p>\n","innerContent":["\n<p>Ciekawie prezentuj\u0105 si\u0119 te\u017c priorytety spo\u0142eczno\u015bci - wida\u0107, \u017ce ch\u0119\u0107 konteneryzacji dalej jest w ludziach silna, co samo w sobie b\u0119dzie promowa\u0142o rozwi\u0105zania zwi\u0105zane z szybkim startem aplikacji. My\u015bl\u0119, \u017ce dobrze to koreluje z punktem numer 2, czyli mikroserwisami (cho\u0107 z mojej perspektywy, po wdro\u017ceniu Core Profile ju\u017c jest naprawd\u0119 dobrze) oraz czwartym, czyli server. No i ja te\u017c bardzo czkam na to, w jaki spos\u00f3b rozwi\u0105zana b\u0119dzie kwestia standaryzacji Virtual Thread\u00f3w i w kt\u00f3rych cz\u0119\u015bciach specyfikacji si\u0119 one znajd\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przyznam, \u017ce troch\u0119 brakowa\u0142o mi w raporcie cz\u0105stkowych danych - czu\u0107, \u017ce jednak pracujemy tutaj na typowym Executive Summary. Przyk\u0142adowo, mamy zobrazowane pewne trendy:<\/p>\n","innerContent":["\n<p>Przyznam, \u017ce troch\u0119 brakowa\u0142o mi w raporcie cz\u0105stkowych danych - czu\u0107, \u017ce jednak pracujemy tutaj na typowym Executive Summary. Przyk\u0142adowo, mamy zobrazowane pewne trendy:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17131,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-29.png\" alt=\"\" class=\"wp-image-17131\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-29.png\" alt=\"\" class=\"wp-image-17131\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>ale osobi\u015bcie jestem ciekawy pe\u0142nego roz\u0142o\u017cenia nie tylko LTS-\u00f3w JDK, a te\u017c wersji starszych ni\u017c JDK 9 czy u\u017cy\u0107 konkretnych serwer\u00f3w aplikacyjnych. Pe\u0142ne dane s\u0105 niestety dost\u0119pne tylko dla cz\u0142onk\u00f3w Jakarta EE Working Group... ale aktywnie nad tym te\u017c ju\u017c pracuje, mo\u017ce ju\u017c nied\u0142ugo b\u0119d\u0119 mia\u0142 dla Was jakie\u015b og\u0142oszenia \ud83e\udd1e<\/p>\n","innerContent":["\n<p>ale osobi\u015bcie jestem ciekawy pe\u0142nego roz\u0142o\u017cenia nie tylko LTS-\u00f3w JDK, a te\u017c wersji starszych ni\u017c JDK 9 czy u\u017cy\u0107 konkretnych serwer\u00f3w aplikacyjnych. Pe\u0142ne dane s\u0105 niestety dost\u0119pne tylko dla cz\u0142onk\u00f3w Jakarta EE Working Group... ale aktywnie nad tym te\u017c ju\u017c pracuje, mo\u017ce ju\u017c nied\u0142ugo b\u0119d\u0119 mia\u0142 dla Was jakie\u015b og\u0142oszenia \ud83e\udd1e<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wspomniany raport dostaniecie zostawiaj\u0105c <a href=\"https:\/\/outreach.eclipse.foundation\/jakarta-ee-developer-survey-2023\">e-mail oraz dusz\u0119 tutaj<\/a>.<\/p>\n","innerContent":["\n<p>Wspomniany raport dostaniecie zostawiaj\u0105c <a href=\"https:\/\/outreach.eclipse.foundation\/jakarta-ee-developer-survey-2023\">e-mail oraz dusz\u0119 tutaj<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17137,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-31.png\" alt=\"\" class=\"wp-image-17137\"\/><figcaption class=\"wp-element-caption\">Z t\u0105 dusz\u0105 to nie jestem akurat pewien, <a href=\"https:\/\/www.foxnews.com\/tech\/7500-online-shoppers-unknowingly-sold-their-souls\">nie czyta\u0142em polityki prywatno\u015bci<\/a>.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-31.png\" alt=\"\" class=\"wp-image-17137\"\/><figcaption class=\"wp-element-caption\">Z t\u0105 dusz\u0105 to nie jestem akurat pewien, <a href=\"https:\/\/www.foxnews.com\/tech\/7500-online-shoppers-unknowingly-sold-their-souls\">nie czyta\u0142em polityki prywatno\u015bci<\/a>.<\/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. W\u0142a\u015bciciele Springa przej\u0119ci przez Broadcom<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. W\u0142a\u015bciciele Springa przej\u0119ci przez Broadcom<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To teraz og\u0142oszenie na styku biznesu i \u015bwiata technologii. Dla nikogo zaskoczeniem nie b\u0119dzie, \u017ce du\u017ce projekty Open-Source w dzisiejszych czasach zwykle posiadaj\u0105 swoich korporacyjnych sponsor\u00f3w, a wielu ludzi rozwijaj\u0105cych je robi\u0105 to w ramach firmowych etat\u00f3w. Tydzie\u0144 temu pisali\u015bmy o wysypie nowo\u015bci i du\u017cych premier w ekosystemie Springa, projekt wydaje si\u0119 wi\u0119c by\u0107 w najlepszym miejscu od lat. Przykro s\u0142ysze\u0107 wi\u0119c o tym, \u017ce od strony backstage dziej\u0105 si\u0119 zawirowania. A aby to wyja\u015bni\u0107, wybaczcie mi za to, \u017ce b\u0119d\u0119 musia\u0142 wprowadzi\u0107 nieco korporacyjnej struktury, w stopniu minimalnym, \u017ceby wyja\u015bni\u0107 co si\u0119 dzieje.<\/p>\n","innerContent":["\n<p>To teraz og\u0142oszenie na styku biznesu i \u015bwiata technologii. Dla nikogo zaskoczeniem nie b\u0119dzie, \u017ce du\u017ce projekty Open-Source w dzisiejszych czasach zwykle posiadaj\u0105 swoich korporacyjnych sponsor\u00f3w, a wielu ludzi rozwijaj\u0105cych je robi\u0105 to w ramach firmowych etat\u00f3w. Tydzie\u0144 temu pisali\u015bmy o wysypie nowo\u015bci i du\u017cych premier w ekosystemie Springa, projekt wydaje si\u0119 wi\u0119c by\u0107 w najlepszym miejscu od lat. Przykro s\u0142ysze\u0107 wi\u0119c o tym, \u017ce od strony backstage dziej\u0105 si\u0119 zawirowania. A aby to wyja\u015bni\u0107, wybaczcie mi za to, \u017ce b\u0119d\u0119 musia\u0142 wprowadzi\u0107 nieco korporacyjnej struktury, w stopniu minimalnym, \u017ceby wyja\u015bni\u0107 co si\u0119 dzieje.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17145,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-33.png\" alt=\"\" class=\"wp-image-17145\"\/><figcaption class=\"wp-element-caption\">Powy\u017cszy obrazek jest tu bez \u017cadnego kontekstu i nie ma nic wsp\u00f3lnego z tre\u015bci\u0105 sekcji. W\u0142a\u015bciwie nie wiem sk\u0105d on si\u0119 tu w og\u00f3le wzi\u0105\u0142...<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-33.png\" alt=\"\" class=\"wp-image-17145\"\/><figcaption class=\"wp-element-caption\">Powy\u017cszy obrazek jest tu bez \u017cadnego kontekstu i nie ma nic wsp\u00f3lnego z tre\u015bci\u0105 sekcji. W\u0142a\u015bciwie nie wiem sk\u0105d on si\u0119 tu w og\u00f3le wzi\u0105\u0142...<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pivotal Software (stoj\u0105cy za Springiem) i VMware maj\u0105 ze sob\u0105 silne powi\u0105zania historyczne i biznesowe. Pivotal, specjalizuj\u0105cy si\u0119 w rozwoju platformy chmurowej i narz\u0119dzi programistycznych, zosta\u0142 pierwotnie za\u0142o\u017cony jako niezale\u017cna firma przez EMC Corporation, kt\u00f3ra posiada\u0142a tak\u017ce wi\u0119kszo\u015bciowy udzia\u0142 w VMware, lidera w bran\u017cy wirtualizacji i infrastruktury chmurowej. W 2012 roku VMware i EMC wsp\u00f3lnie zainwestowa\u0142y w Pivotal, a w 2013 roku Pivotal zosta\u0142 oficjalnie wydzielony jako oddzielna firma. W 2019 VMware przej\u0119\u0142o Pivotal, co nie tylko pog\u0142\u0119bi\u0142o ich zwi\u0105zek, ale tak\u017ce wzmocni\u0142o pozycj\u0119 VMware w obszarze rozwoju aplikacji i us\u0142ug chmurowych, korzystaj\u0105c z ekspertyzy Pivotal w tym zakresie - jak cho\u0107by ich rozwi\u0105za\u0144 Cloud Foundry.<\/p>\n","innerContent":["\n<p>Pivotal Software (stoj\u0105cy za Springiem) i VMware maj\u0105 ze sob\u0105 silne powi\u0105zania historyczne i biznesowe. Pivotal, specjalizuj\u0105cy si\u0119 w rozwoju platformy chmurowej i narz\u0119dzi programistycznych, zosta\u0142 pierwotnie za\u0142o\u017cony jako niezale\u017cna firma przez EMC Corporation, kt\u00f3ra posiada\u0142a tak\u017ce wi\u0119kszo\u015bciowy udzia\u0142 w VMware, lidera w bran\u017cy wirtualizacji i infrastruktury chmurowej. W 2012 roku VMware i EMC wsp\u00f3lnie zainwestowa\u0142y w Pivotal, a w 2013 roku Pivotal zosta\u0142 oficjalnie wydzielony jako oddzielna firma. W 2019 VMware przej\u0119\u0142o Pivotal, co nie tylko pog\u0142\u0119bi\u0142o ich zwi\u0105zek, ale tak\u017ce wzmocni\u0142o pozycj\u0119 VMware w obszarze rozwoju aplikacji i us\u0142ug chmurowych, korzystaj\u0105c z ekspertyzy Pivotal w tym zakresie - jak cho\u0107by ich rozwi\u0105za\u0144 Cloud Foundry.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tu jednak historia si\u0119 nie ko\u0144czy. Broadcom, znany g\u0142\u00f3wnie z produkcji p\u00f3\u0142przewodnik\u00f3w, podj\u0105\u0142 decyzj\u0119 o rozszerzeniu swojej dzia\u0142alno\u015bci na rynku oprogramowania, co by\u0142o cz\u0119\u015bci\u0105 szerszej strategii dywersyfikacji firmy. Wyb\u00f3r pad\u0142 na VMware, jako \u017ce firma uznawana jest za lidera w dziedzinie wirtualizacji i infrastruktury chmurowej, co stanowi\u0142o atrakcyjny kierunek rozwoju dla Broadcom. Przej\u0119cie rozpocz\u0119te w maju 2022, a b\u0119d\u0105ce jedn\u0105 z wi\u0119kszych transakcji tego typu opiewaj\u0105c\u0105 na 69 miliard\u00f3w dolar\u00f3w, domkni\u0119to finalnie w zesz\u0142ym tygodniu, 22 listopada.<\/p>\n","innerContent":["\n<p>Tu jednak historia si\u0119 nie ko\u0144czy. Broadcom, znany g\u0142\u00f3wnie z produkcji p\u00f3\u0142przewodnik\u00f3w, podj\u0105\u0142 decyzj\u0119 o rozszerzeniu swojej dzia\u0142alno\u015bci na rynku oprogramowania, co by\u0142o cz\u0119\u015bci\u0105 szerszej strategii dywersyfikacji firmy. Wyb\u00f3r pad\u0142 na VMware, jako \u017ce firma uznawana jest za lidera w dziedzinie wirtualizacji i infrastruktury chmurowej, co stanowi\u0142o atrakcyjny kierunek rozwoju dla Broadcom. Przej\u0119cie rozpocz\u0119te w maju 2022, a b\u0119d\u0105ce jedn\u0105 z wi\u0119kszych transakcji tego typu opiewaj\u0105c\u0105 na 69 miliard\u00f3w dolar\u00f3w, domkni\u0119to finalnie w zesz\u0142ym tygodniu, 22 listopada.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przechodzimy do stanu dzisiejszego - bardzo szybko po transakcji dosz\u0142o do serii zwolnie\u0144 w firmie. Nie wiemy jaki jest ich zakres, ale na pewno zaafektowa\u0142y one te\u017c zesp\u00f3\u0142 odpowiadaj\u0105cy za najpopularniejszy javowy framework. Oliver Drotbohm, architekt Springa, kt\u00f3ry od ponad dekady prowadzi projekt Spring Data, podsumowa\u0142 ca\u0142o\u015b\u0107 wymownie.<\/p>\n","innerContent":["\n<p>Przechodzimy do stanu dzisiejszego - bardzo szybko po transakcji dosz\u0142o do serii zwolnie\u0144 w firmie. Nie wiemy jaki jest ich zakres, ale na pewno zaafektowa\u0142y one te\u017c zesp\u00f3\u0142 odpowiadaj\u0105cy za najpopularniejszy javowy framework. Oliver Drotbohm, architekt Springa, kt\u00f3ry od ponad dekady prowadzi projekt Spring Data, podsumowa\u0142 ca\u0142o\u015b\u0107 wymownie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":"657px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/QMoyrOJ.png\" alt=\"\" style=\"width:657px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/QMoyrOJ.png\" alt=\"\" style=\"width:657px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jako, \u017ce nie mamy \u017cadnych oficjalnych komunikat\u00f3w nie b\u0119d\u0119 si\u0119 tutaj bawi\u0142 w przypuszczenia. Jedyne co, to wszystkim zaafektowanym \u017cycz\u0119 odpoczynku i szybkiego znalezienia dla siebie r\u00f3wnie dobrego, albo i lepszego nowego miejsca.<\/p>\n","innerContent":["\n<p>Jako, \u017ce nie mamy \u017cadnych oficjalnych komunikat\u00f3w nie b\u0119d\u0119 si\u0119 tutaj bawi\u0142 w przypuszczenia. Jedyne co, to wszystkim zaafektowanym \u017cycz\u0119 odpoczynku i szybkiego znalezienia dla siebie r\u00f3wnie dobrego, albo i lepszego nowego miejsca.<\/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. Release Radar<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">3. Release Radar<\/h2>\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\">Micronaut 4.20<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Micronaut 4.20<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W najnowszej wersji <a href=\"https:\/\/micronaut.io\/2023\/11\/17\/micronaut-framework-4-2-0-released\/\">Micronaut Framework 4.2.0<\/a> wprowadzono kilka istotnych zmian dotycz\u0105cych Kotlina i Gradle. Po pierwsze, dosz\u0142o do usprawnie\u0144 w integracji z Kotlin Symbol Processing (KSP). Wprowadzono tak\u017ce wsparcie dla Kotlin 1.9.20 i KSP 1.9.20-1.0.13, a tak\u017ce Ktor 2.3.5. Co wi\u0119cej, dla Gradle, nowe aplikacje domy\u015blnie u\u017cywaj\u0105 Gradle z Kotlin DSL, kt\u00f3ry zapewnia lepsz\u0105 integracj\u0119 z IDE, a tak\u017ce Kotlin DSL sta\u0142 si\u0119 domy\u015blnym dla Gradle\u200b\u200b\u200b\u200b\u200b\u200b. <strong>Micronaut Data<\/strong> wprowadzono korutynowe warianty operacji po\u0142\u0105czeniowych i transakcyjnych - odpowiednio <code>CoroutineConnectionOperation<\/code> oraz <code>CoroutineTransactionOperatio<\/code>.<\/p>\n","innerContent":["\n<p>W najnowszej wersji <a href=\"https:\/\/micronaut.io\/2023\/11\/17\/micronaut-framework-4-2-0-released\/\">Micronaut Framework 4.2.0<\/a> wprowadzono kilka istotnych zmian dotycz\u0105cych Kotlina i Gradle. Po pierwsze, dosz\u0142o do usprawnie\u0144 w integracji z Kotlin Symbol Processing (KSP). Wprowadzono tak\u017ce wsparcie dla Kotlin 1.9.20 i KSP 1.9.20-1.0.13, a tak\u017ce Ktor 2.3.5. Co wi\u0119cej, dla Gradle, nowe aplikacje domy\u015blnie u\u017cywaj\u0105 Gradle z Kotlin DSL, kt\u00f3ry zapewnia lepsz\u0105 integracj\u0119 z IDE, a tak\u017ce Kotlin DSL sta\u0142 si\u0119 domy\u015blnym dla Gradle\u200b\u200b\u200b\u200b\u200b\u200b. <strong>Micronaut Data<\/strong> wprowadzono korutynowe warianty operacji po\u0142\u0105czeniowych i transakcyjnych - odpowiednio <code>CoroutineConnectionOperation<\/code> oraz <code>CoroutineTransactionOperatio<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowe <strong>Micronaut Data<\/strong> to te\u017c wywo\u0142ania procedur w repozytoriach czy wsparcie dla asocjacji w DTOsach, czy Pozosta\u0142e aktualizacje obejmuj\u0105 wsparcie dla GraalVM z flag\u0105 <code>--strict-image-heap<\/code>, kt\u00f3re stanie si\u0119 domy\u015blne w nast\u0119pnej wersji GraalVM Native Image. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 wyboru Java 21 w <strong>Micronaut Launch<\/strong> lub <strong>CLI<\/strong>. W . Aktualizacje obj\u0119\u0142y r\u00f3wnie\u017c wiele innych modu\u0142\u00f3w, takich jak <strong>Micronaut Test<\/strong>, <strong>Micronaut Tracing<\/strong>, <strong>Micronaut Micrometer<\/strong>, <strong>Micronaut OpenAPI<\/strong>, a tak\u017ce wsparcie dla r\u00f3\u017cnych technologii, w tym <strong>GCP<\/strong>, <strong>Kafka<\/strong>, <strong>RabbitMQ<\/strong>, <strong>Redis<\/strong>, i wiele innych<\/p>\n","innerContent":["\n<p>Nowe <strong>Micronaut Data<\/strong> to te\u017c wywo\u0142ania procedur w repozytoriach czy wsparcie dla asocjacji w DTOsach, czy Pozosta\u0142e aktualizacje obejmuj\u0105 wsparcie dla GraalVM z flag\u0105 <code>--strict-image-heap<\/code>, kt\u00f3re stanie si\u0119 domy\u015blne w nast\u0119pnej wersji GraalVM Native Image. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 wyboru Java 21 w <strong>Micronaut Launch<\/strong> lub <strong>CLI<\/strong>. W . Aktualizacje obj\u0119\u0142y r\u00f3wnie\u017c wiele innych modu\u0142\u00f3w, takich jak <strong>Micronaut Test<\/strong>, <strong>Micronaut Tracing<\/strong>, <strong>Micronaut Micrometer<\/strong>, <strong>Micronaut OpenAPI<\/strong>, a tak\u017ce wsparcie dla r\u00f3\u017cnych technologii, w tym <strong>GCP<\/strong>, <strong>Kafka<\/strong>, <strong>RabbitMQ<\/strong>, <strong>Redis<\/strong>, i wiele innych<\/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\">Vert.x 4.5<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Vert.x 4.5<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pami\u0119ta kto\u015b Vert.x? Projekt ten, b\u0119d\u0105cy wieloj\u0119zycznym zestaw narz\u0119dzi do tworzenia reaktywnych aplikacji na serwerze JVM, zgubi\u0142 sporo swojej trakcje wraz ze zmniejszeniem si\u0119 hype na programowanie reaktywne (bardzo ch\u0119tnie po\u015bwi\u0119ci\u0142bym temu kt\u00f3re\u015b z przysz\u0142ych wyda\u0144) i musi wymy\u015ble\u0107 si\u0119 troch\u0119 na nowo. Nic nie u\u015bwiadamia tego tak bardzo, jak nowe wydanie.<\/p>\n","innerContent":["\n<p>Pami\u0119ta kto\u015b Vert.x? Projekt ten, b\u0119d\u0105cy wieloj\u0119zycznym zestaw narz\u0119dzi do tworzenia reaktywnych aplikacji na serwerze JVM, zgubi\u0142 sporo swojej trakcje wraz ze zmniejszeniem si\u0119 hype na programowanie reaktywne (bardzo ch\u0119tnie po\u015bwi\u0119ci\u0142bym temu kt\u00f3re\u015b z przysz\u0142ych wyda\u0144) i musi wymy\u015ble\u0107 si\u0119 troch\u0119 na nowo. Nic nie u\u015bwiadamia tego tak bardzo, jak nowe wydanie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/vertx.io\/blog\/eclipse-vert-x-4-5-0\/\">Vert.x 4.5<\/a> zaskakuje wprowadzeniem wirtualnych w\u0105tk\u00f3w z Javy 21. Jest to znacz\u0105ce, poniewa\u017c Vert.x znany jest z asynchronicznego (i reaktywnego) przetwarzania zapyta\u0144 w ramach \u0142a\u0144cuch\u00f3w kolejnych akcji, a wirtualne w\u0105tki pozwalaj\u0105 na pisanie kodu, kt\u00f3ry wydaje si\u0119 by\u0107 synchroniczny. To umo\u017cliwia \u0142atwiejsze zarz\u0105dzanie z\u0142o\u017conymi workflowami, jednocze\u015bnie zachowuj\u0105c asynchroniczne korzenie - w mojej g\u0142owie to wrappowanie zapyta\u0144 w <code>Future.await<\/code> wywraca jednak spos\u00f3b pisania w Vert.x do g\u00f3ry nogami, zw\u0142aszcza, \u017ce akurat mam sporo komercyjnego do\u015bwiadczenia z rozwi\u0105zaniem.<\/p>\n","innerContent":["\n<p><a href=\"https:\/\/vertx.io\/blog\/eclipse-vert-x-4-5-0\/\">Vert.x 4.5<\/a> zaskakuje wprowadzeniem wirtualnych w\u0105tk\u00f3w z Javy 21. Jest to znacz\u0105ce, poniewa\u017c Vert.x znany jest z asynchronicznego (i reaktywnego) przetwarzania zapyta\u0144 w ramach \u0142a\u0144cuch\u00f3w kolejnych akcji, a wirtualne w\u0105tki pozwalaj\u0105 na pisanie kodu, kt\u00f3ry wydaje si\u0119 by\u0107 synchroniczny. To umo\u017cliwia \u0142atwiejsze zarz\u0105dzanie z\u0142o\u017conymi workflowami, jednocze\u015bnie zachowuj\u0105c asynchroniczne korzenie - w mojej g\u0142owie to wrappowanie zapyta\u0144 w <code>Future.await<\/code> wywraca jednak spos\u00f3b pisania w Vert.x do g\u00f3ry nogami, zw\u0142aszcza, \u017ce akurat mam sporo komercyjnego do\u015bwiadczenia z rozwi\u0105zaniem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>Verticle verticle = new AbstractVerticle() {\n  @Override\n  public void start() {\n    HttpClient client = vertx.createHttpClient();\n    HttpClientRequest req = Future.await(client.request(\n      HttpMethod.GET,\n      8080,\n      \"localhost\",\n      \"\/\"));\n    HttpClientResponse resp = Future.await(req.send());\n    int status = resp.statusCode();\n    Buffer body = Future.await(resp.body());\n  }\n};\n<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>Verticle verticle = new AbstractVerticle() {\n  @Override\n  public void start() {\n    HttpClient client = vertx.createHttpClient();\n    HttpClientRequest req = Future.await(client.request(\n      HttpMethod.GET,\n      8080,\n      \"localhost\",\n      \"\/\"));\n    HttpClientResponse resp = Future.await(req.send());\n    int status = resp.statusCode();\n    Buffer body = Future.await(resp.body());\n  }\n};\n<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Cho\u0107 to pewnie po prostu ja, i dla kogo\u015b startuj\u0105cego z projektem b\u0119dzie to co\u015b zupe\u0142nie naturalnego.<\/p>\n","innerContent":["\n<p>Cho\u0107 to pewnie po prostu ja, i dla kogo\u015b startuj\u0105cego z projektem b\u0119dzie to co\u015b zupe\u0142nie naturalnego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W tej wersji dodano tak\u017ce dynamiczne tworzenie po\u0142\u0105cze\u0144 SQL, co umo\u017cliwia elastyczne \u0142\u0105czenie si\u0119 z r\u00f3\u017cnymi bazami danych. Wprowadzono r\u00f3wnie\u017c wsparcie dla transakcyjnych tryb\u00f3w pulowania po\u0142\u0105cze\u0144 dla proxy na 7 poziomie sieci, takich jak <strong>PgBouncer<\/strong>.<\/p>\n","innerContent":["\n<p>W tej wersji dodano tak\u017ce dynamiczne tworzenie po\u0142\u0105cze\u0144 SQL, co umo\u017cliwia elastyczne \u0142\u0105czenie si\u0119 z r\u00f3\u017cnymi bazami danych. Wprowadzono r\u00f3wnie\u017c wsparcie dla transakcyjnych tryb\u00f3w pulowania po\u0142\u0105cze\u0144 dla proxy na 7 poziomie sieci, takich jak <strong>PgBouncer<\/strong>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowo\u015bci\u0105 jest te\u017c mo\u017cliwo\u015b\u0107 aktualizacji konfiguracji SSL TCP w czasie rzeczywistym, co jest przydatne przy rotacji certyfikat\u00f3w. Ponadto, Vert.x 4.5 wprowadza oddzielny klient <code>WebSocket<\/code>, co pozwala na lepsze rozgraniczenie interakcji HTTP od tych na WebSocket. Wreszcie, dodano builder dla zaawansowanego tworzenia Vert.x-owych klient\u00f3w, co u\u0142atwia ich konfiguracj\u0119.<\/p>\n","innerContent":["\n<p>Nowo\u015bci\u0105 jest te\u017c mo\u017cliwo\u015b\u0107 aktualizacji konfiguracji SSL TCP w czasie rzeczywistym, co jest przydatne przy rotacji certyfikat\u00f3w. Ponadto, Vert.x 4.5 wprowadza oddzielny klient <code>WebSocket<\/code>, co pozwala na lepsze rozgraniczenie interakcji HTTP od tych na WebSocket. Wreszcie, dodano builder dla zaawansowanego tworzenia Vert.x-owych klient\u00f3w, co u\u0142atwia ich konfiguracj\u0119.<\/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\">EclipseStore 1.0<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">EclipseStore 1.0<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tu mamy naprawd\u0119 ciekawe wydanie. Ale zanim b\u0119dziemy mogli opowiedzie\u0107 o Eclipse Stor\u0119, najpierw musimy powiedzie\u0107 sobie o MicroStream.<\/p>\n","innerContent":["\n<p>Tu mamy naprawd\u0119 ciekawe wydanie. Ale zanim b\u0119dziemy mogli opowiedzie\u0107 o Eclipse Stor\u0119, najpierw musimy powiedzie\u0107 sobie o MicroStream.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>MicroStream natywna dla Javy, stworzona z my\u015bl\u0105 o mikroserwisach oraz i serverlessie warstwa trwa\u0142o\u015bci \"databaseless\" (mamy serverless, to zdzier\u017cymy te\u017c ten skr\u00f3t). Jest to bardzo ciekawe rozwi\u0105zanie, umo\u017cliwiaj\u0105ce na zapisywanie w pami\u0119ci grafu obiekt\u00f3w Java bez wzgl\u0119du na jego wielko\u015b\u0107 i z\u0142o\u017cono\u015b\u0107, zapewniaj\u0105c przy tym pe\u0142n\u0105 sp\u00f3jno\u015b\u0107 transakcji. Dane s\u0105 \u0142adowane i przywracane z pami\u0119ci automatycznie, a mechanizm Lazy-Loading pozwala na optymalizacji jej zu\u017cycia.<\/p>\n","innerContent":["\n<p>MicroStream natywna dla Javy, stworzona z my\u015bl\u0105 o mikroserwisach oraz i serverlessie warstwa trwa\u0142o\u015bci \"databaseless\" (mamy serverless, to zdzier\u017cymy te\u017c ten skr\u00f3t). Jest to bardzo ciekawe rozwi\u0105zanie, umo\u017cliwiaj\u0105ce na zapisywanie w pami\u0119ci grafu obiekt\u00f3w Java bez wzgl\u0119du na jego wielko\u015b\u0107 i z\u0142o\u017cono\u015b\u0107, zapewniaj\u0105c przy tym pe\u0142n\u0105 sp\u00f3jno\u015b\u0107 transakcji. Dane s\u0105 \u0142adowane i przywracane z pami\u0119ci automatycznie, a mechanizm Lazy-Loading pozwala na optymalizacji jej zu\u017cycia.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Niedawno sta\u0142a si\u0119 oficjalnym projektem Eclipse Foundation pod nazw\u0105 <a href=\"https:\/\/microstream.one\/blog\/article\/eclipse-serializer-1-0-final-release-is-now-available\/\">EclipseStore 1.0<\/a>, kt\u00f3ry powsta\u0142 na bazie kodu MicroStream wersji 8. Rozw\u00f3j MicroStream zosta\u0142 w zwi\u0105zku z tym zako\u0144czony, a wszystkie nowe funkcje b\u0119d\u0105 wydawane tylko w ramach projektu EclipseStore. Zesp\u00f3\u0142 MicroStream b\u0119dzie kontynuowa\u0142 intensywn\u0105 prac\u0119 nad projektem, rozwijaj\u0105c nowe funkcje i prezentuj\u0105c je na nadchodz\u0105cym EclipseStore Summit 2023 - maj\u0105 rozmach.<\/p>\n","innerContent":["\n<p>Niedawno sta\u0142a si\u0119 oficjalnym projektem Eclipse Foundation pod nazw\u0105 <a href=\"https:\/\/microstream.one\/blog\/article\/eclipse-serializer-1-0-final-release-is-now-available\/\">EclipseStore 1.0<\/a>, kt\u00f3ry powsta\u0142 na bazie kodu MicroStream wersji 8. Rozw\u00f3j MicroStream zosta\u0142 w zwi\u0105zku z tym zako\u0144czony, a wszystkie nowe funkcje b\u0119d\u0105 wydawane tylko w ramach projektu EclipseStore. Zesp\u00f3\u0142 MicroStream b\u0119dzie kontynuowa\u0142 intensywn\u0105 prac\u0119 nad projektem, rozwijaj\u0105c nowe funkcje i prezentuj\u0105c je na nadchodz\u0105cym EclipseStore Summit 2023 - maj\u0105 rozmach.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co ciekawe, nie mamy do czynienia z typowym \"death by open sourcing\". EclipseStore pozostaje dla MicroStream kluczowym projektem, stanowi\u0105c baz\u0119 dla jego komercyjnej oferty, jak\u0105 s\u0105 MicroStream Cluster oraz MicroStream Enterprise.<\/p>\n","innerContent":["\n<p>Co ciekawe, nie mamy do czynienia z typowym \"death by open sourcing\". EclipseStore pozostaje dla MicroStream kluczowym projektem, stanowi\u0105c baz\u0119 dla jego komercyjnej oferty, jak\u0105 s\u0105 MicroStream Cluster oraz MicroStream Enterprise.<\/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\">Hibernate 6.4<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Hibernate 6.4<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W najnowszej wersji <a href=\"https:\/\/in.relation.to\/2023\/11\/23\/orm-640-final\">Hibernate ORM 6.4.0<\/a> wprowadzono kilka kluczowych zmian. Jedn\u0105 z nich jest wsparcie dla \"mi\u0119kkiego usuwania\" poprzez now\u0105 adnotacj\u0119 <code>@SoftDelete<\/code>. Umo\u017cliwia ona oznaczenie warto\u015bci jako usuni\u0119tych\/nieusuni\u0119tych (pokroju kolumny <code>deleted<\/code> typu boolean, my\u015bl\u0119 \u017ce rozumiecie o co chodzi). Dodano r\u00f3wnie\u017c nowy modu\u0142 <code>hibernate-vector<\/code>, kt\u00f3ry oferuje wsparcie dla typ\u00f3w wektorowych i funkcji matematycznych u\u017cytecznych w obszarze AI\/ML, umo\u017cliwiaj\u0105cych wyszukiwanie podobie\u0144stwa wektorowego. Na ten moment wspiera on jednak tylko PostgreSQL z w\u0142\u0105czonym rozszerzeniem <code>pgvector\u200b\u200b\u200b\u200b<\/code>.<\/p>\n","innerContent":["\n<p>W najnowszej wersji <a href=\"https:\/\/in.relation.to\/2023\/11\/23\/orm-640-final\">Hibernate ORM 6.4.0<\/a> wprowadzono kilka kluczowych zmian. Jedn\u0105 z nich jest wsparcie dla \"mi\u0119kkiego usuwania\" poprzez now\u0105 adnotacj\u0119 <code>@SoftDelete<\/code>. Umo\u017cliwia ona oznaczenie warto\u015bci jako usuni\u0119tych\/nieusuni\u0119tych (pokroju kolumny <code>deleted<\/code> typu boolean, my\u015bl\u0119 \u017ce rozumiecie o co chodzi). Dodano r\u00f3wnie\u017c nowy modu\u0142 <code>hibernate-vector<\/code>, kt\u00f3ry oferuje wsparcie dla typ\u00f3w wektorowych i funkcji matematycznych u\u017cytecznych w obszarze AI\/ML, umo\u017cliwiaj\u0105cych wyszukiwanie podobie\u0144stwa wektorowego. Na ten moment wspiera on jednak tylko PostgreSQL z w\u0142\u0105czonym rozszerzeniem <code>pgvector\u200b\u200b\u200b\u200b<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17187,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-40.png\" alt=\"\" class=\"wp-image-17187\"\/><figcaption class=\"wp-element-caption\">Ciekaw czemu tak nagle...<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-40.png\" alt=\"\" class=\"wp-image-17187\"\/><figcaption class=\"wp-element-caption\">Ciekaw czemu tak nagle...<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ponadto, Hibernate ORM 6.4.0 dodaje nowe funkcje do obs\u0142ugi tablic w zapytaniach HQL i Criteria. Zaktualizowano tak\u017ce wsparcie dla zdarze\u0144 Java Flight Recorder (JFR) - ze wzgl\u0119du na r\u00f3\u017cnice w implementacji JFR stworzono oddzielny modu\u0142 <code>hibernate-jfr<\/code>, zapewnieniaj\u0105cy kompatybilno\u015b\u0107 miedzy nimi. Ciekaw\u0105 nowo\u015bci\u0105 jest te\u017c wsparcie dla u\u017cywania <code>tenant-id<\/code> z typami innymi ni\u017c String, popularnej funkcji dla aplikacji ze wsparciem MutliTenancy. U\u017cycie <code>tenant-id<\/code> pozwala na efektywne zarz\u0105dzanie dost\u0119pem i segregacj\u0119 danych, zapewniaj\u0105c, \u017ce dane jednego klienta nie s\u0105 dost\u0119pne dla innego.<\/p>\n","innerContent":["\n<p>Ponadto, Hibernate ORM 6.4.0 dodaje nowe funkcje do obs\u0142ugi tablic w zapytaniach HQL i Criteria. Zaktualizowano tak\u017ce wsparcie dla zdarze\u0144 Java Flight Recorder (JFR) - ze wzgl\u0119du na r\u00f3\u017cnice w implementacji JFR stworzono oddzielny modu\u0142 <code>hibernate-jfr<\/code>, zapewnieniaj\u0105cy kompatybilno\u015b\u0107 miedzy nimi. Ciekaw\u0105 nowo\u015bci\u0105 jest te\u017c wsparcie dla u\u017cywania <code>tenant-id<\/code> z typami innymi ni\u017c String, popularnej funkcji dla aplikacji ze wsparciem MutliTenancy. U\u017cycie <code>tenant-id<\/code> pozwala na efektywne zarz\u0105dzanie dost\u0119pem i segregacj\u0119 danych, zapewniaj\u0105c, \u017ce dane jednego klienta nie s\u0105 dost\u0119pne dla innego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS: Pojawi\u0142a si\u0119 te\u017c <a href=\"https:\/\/in.relation.to\/2023\/11\/28\/hibernate-reactive-2_2_Final\/\">wersja 2.2<\/a> Hibernate Reactive, ale jest w zasadzie wrapperem nad Hibernate ORM 6.4.0.<\/p>\n","innerContent":["\n<p>PS: Pojawi\u0142a si\u0119 te\u017c <a href=\"https:\/\/in.relation.to\/2023\/11\/28\/hibernate-reactive-2_2_Final\/\">wersja 2.2<\/a> Hibernate Reactive, ale jest w zasadzie wrapperem nad Hibernate ORM 6.4.0.<\/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\">AWS SDK for Kotlin<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">AWS SDK for Kotlin<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Aktualnie w Las Vegas odbywa si\u0119 re:Invent - coroczna konferencja Amazon Web Services. W zesz\u0142ym roku jedn\u0105 z zapowiedzi kt\u00f3re otrzymali\u015bmy by\u0142 AWS Lambda SnapStart, integruj\u0105cy CRaC z AWS Lambda. W tym roku (jak na razie) og\u0142osze\u0144 JVM-owych jest mniej, ale uda\u0142o mi si\u0119 wy\u0142uska\u0107 ciekawe - wydano bowiem AWS SDK dla Kotlina!<\/p>\n","innerContent":["\n<p>Aktualnie w Las Vegas odbywa si\u0119 re:Invent - coroczna konferencja Amazon Web Services. W zesz\u0142ym roku jedn\u0105 z zapowiedzi kt\u00f3re otrzymali\u015bmy by\u0142 AWS Lambda SnapStart, integruj\u0105cy CRaC z AWS Lambda. W tym roku (jak na razie) og\u0142osze\u0144 JVM-owych jest mniej, ale uda\u0142o mi si\u0119 wy\u0142uska\u0107 ciekawe - wydano bowiem AWS SDK dla Kotlina!<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>API biblioteki zosta\u0142o stworzone w idiomatycznym Kotlinie, i zawiera typowe dla j\u0119zyka DSL-e oraz wsparcie dla asynchronicznych wywo\u0142a\u0144 us\u0142ug AWS przy u\u017cyciu coroutines. Obecna wersja pozwala deweloperom na prac\u0119 na platformach JVM lub Android API Poziom 24+, z planowanym wsparciem dla dodatkowych platform takich jak Kotlin\/Native w przysz\u0142ych wydaniach.<\/p>\n","innerContent":["\n<p>API biblioteki zosta\u0142o stworzone w idiomatycznym Kotlinie, i zawiera typowe dla j\u0119zyka DSL-e oraz wsparcie dla asynchronicznych wywo\u0142a\u0144 us\u0142ug AWS przy u\u017cyciu coroutines. Obecna wersja pozwala deweloperom na prac\u0119 na platformach JVM lub Android API Poziom 24+, z planowanym wsparciem dla dodatkowych platform takich jak Kotlin\/Native w przysz\u0142ych wydaniach.<\/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\">Micrometer 1.12<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Micrometer 1.12<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Micrometer powoli staje si\u0119 standardem je\u015bli chodzi o monitoring aplikacji Javowych. Do najwa\u017cniejszych nowo\u015bci <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/releases\/tag\/v1.12.0\">wersji 1.12<\/a> nale\u017cy wsparcie dla Jetty 12 w <code>JettyConnectionMetrics<\/code>, wsparcie \u015bwie\u017cutkiego generacyjnego ZGC, usuni\u0119cie <code>native-image.properties<\/code> z <code>micrometer-core<\/code>, a tak\u017ce dodanie instrumentacji obserwacji dla Jakarta JMS. Dodano r\u00f3wnie\u017c skr\u00f3t do przypisywania dynamicznych tag\u00f3w do metryk.<\/p>\n","innerContent":["\n<p>Micrometer powoli staje si\u0119 standardem je\u015bli chodzi o monitoring aplikacji Javowych. Do najwa\u017cniejszych nowo\u015bci <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/releases\/tag\/v1.12.0\">wersji 1.12<\/a> nale\u017cy wsparcie dla Jetty 12 w <code>JettyConnectionMetrics<\/code>, wsparcie \u015bwie\u017cutkiego generacyjnego ZGC, usuni\u0119cie <code>native-image.properties<\/code> z <code>micrometer-core<\/code>, a tak\u017ce dodanie instrumentacji obserwacji dla Jakarta JMS. Dodano r\u00f3wnie\u017c skr\u00f3t do przypisywania dynamicznych tag\u00f3w do metryk.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Za\u0142atano te\u017c sporo bug\u00f3w <a class=\"autolink\" href=\"https:\/\/m.in\">m.in<\/a>. napraw\u0119 b\u0142\u0119d\u00f3w w serializacji metadanych w <strong>Dynatrace v2<\/strong>, poprawki w liczeniu asynchronicznych zdarze\u0144 <strong>log4j2<\/strong>, czy napraw\u0119 zale\u017cno\u015bci na <strong>Guav\u0119<\/strong> w module <strong>Stackdriver<\/strong>. Ponadto, w tej wersji zaktualizowano wiele zale\u017cno\u015bci, w tym <code>archunit-junit5<\/code>, <code>mockito-core<\/code>, <code>junit<\/code> czy <code>mongodb-driver-sync<\/code>\u200b\u200b\u200b\u200b.<\/p>\n","innerContent":["\n<p>Za\u0142atano te\u017c sporo bug\u00f3w <a class=\"autolink\" href=\"https:\/\/m.in\">m.in<\/a>. napraw\u0119 b\u0142\u0119d\u00f3w w serializacji metadanych w <strong>Dynatrace v2<\/strong>, poprawki w liczeniu asynchronicznych zdarze\u0144 <strong>log4j2<\/strong>, czy napraw\u0119 zale\u017cno\u015bci na <strong>Guav\u0119<\/strong> w module <strong>Stackdriver<\/strong>. Ponadto, w tej wersji zaktualizowano wiele zale\u017cno\u015bci, w tym <code>archunit-junit5<\/code>, <code>mockito-core<\/code>, <code>junit<\/code> czy <code>mongodb-driver-sync<\/code>\u200b\u200b\u200b\u200b.<\/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\">Sieroty po release Springa - nowe wersje Modulith i Vault<\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\">Sieroty po release Springa - nowe wersje Modulith i Vault<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec, dwa wydania towarzysz\u0105ce Springowi, kt\u00f3re nie zd\u0105\u017cy\u0142y si\u0119 za\u0142apa\u0107 na poprzedni\u0105 edycj\u0119:<\/p>\n","innerContent":["\n<p>A na koniec, dwa wydania towarzysz\u0105ce Springowi, kt\u00f3re nie zd\u0105\u017cy\u0142y si\u0119 za\u0142apa\u0107 na poprzedni\u0105 edycj\u0119:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W najnowszej wersji <a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-vault-3-1-available\">Spring Vault 3.1<\/a> wprowadzono aktualizacj\u0119 do Spring Framework 6.1, wsparcie dla uwierzytelniania JWT dzi\u0119ki <code>JwtAuthentication<\/code>, nowy interfejs <code>AuthenticationEventMulticaster<\/code>, umo\u017cliwiaj\u0105cy odnowienia Leases, gdy token logowania wygas\u0142. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c lepsze wsparcie dla reaktywno\u015bci.<\/p>\n","innerContent":["\n<p>W najnowszej wersji <a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-vault-3-1-available\">Spring Vault 3.1<\/a> wprowadzono aktualizacj\u0119 do Spring Framework 6.1, wsparcie dla uwierzytelniania JWT dzi\u0119ki <code>JwtAuthentication<\/code>, nowy interfejs <code>AuthenticationEventMulticaster<\/code>, umo\u017cliwiaj\u0105cy odnowienia Leases, gdy token logowania wygas\u0142. Pojawi\u0142o si\u0119 r\u00f3wnie\u017c lepsze wsparcie dla reaktywno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-modulith-1-1-ga-and-1-0-3-released\">Spring Modulith 1.1<\/a> przynosi za\u015b szczeg\u00f3lnie wsparcie dla eksternalizacji zdarze\u0144 do AMQP, Kafka, JMS, AWS SNS i SQS, API do obs\u0142ugi zako\u0144czonych i niezako\u0144czonych publikacji zdarze\u0144. Wzmocniono te\u017c ograniczenia relacji dla kodu w g\u0142\u00f3wnym katalogu aplikacji - w praktyce oznacza to, \u017ce Spring Modulith sprawdza i egzekwuje zasady dotycz\u0105ce tego, jak modu\u0142y mog\u0105 si\u0119 ze sob\u0105 komunikowa\u0107 i wsp\u00f3\u0142dzia\u0142a\u0107, ograniczaj\u0105c mo\u017cliwo\u015b\u0107 tworzenia niepo\u017c\u0105danych zale\u017cno\u015bci mi\u0119dzy nimi. Dodano te\u017c wsparcie dla aktuator\u00f3w w obrazach natywnych czy implementacj\u0119 Neo4j Event Publication Repository. Osobi\u015bcie bardzo za\u015b doceniam warianty Kotlina i Gradle Kotlin DSL zar\u00f3wno dla przyk\u0142ad\u00f3w kodu, jak i konfiguracji.<\/p>\n","innerContent":["\n<p><a href=\"https:\/\/spring.io\/blog\/2023\/11\/24\/spring-modulith-1-1-ga-and-1-0-3-released\">Spring Modulith 1.1<\/a> przynosi za\u015b szczeg\u00f3lnie wsparcie dla eksternalizacji zdarze\u0144 do AMQP, Kafka, JMS, AWS SNS i SQS, API do obs\u0142ugi zako\u0144czonych i niezako\u0144czonych publikacji zdarze\u0144. Wzmocniono te\u017c ograniczenia relacji dla kodu w g\u0142\u00f3wnym katalogu aplikacji - w praktyce oznacza to, \u017ce Spring Modulith sprawdza i egzekwuje zasady dotycz\u0105ce tego, jak modu\u0142y mog\u0105 si\u0119 ze sob\u0105 komunikowa\u0107 i wsp\u00f3\u0142dzia\u0142a\u0107, ograniczaj\u0105c mo\u017cliwo\u015b\u0107 tworzenia niepo\u017c\u0105danych zale\u017cno\u015bci mi\u0119dzy nimi. Dodano te\u017c wsparcie dla aktuator\u00f3w w obrazach natywnych czy implementacj\u0119 Neo4j Event Publication Repository. Osobi\u015bcie bardzo za\u015b doceniam warianty Kotlina i Gradle Kotlin DSL zar\u00f3wno dla przyk\u0142ad\u00f3w kodu, jak i konfiguracji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">Bonus - Advent of Code 2023 with Kotlin! \ud83c\udf84<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">Bonus - Advent of Code 2023 with Kotlin! \ud83c\udf84<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To jeszcze na koniec - kto ma PTSD widz\u0105c ten obrazek? <\/p>\n","innerContent":["\n<p>To jeszcze na koniec - kto ma PTSD widz\u0105c ten obrazek? <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17171,"width":"632px","height":"auto","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\/11\/image-39-1024x634.png\" alt=\"\" class=\"wp-image-17171\" style=\"width:632px;height:auto\"\/><figcaption class=\"wp-element-caption\">Ta sekcja jest dla Was \ud83c\udf84<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-39-1024x634.png\" alt=\"\" class=\"wp-image-17171\" style=\"width:632px;height:auto\"\/><figcaption class=\"wp-element-caption\">Ta sekcja jest dla Was \ud83c\udf84<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jako \u017ce zbli\u017ca nam si\u0119 sezon \u015bwi\u0105teczny - ju\u017c nied\u0142ugo zaczyna si\u0119 <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Jest to coroczny konkurs programistyczny, w kt\u00f3rym \u015bmia\u0142kowie \u015bcigaj\u0105 si\u0119 w rozwi\u0105zywaniu zada\u0144 programistycznych o coraz wi\u0119kszym poziomie z\u0142o\u017cono\u015bci... p\u00f3\u017aniejsze tygodnie s\u0105 ju\u017c naprawd\u0119 wymagaj\u0105ce. Uwierzcie mi, b\u0119d\u0119 si\u0119 w to bawi\u0142 czwarty rok.<\/p>\n","innerContent":["\n<p>Jako \u017ce zbli\u017ca nam si\u0119 sezon \u015bwi\u0105teczny - ju\u017c nied\u0142ugo zaczyna si\u0119 <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Jest to coroczny konkurs programistyczny, w kt\u00f3rym \u015bmia\u0142kowie \u015bcigaj\u0105 si\u0119 w rozwi\u0105zywaniu zada\u0144 programistycznych o coraz wi\u0119kszym poziomie z\u0142o\u017cono\u015bci... p\u00f3\u017aniejsze tygodnie s\u0105 ju\u017c naprawd\u0119 wymagaj\u0105ce. Uwierzcie mi, b\u0119d\u0119 si\u0119 w to bawi\u0142 czwarty rok.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17159,"width":"757px","height":"auto","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\/11\/image-36.png\" alt=\"\" class=\"wp-image-17159\" style=\"width:757px;height:auto\"\/><figcaption class=\"wp-element-caption\">Bo c\u00f3\u017c mo\u017ce by\u0107 zabawniejszego w okresie przed\u015bwi\u0105tecznym.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-36.png\" alt=\"\" class=\"wp-image-17159\" style=\"width:757px;height:auto\"\/><figcaption class=\"wp-element-caption\">Bo c\u00f3\u017c mo\u017ce by\u0107 zabawniejszego w okresie przed\u015bwi\u0105tecznym.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jak w zesz\u0142ym roku, <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/advent-of-code-2023-with-kotlin\/\">JetBrains zaprosi\u0142o spo\u0142eczno\u015b\u0107 do rozwi\u0105zywania kolejnych zada\u0144 w Kotlinie<\/a>, tworz\u0105c min. w\u0142asne leaderboardy czy obiecuj\u0105c nagrody ka\u017cdemu, kto wykona przynajmniej trzy zadania (i nie b\u0119dzie u\u017cywa\u0142 do tego LLM). Przygotowali te\u017c gotowe repo do sklonowania dla ka\u017cdego, kto chcia\u0142by dosta\u0107 jak\u0105\u015b bazow\u0105 struktur\u0119 do rozwi\u0105zywania zada\u0144. Je\u015bli gdzie\u015b si\u0119 zatniecie, b\u0119d\u0105 te\u017c publikowali lifestreamy z rozwi\u0105zywania zada\u0144 w idiomatycznym Kotlinie.<\/p>\n","innerContent":["\n<p>Jak w zesz\u0142ym roku, <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/advent-of-code-2023-with-kotlin\/\">JetBrains zaprosi\u0142o spo\u0142eczno\u015b\u0107 do rozwi\u0105zywania kolejnych zada\u0144 w Kotlinie<\/a>, tworz\u0105c min. w\u0142asne leaderboardy czy obiecuj\u0105c nagrody ka\u017cdemu, kto wykona przynajmniej trzy zadania (i nie b\u0119dzie u\u017cywa\u0142 do tego LLM). Przygotowali te\u017c gotowe repo do sklonowania dla ka\u017cdego, kto chcia\u0142by dosta\u0107 jak\u0105\u015b bazow\u0105 struktur\u0119 do rozwi\u0105zywania zada\u0144. Je\u015bli gdzie\u015b si\u0119 zatniecie, b\u0119d\u0105 te\u017c publikowali lifestreamy z rozwi\u0105zywania zada\u0144 w idiomatycznym Kotlinie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A je\u015bli chcecie do\u0142\u0105czy\u0107 do jakiego\u015b lokalnego LeaderBoardu, zapraszam do jednego, w kt\u00f3rym sam sam si\u0119 \u015bciga\u0142 - aczkolwiek podejrzewam, \u017ce cho\u0107by pisanie tego newslettera, jak i inne obowi\u0105zki (jeden z nich ma 2.5 roku) sprawi\u0105, \u017ce nie b\u0119d\u0119 trudnym przeciwnikiem \ud83e\udd74<\/p>\n","innerContent":["\n<p>A je\u015bli chcecie do\u0142\u0105czy\u0107 do jakiego\u015b lokalnego LeaderBoardu, zapraszam do jednego, w kt\u00f3rym sam sam si\u0119 \u015bciga\u0142 - aczkolwiek podejrzewam, \u017ce cho\u0107by pisanie tego newslettera, jak i inne obowi\u0105zki (jeden z nich ma 2.5 roku) sprawi\u0105, \u017ce nie b\u0119d\u0119 trudnym przeciwnikiem \ud83e\udd74<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kod znajdziecie tutaj <strong>3230435-45a28415<\/strong> (a poda\u0107 go <a href=\"https:\/\/adventofcode.com\/2023\/leaderboard\/private\">trzeba tutaj<\/a>), a nasz\u0105 <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">aktywn\u0105 grup\u0119 wsparcia tutaj<\/a>.<\/p>\n","innerContent":["\n<p>Kod znajdziecie tutaj <strong>3230435-45a28415<\/strong> (a poda\u0107 go <a href=\"https:\/\/adventofcode.com\/2023\/leaderboard\/private\">trzeba tutaj<\/a>), a nasz\u0105 <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">aktywn\u0105 grup\u0119 wsparcia tutaj<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Aczkolwiek ostatnie lata nauczy\u0142y mnie, \u017ce w Advent of Code wa\u017cniejsza jest systematyczno\u015b\u0107 i up\u00f3r, nie maszynowe wypluwanie kodu. To zostawmy GPT-4.<\/p>\n","innerContent":["\n<p>Aczkolwiek ostatnie lata nauczy\u0142y mnie, \u017ce w Advent of Code wa\u017cniejsza jest systematyczno\u015b\u0107 i up\u00f3r, nie maszynowe wypluwanie kodu. To zostawmy GPT-4.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS: Ja w tym roku zdecydowanie nie kombinuje i te\u017c pisz\u0119 w Kotlinie. Mi\u0142ego wstawania o 6:00!<\/p>\n","innerContent":["\n<p>PS: Ja w tym roku zdecydowanie nie kombinuje i te\u017c pisz\u0119 w Kotlinie. Mi\u0142ego wstawania o 6:00!<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17153,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-35.png\" alt=\"\" class=\"wp-image-17153\"\/><figcaption class=\"wp-element-caption\">Cho\u0107 jak co roku si\u0119 zastanawiam - dlaczego my sobie to w og\u00f3le robimy...<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/11\/image-35.png\" alt=\"\" class=\"wp-image-17153\"\/><figcaption class=\"wp-element-caption\">Cho\u0107 jak co roku si\u0119 zastanawiam - dlaczego my sobie to w og\u00f3le robimy...<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17119","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=17119"}],"version-history":[{"count":43,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17119\/revisions"}],"predecessor-version":[{"id":17198,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17119\/revisions\/17198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/17165"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=17119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=17119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=17119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}