{"id":9990,"date":"2022-03-29T17:10:03","date_gmt":"2022-03-29T15:10:03","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/"},"modified":"2022-09-19T13:10:40","modified_gmt":"2022-09-19T11:10:40","slug":"jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/","title":{"rendered":"JVM Tuesday vol. 81 &#8211; Odrobina Javy 18, Vaadin, Clojure i Micronaut"},"content":{"rendered":"\n<h2 id=\"1-co-java-18-przynosi-w-kontekscie-bezpieczenstwa-i-garbage-collectorow\" data-num=1>1. Co Java 18 przynosi w kontek\u015bcie bezpiecze\u0144stwa i Garbage Collector\u00f3w?<\/h2>\n\n\n\n<p>Kurz opad\u0142, nowa Java si\u0119 pojawi\u0142a, najwy\u017cszy czas wi\u0119c na wysyp publikacji opracowuj\u0105cych nowe wydanie w szczeg\u00f3\u0142ach.&nbsp;<\/p>\n\n\n\n<p>I tak doczekali\u015bmy si\u0119 wyda\u0144 dw\u00f3ch regularnych serii, towarzysz\u0105cych premierze ka\u017cdego JDKa. <a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">Sean Mullan opublikowa\u0142<\/a> przegl\u0105d nowo\u015bci dla JVM od strony bezpiecze\u0144stwa. Jak zwykle mo\u017cemy znale\u017a\u0107 mas\u0119 detali je\u015bli chodzi o aktualizacje poszczeg\u00f3lnych algorytm\u00f3w kryptograficznych czy metod enkrypcji, tym razem r\u00f3wnie\u017c dosz\u0142o do drobnych zmian w toolingu, jak cho\u0107by w jarsigner, w kt\u00f3rym wy\u0142\u0105czona zosta\u0142a mo\u017cliwo\u015b\u0107 podpisywania JAR-ek algorytmem SHA-1. Mamy te\u017c do czynienia z pok\u0142osiem deprekacji Security Managera w ramach Javy 17. Pojawi\u0142 si\u0119 szereg nowych API, kt\u00f3re w za\u0142o\u017ceniu maj\u0105 zast\u0119powa\u0107 cz\u0119\u015b\u0107 jego funkcjonalno\u015bci.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b526e7e7.png\" alt=\"\" width=\"750\" height=\"233\"\/><figcaption>I dobrze, bo przez pewien czas wszyscy si\u0119 bali, \u017ce Oracle nie da niczego w zamian.<\/figcaption><\/figure><\/div>\n\n\n<p>Wydawa\u0142o si\u0119, \u017ce Java 18 to wydanie, kt\u00f3re nie zawiera jakich\u015b znacz\u0105cych zmian je\u015bli chodzi o same Garbage Collectory, ale fakt deprekacji Finalizer\u00f3w odcisn\u0105\u0142 swoje pi\u0119tno na tym wydaniu. Thomas Shatzl <a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">na swoim blogu<\/a> twierdzi, \u017ce o ile jeszcze nie jest to mo\u017cliwe w tym momencie, to ju\u017c nied\u0142ugo tw\u00f3rcy \u201cod\u015bmiecaczy\u201d b\u0119d\u0105 mogli pozby\u0107 si\u0119 masy powi\u0105zanego z nimi Legacy, co pos\u0142u\u017cy nam wszystkim. Opr\u00f3cz tego, jego publikacja zawiera wiele \u0142atwych do przeoczenia drobnych zmian w poszczeg\u00f3lnych GC, kt\u00f3re ju\u017c teraz mog\u0105 wp\u0142yn\u0105\u0107 na wydajno\u015b\u0107 naszych aplikacji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b535db87.png\" alt=\"\"\/><figcaption>Zawsze uwielbia\u0142em autoironie z powy\u017cszego tweetu<\/figcaption><\/figure><\/div>\n\n\n<p>Oczywi\u015bcie, zewn\u0119trzni providerzy te\u017c do\u015b\u0107 szybko zareagowali na nowy JVM i opublikowali swoje w\u0142asne wydania. I tak ju\u017c teraz mo\u017cecie u\u017cywa\u0107 z <a href=\"https:\/\/aws.amazon.com\/about-aws\/whats-new\/2022\/03\/amazon-corretto-18\/\">\u201cosiemnastki\u201d Correto<\/a> dystrybuowanej przez Amazona oraz <a href=\"https:\/\/bell-sw.com\/announcements\/2022\/03\/23\/liberica-jdk-18-release-the-future-of-java-development\/\">Liberica JDK 18 od BellSoft<\/a>. Podejrzewam, \u017ce na dniach mo\u017cna spodziewa\u0107 si\u0119 wysypu wyda\u0144 od pozosta\u0142ych provider\u00f3w, przynajmniej, tych kt\u00f3rzy nie wydaj\u0105 tylko wersji LTS jak np. Alibaba ze swoj\u0105 Dragonwell.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">JDK 18 Security Enhancements<\/a><\/li><li><a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">JDK 18 G1\/Parallel\/Serial GC changes<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-ciag-dalszy-historii-javowego-gui-macos-i-cross-platform\" data-num=2>2. Ci\u0105g dalszy historii Javowego GUI &#8211; macOS i Cross-Platform<\/h2>\n\n\n\n<p>Rzadko kiedy zdarza nam si\u0119 poleca\u0107 jedn\u0105 seri\u0119 artyku\u0142\u00f3w wi\u0119cej ni\u017c raz, ale <a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">wspominki z historii rozwoju javowych GUI<\/a> s\u0105 chyba najlepszym kontentem dotycz\u0105cym tego j\u0119zyka, jaki powsta\u0142 od pocz\u0105tku roku i ju\u017c w tej chwili mocnym kontenderem do nagrody najlepszego JVM-owej serii 2022. Ja wiem, ma\u0142o to praktyczne &#8211; troch\u0119 wspominek, dodatkowo dotycz\u0105cych tematu kt\u00f3ry <strong>#nikogo<\/strong>, czyli&nbsp; pisania aplikacji desktopowych, ale wci\u0105gn\u0105\u0142em si\u0119 w t\u0105 histori\u0119 tak mocno, \u017ce w zasadzie wyczekuje ka\u017cdego kolejnego odcinka.<\/p>\n\n\n\n<p>Zainteresowanie pot\u0119guje fakt, \u017ce autor (b\u0119d\u0105cy tw\u00f3rcom jDeploy) zaczyna robi\u0107 pi\u0119kne \u201cskoki w bok\u201d. Po\u015bwi\u0119ci\u0142 mi\u0119dzy innymi <a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">ca\u0142y odcinek<\/a> chaosowi, jakim by\u0142 \u201cunbundling\u201d Javy z macOS zwi\u0105zany z premier\u0105 ichniejszego AppStore (nawet nie spodziewa\u0142em si\u0119, jak wiele \u201calternatywnych\u201d JVM posiada\u0142 system od Apple), a tak\u017ce pochyli\u0142 si\u0119 nad cross-platformowym (nie powi\u0105zanym z Win32 UI czy Cocoa z macOS) <a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">tworzeniem javowego GUI<\/a> na przestrzeni lat. Ten ostatni temat wydawa\u0142 mi si\u0119 czym\u015b ju\u017c do\u015b\u0107 oklepanym (skupia si\u0119 g\u0142\u00f3wnie na Swingu i JavieFX), ale nic bardziej mylnego &#8211; autor, ze wzgl\u0119du na fakt, \u017ce wi\u0119kszo\u015b\u0107 swojej kariery sp\u0119dzi\u0142 pisz\u0105c w\u0142a\u015bnie tego typu aplikacje, dzieli si\u0119 bardzo interesuj\u0105cymi szczeg\u00f3\u0142ami o rozwoju tego eksystemu, o kt\u00f3rych nie mia\u0142em poj\u0119cia.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b541c04d.png\" alt=\"\" width=\"398\" height=\"707\"\/><figcaption>Bardzo polecam lektur\u0119, je\u015bli cho\u0107 troch\u0119 lubili\u015bcie lekcje historii. Podobno si\u0119 zawsze mo\u017cna z niej czego\u015b nauczy\u0107<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">The Decline and Fall of Java on the Desktop Part 2 (2004-2007)<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">Building Cross-platform UIs in Java<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">The Golden Age of Java on the Mac<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-release-radar-micronaut-vaadin-i-hilla-oraz-pierwsze-wydanie-clojure-od-czterech-lat\" data-num=3>3. Release Radar: Micronaut, Vaadin (i Hilla), oraz pierwsze wydanie Clojure od czterech lat.<\/h2>\n\n\n\n<p>A na koniec Release Radar &#8211; bo dawno takowego nie by\u0142o i troch\u0119 rzeczy si\u0119 nam nazbiera\u0142o.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5e682d9.gif\" alt=\"\"\/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Micronaut 2.4<\/h3>\n\n\n\n<p>Zacznijmy od sztampy, czyli <a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">nowego wydania Micronauta<\/a>. Przynosi on par\u0119 drobiazg\u00f3w (jak zmiana sposobu warunkowego \u0142adowania \u201cbean\u00f3w\u201d), wsparcie dla kompilacji Ahead-of-Time r\u00f3wnie\u017c dla Mavena (takowa by\u0142a dost\u0119pna historycznie jedynie dla Gradle), a tak\u017ce wsparcie dla nowego formatu konfiguracji TOML. Z mojej jednak perspektywy najciekawsz\u0105 zmian\u0105 jest jednak dodanie wsparcie do MongoDB w ramach Micronaut Data. Wspiera ona wszystkie mo\u017cliwo\u015bci jakie daje \u200b\u200bsterownik w wersjach JDBC\/R2DBC.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Vaadin 23<\/h3>\n\n\n\n<p>Drugim, niszow\u0105, ale znacznie ciekawsz\u0105 nowo\u015bci\u0105 jest nowy Vaadin w wersji 23.0. Czym jest Vaadin, wielu z Was zapyta? W czasach, kiedy wszystkim wydawa\u0142o si\u0119, \u017ce generowanie frontendu z Javy to jest rewelacyjny pomys\u0142 (a bior\u0105c tymczasowy sza\u0142 na Railsy &#8211; trudno si\u0119 tym ludziom by\u0142o dziwi\u0107), w \u015bwiecie JVMa powsta\u0142 Vaadin, kt\u00f3ry mia\u0142 zaj\u0105\u0107 si\u0119 minimalizacj\u0105 znajomo\u015bci frontendu przez osoby chc\u0105ce stworzy\u0107 pe\u0142n\u0105 aplikacj\u0119 webow\u0105. Czasy mamy troch\u0119 inne i troch\u0119 nauczyli\u015bmy si\u0119, \u017ce dedykowany in\u017cynier frontendu to jednak jest dobry pomys\u0142, ale nie sprawia to, \u017ce Vaadin daje za wygran\u0105.<\/p>\n\n\n\n<p>Nowe wydanie min. porzuca wsparcie dla Javy starszej ni\u017c 11, a tak\u017ce zmiany w design systemie Vaadin to jednak nie tylko sam core, ale tak\u017ce <a href=\"https:\/\/vaadin.com\/blog\/reintroducing-vaadin-flow-and-fusion\">ca\u0142a platforma<\/a>, posiadaj\u0105ca dwa g\u0142\u00f3wne, konkurencyjne Frameworki. Pierwszym z nich jest Flow, kt\u00f3ry s\u0142u\u017cy do generowania kodu JavaScript w 100% z poziomu Javy, a \u201cdwudziestka tr\u00f3jka\u201d przynosi min. pe\u0142ne wsparcie npm i Vite &#8211; coraz popularniejszego narz\u0119dzia dla budowanie aplikacji frontendowych.<\/p>\n\n\n\n<p>To jednak nie wszystko.&nbsp; W ramach nowego wydanie, Vaadin <a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">zaprezentowa\u0142 wi\u0119c Hille<\/a>,&nbsp; nowy framework webowy dla programist\u00f3w Java, kt\u00f3ry \u0142\u0105czy backend ze Spring Boot z TypeScript, daj\u0105c nam \u201cpe\u0142nostosow\u0105\u201d aplikacj\u0119, je\u015bli jednak frontendem si\u0119 tak bardzo nie brzydzimy . Znany wcze\u015bniej jako Vaadin Fusion, Hilla oferowa\u0107 ma wiele mo\u017cliwo\u015bci upraszczaj\u0105cych tworzenie aplikacji biznesowych, takich jak ujednolicona konfiguracja projektu dla Java i TypeScripta. Posiada te\u017c bogaty zestaw komponent\u00f3w UI. Wygl\u0105da to ca\u0142kiem ciekawie, aczkolwiek dzisiaj osoby poszukuj\u0105ce rozwi\u0105zania FullStack, pewnie zdecyduj\u0105 si\u0119 pr\u0119dzej na JHipstera.<\/p>\n\n\n\n<p>Przyznam, \u017ce z Vaadinem mia\u0142em styczno\u015b\u0107 raz, w pierwszej pracy i u\u017cywa\u0142o si\u0119 go bardzo przyjemnie &#8211; ale we\u017acie pod uwag\u0119, \u017ce to by\u0142o 10 lat temu, a alternatywe stanowi\u0142o GWT, JSF oraz czysty jQuery.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5ede462.png\" alt=\"\"\/><figcaption>Autor tego tekstu dzi\u015b rano<\/figcaption><\/figure><\/div>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Clojure 1.11<\/h3>\n\n\n\n<p>Ostatnim, ale zdecydowanie nie najmniejszym z nowych wyda\u0144 jest nowa wersja j\u0119zyka Clojure! Czasy, kiedy by\u0142em z Clojure na bie\u017c\u0105co troch\u0119 ju\u017c min\u0119\u0142y, ale poprzednia nowa wersja pojawi\u0142a si\u0119 jeszcze w roku 2018, wi\u0119c \u201cclojurowcom\u201d przysz\u0142o troch\u0119 poczeka\u0107.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5f852a4.gif\" alt=\"\"\/><figcaption>Ale to akurat zaleta, po prostu Clojure uwa\u017ca siebie za \u201cfeature complete\u201d.<\/figcaption><\/figure><\/div>\n\n\n<p>Clojure 1.11 zapewnia now\u0105 sk\u0142adni\u0119 wywo\u0142ywania argument\u00f3w s\u0142\u00f3w kluczowych &#8211; funkcje, kt\u00f3re przyjmuj\u0105 argumenty s\u0142\u00f3w kluczowych, mog\u0105 teraz otrzymywa\u0107 map\u0119 zamiast par klucz\/warto\u015b\u0107. Pojawi\u0142a si\u0119 te\u017c nowa przestrze\u0144 nazw (w uproszczeniu &#8211; pakiet) clojure.math, zapewniaj\u0105ca funkcje opakowuj\u0105ce metody dost\u0119pne w java.lang.Math dla \u201clong\u00f3w\u201d i \u201cdubli\u201d. Dodatkowo, istnieje teraz opcja aliasowanie przestrzeni nazw w spos\u00f3b, kt\u00f3ry nie powoduje b\u0142\u0119du, je\u017celi dany namespace nie jest dost\u0119pny. Do samego core j\u0119zyka dodano za\u015b sporo nowych funkcji, <a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">kt\u00f3rych list\u0119 znajdziecie w oryginalnym po\u015bcie og\u0142aszaj\u0105cym wydanie<\/a>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b60178fb.png\" alt=\"\"\/><figcaption>Chcieliby\u015bcie mo\u017ce, \u017ceby\u015bmy \u015bledzili dla Was te\u017c nowinki z Clojure? O ile sam j\u0119zyk zmienia si\u0119 bardzo powoli, to jego spo\u0142eczno\u015b\u0107 nale\u017cy do do\u015b\u0107 dynamicznych i produkuj\u0105 sporo &#8211; bardzo cz\u0119sto do\u015b\u0107 konkretnie przy tym filozofuj\u0105c.&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">Micronaut Framework 3.4.0<\/a><\/li><li><a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">Clojure 1.11.0 release<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/vaadin-23-is-finally-here\">Vaadin 23 is finally here!<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">Meet Hilla<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>W dniu dzisiejszym gwiazd\u0105 jest Release Radar i bardzo ciekawe wiadomo\u015bci zwi\u0105zane z Vaadinem. Czym jest Vaadin? Tego i wi\u0119cej dowiecie si\u0119 z bie\u017c\u0105cej edycji.<\/p>\n","protected":false},"author":10,"featured_media":8006,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-9990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"6","feature_image_blog":{"ID":8005,"id":8005,"title":"illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12","filename":"illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","filesize":47518,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","link":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12-2\/","alt":"","author":"10","description":"","caption":"","name":"illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12-2","status":"inherit","uploaded_to":9990,"date":"2022-03-29 15:07:50","modified":"2022-03-29 15:07:50","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":800,"height":480,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12-150x150.jpg","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12-300x180.jpg","medium-width":300,"medium-height":180,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12-768x461.jpg","medium_large-width":768,"medium_large-height":461,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","large-width":800,"large-height":480,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","1536x1536-width":800,"1536x1536-height":480,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","2048x2048-width":800,"2048x2048-height":480,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":180,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","gform-image-choice-md-width":400,"gform-image-choice-md-height":240,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/illidan-stormrage-world-of-warcraft-wow-tapeta-800x480_12.jpg","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":360}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.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>JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - 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\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - Vived\" \/>\n<meta property=\"og:description\" content=\"W dniu dzisiejszym gwiazd\u0105 jest Release Radar i bardzo ciekawe wiadomo\u015bci zwi\u0105zane z Vaadinem. Czym jest Vaadin? Tego i wi\u0119cej dowiecie si\u0119 z bie\u017c\u0105cej edycji.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-29T15:10:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.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\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 81 &#8211; Odrobina Javy 18, Vaadin, Clojure i Micronaut\",\"datePublished\":\"2022-03-29T15:10:03+00:00\",\"dateModified\":\"2022-09-19T11:10:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\"},\"wordCount\":1302,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\",\"name\":\"JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png\",\"datePublished\":\"2022-03-29T15:10:03+00:00\",\"dateModified\":\"2022-09-19T11:10:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 81 &#8211; Odrobina Javy 18, Vaadin, Clojure i Micronaut\"}]},{\"@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":"JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - 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\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - Vived","og_description":"W dniu dzisiejszym gwiazd\u0105 jest Release Radar i bardzo ciekawe wiadomo\u015bci zwi\u0105zane z Vaadinem. Czym jest Vaadin? Tego i wi\u0119cej dowiecie si\u0119 z bie\u017c\u0105cej edycji.","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/","og_site_name":"Vived","article_published_time":"2022-03-29T15:10:03+00:00","article_modified_time":"2022-09-19T11:10:40+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.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\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 81 &#8211; Odrobina Javy 18, Vaadin, Clojure i Micronaut","datePublished":"2022-03-29T15:10:03+00:00","dateModified":"2022-09-19T11:10:40+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/"},"wordCount":1302,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/","name":"JVM Tuesday vol. 81 - Odrobina Javy 18, Vaadin, Clojure i Micronaut - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png","datePublished":"2022-03-29T15:10:03+00:00","dateModified":"2022-09-19T11:10:40+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/03\/JVM-8.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-18-odrobina-javy-18-vaadin-clojure-i-micronaut\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 81 &#8211; Odrobina Javy 18, Vaadin, Clojure i Micronaut"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Co Java 18 przynosi w kontek\u015bcie bezpiecze\u0144stwa i Garbage Collector\u00f3w?<\/h2>\n","innerContent":["\n<h2>1. Co Java 18 przynosi w kontek\u015bcie bezpiecze\u0144stwa i Garbage Collector\u00f3w?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kurz opad\u0142, nowa Java si\u0119 pojawi\u0142a, najwy\u017cszy czas wi\u0119c na wysyp publikacji opracowuj\u0105cych nowe wydanie w szczeg\u00f3\u0142ach.&nbsp;<\/p>\n","innerContent":["\n<p>Kurz opad\u0142, nowa Java si\u0119 pojawi\u0142a, najwy\u017cszy czas wi\u0119c na wysyp publikacji opracowuj\u0105cych nowe wydanie w szczeg\u00f3\u0142ach.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>I tak doczekali\u015bmy si\u0119 wyda\u0144 dw\u00f3ch regularnych serii, towarzysz\u0105cych premierze ka\u017cdego JDKa. <a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">Sean Mullan opublikowa\u0142<\/a> przegl\u0105d nowo\u015bci dla JVM od strony bezpiecze\u0144stwa. Jak zwykle mo\u017cemy znale\u017a\u0107 mas\u0119 detali je\u015bli chodzi o aktualizacje poszczeg\u00f3lnych algorytm\u00f3w kryptograficznych czy metod enkrypcji, tym razem r\u00f3wnie\u017c dosz\u0142o do drobnych zmian w toolingu, jak cho\u0107by w jarsigner, w kt\u00f3rym wy\u0142\u0105czona zosta\u0142a mo\u017cliwo\u015b\u0107 podpisywania JAR-ek algorytmem SHA-1. Mamy te\u017c do czynienia z pok\u0142osiem deprekacji Security Managera w ramach Javy 17. Pojawi\u0142 si\u0119 szereg nowych API, kt\u00f3re w za\u0142o\u017ceniu maj\u0105 zast\u0119powa\u0107 cz\u0119\u015b\u0107 jego funkcjonalno\u015bci.<\/p>\n","innerContent":["\n<p>I tak doczekali\u015bmy si\u0119 wyda\u0144 dw\u00f3ch regularnych serii, towarzysz\u0105cych premierze ka\u017cdego JDKa. <a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">Sean Mullan opublikowa\u0142<\/a> przegl\u0105d nowo\u015bci dla JVM od strony bezpiecze\u0144stwa. Jak zwykle mo\u017cemy znale\u017a\u0107 mas\u0119 detali je\u015bli chodzi o aktualizacje poszczeg\u00f3lnych algorytm\u00f3w kryptograficznych czy metod enkrypcji, tym razem r\u00f3wnie\u017c dosz\u0142o do drobnych zmian w toolingu, jak cho\u0107by w jarsigner, w kt\u00f3rym wy\u0142\u0105czona zosta\u0142a mo\u017cliwo\u015b\u0107 podpisywania JAR-ek algorytmem SHA-1. Mamy te\u017c do czynienia z pok\u0142osiem deprekacji Security Managera w ramach Javy 17. Pojawi\u0142 si\u0119 szereg nowych API, kt\u00f3re w za\u0142o\u017ceniu maj\u0105 zast\u0119powa\u0107 cz\u0119\u015b\u0107 jego funkcjonalno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":750,"height":233},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b526e7e7.png\" alt=\"\" width=\"750\" height=\"233\"\/><figcaption>I dobrze, bo przez pewien czas wszyscy si\u0119 bali, \u017ce Oracle nie da niczego w zamian.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b526e7e7.png\" alt=\"\" width=\"750\" height=\"233\"\/><figcaption>I dobrze, bo przez pewien czas wszyscy si\u0119 bali, \u017ce Oracle nie da niczego w zamian.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wydawa\u0142o si\u0119, \u017ce Java 18 to wydanie, kt\u00f3re nie zawiera jakich\u015b znacz\u0105cych zmian je\u015bli chodzi o same Garbage Collectory, ale fakt deprekacji Finalizer\u00f3w odcisn\u0105\u0142 swoje pi\u0119tno na tym wydaniu. Thomas Shatzl <a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">na swoim blogu<\/a> twierdzi, \u017ce o ile jeszcze nie jest to mo\u017cliwe w tym momencie, to ju\u017c nied\u0142ugo tw\u00f3rcy \u201cod\u015bmiecaczy\u201d b\u0119d\u0105 mogli pozby\u0107 si\u0119 masy powi\u0105zanego z nimi Legacy, co pos\u0142u\u017cy nam wszystkim. Opr\u00f3cz tego, jego publikacja zawiera wiele \u0142atwych do przeoczenia drobnych zmian w poszczeg\u00f3lnych GC, kt\u00f3re ju\u017c teraz mog\u0105 wp\u0142yn\u0105\u0107 na wydajno\u015b\u0107 naszych aplikacji.<\/p>\n","innerContent":["\n<p>Wydawa\u0142o si\u0119, \u017ce Java 18 to wydanie, kt\u00f3re nie zawiera jakich\u015b znacz\u0105cych zmian je\u015bli chodzi o same Garbage Collectory, ale fakt deprekacji Finalizer\u00f3w odcisn\u0105\u0142 swoje pi\u0119tno na tym wydaniu. Thomas Shatzl <a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">na swoim blogu<\/a> twierdzi, \u017ce o ile jeszcze nie jest to mo\u017cliwe w tym momencie, to ju\u017c nied\u0142ugo tw\u00f3rcy \u201cod\u015bmiecaczy\u201d b\u0119d\u0105 mogli pozby\u0107 si\u0119 masy powi\u0105zanego z nimi Legacy, co pos\u0142u\u017cy nam wszystkim. Opr\u00f3cz tego, jego publikacja zawiera wiele \u0142atwych do przeoczenia drobnych zmian w poszczeg\u00f3lnych GC, kt\u00f3re ju\u017c teraz mog\u0105 wp\u0142yn\u0105\u0107 na wydajno\u015b\u0107 naszych aplikacji.<\/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\/2022\/06\/img_62a88b535db87.png\" alt=\"\"\/><figcaption>Zawsze uwielbia\u0142em autoironie z powy\u017cszego tweetu<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b535db87.png\" alt=\"\"\/><figcaption>Zawsze uwielbia\u0142em autoironie z powy\u017cszego tweetu<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, zewn\u0119trzni providerzy te\u017c do\u015b\u0107 szybko zareagowali na nowy JVM i opublikowali swoje w\u0142asne wydania. I tak ju\u017c teraz mo\u017cecie u\u017cywa\u0107 z <a href=\"https:\/\/aws.amazon.com\/about-aws\/whats-new\/2022\/03\/amazon-corretto-18\/\">\u201cosiemnastki\u201d Correto<\/a> dystrybuowanej przez Amazona oraz <a href=\"https:\/\/bell-sw.com\/announcements\/2022\/03\/23\/liberica-jdk-18-release-the-future-of-java-development\/\">Liberica JDK 18 od BellSoft<\/a>. Podejrzewam, \u017ce na dniach mo\u017cna spodziewa\u0107 si\u0119 wysypu wyda\u0144 od pozosta\u0142ych provider\u00f3w, przynajmniej, tych kt\u00f3rzy nie wydaj\u0105 tylko wersji LTS jak np. Alibaba ze swoj\u0105 Dragonwell.&nbsp;<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, zewn\u0119trzni providerzy te\u017c do\u015b\u0107 szybko zareagowali na nowy JVM i opublikowali swoje w\u0142asne wydania. I tak ju\u017c teraz mo\u017cecie u\u017cywa\u0107 z <a href=\"https:\/\/aws.amazon.com\/about-aws\/whats-new\/2022\/03\/amazon-corretto-18\/\">\u201cosiemnastki\u201d Correto<\/a> dystrybuowanej przez Amazona oraz <a href=\"https:\/\/bell-sw.com\/announcements\/2022\/03\/23\/liberica-jdk-18-release-the-future-of-java-development\/\">Liberica JDK 18 od BellSoft<\/a>. Podejrzewam, \u017ce na dniach mo\u017cna spodziewa\u0107 si\u0119 wysypu wyda\u0144 od pozosta\u0142ych provider\u00f3w, przynajmniej, tych kt\u00f3rzy nie wydaj\u0105 tylko wersji LTS jak np. Alibaba ze swoj\u0105 Dragonwell.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">JDK 18 Security Enhancements<\/a><\/li><li><a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">JDK 18 G1\/Parallel\/Serial GC changes<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/seanjmullan.org\/blog\/2022\/03\/23\/jdk18#kerberos\">JDK 18 Security Enhancements<\/a><\/li><li><a href=\"https:\/\/tschatzl.github.io\/2022\/03\/14\/jdk18-g1-parallel-gc-changes.html\">JDK 18 G1\/Parallel\/Serial GC changes<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Ci\u0105g dalszy historii Javowego GUI - macOS i Cross-Platform<\/h2>\n","innerContent":["\n<h2>2. Ci\u0105g dalszy historii Javowego GUI - macOS i Cross-Platform<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Rzadko kiedy zdarza nam si\u0119 poleca\u0107 jedn\u0105 seri\u0119 artyku\u0142\u00f3w wi\u0119cej ni\u017c raz, ale <a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">wspominki z historii rozwoju javowych GUI<\/a> s\u0105 chyba najlepszym kontentem dotycz\u0105cym tego j\u0119zyka, jaki powsta\u0142 od pocz\u0105tku roku i ju\u017c w tej chwili mocnym kontenderem do nagrody najlepszego JVM-owej serii 2022. Ja wiem, ma\u0142o to praktyczne - troch\u0119 wspominek, dodatkowo dotycz\u0105cych tematu kt\u00f3ry <strong>#nikogo<\/strong>, czyli&nbsp; pisania aplikacji desktopowych, ale wci\u0105gn\u0105\u0142em si\u0119 w t\u0105 histori\u0119 tak mocno, \u017ce w zasadzie wyczekuje ka\u017cdego kolejnego odcinka.<\/p>\n","innerContent":["\n<p>Rzadko kiedy zdarza nam si\u0119 poleca\u0107 jedn\u0105 seri\u0119 artyku\u0142\u00f3w wi\u0119cej ni\u017c raz, ale <a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">wspominki z historii rozwoju javowych GUI<\/a> s\u0105 chyba najlepszym kontentem dotycz\u0105cym tego j\u0119zyka, jaki powsta\u0142 od pocz\u0105tku roku i ju\u017c w tej chwili mocnym kontenderem do nagrody najlepszego JVM-owej serii 2022. Ja wiem, ma\u0142o to praktyczne - troch\u0119 wspominek, dodatkowo dotycz\u0105cych tematu kt\u00f3ry <strong>#nikogo<\/strong>, czyli&nbsp; pisania aplikacji desktopowych, ale wci\u0105gn\u0105\u0142em si\u0119 w t\u0105 histori\u0119 tak mocno, \u017ce w zasadzie wyczekuje ka\u017cdego kolejnego odcinka.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zainteresowanie pot\u0119guje fakt, \u017ce autor (b\u0119d\u0105cy tw\u00f3rcom jDeploy) zaczyna robi\u0107 pi\u0119kne \u201cskoki w bok\u201d. Po\u015bwi\u0119ci\u0142 mi\u0119dzy innymi <a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">ca\u0142y odcinek<\/a> chaosowi, jakim by\u0142 \u201cunbundling\u201d Javy z macOS zwi\u0105zany z premier\u0105 ichniejszego AppStore (nawet nie spodziewa\u0142em si\u0119, jak wiele \u201calternatywnych\u201d JVM posiada\u0142 system od Apple), a tak\u017ce pochyli\u0142 si\u0119 nad cross-platformowym (nie powi\u0105zanym z Win32 UI czy Cocoa z macOS) <a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">tworzeniem javowego GUI<\/a> na przestrzeni lat. Ten ostatni temat wydawa\u0142 mi si\u0119 czym\u015b ju\u017c do\u015b\u0107 oklepanym (skupia si\u0119 g\u0142\u00f3wnie na Swingu i JavieFX), ale nic bardziej mylnego - autor, ze wzgl\u0119du na fakt, \u017ce wi\u0119kszo\u015b\u0107 swojej kariery sp\u0119dzi\u0142 pisz\u0105c w\u0142a\u015bnie tego typu aplikacje, dzieli si\u0119 bardzo interesuj\u0105cymi szczeg\u00f3\u0142ami o rozwoju tego eksystemu, o kt\u00f3rych nie mia\u0142em poj\u0119cia.&nbsp;<\/p>\n","innerContent":["\n<p>Zainteresowanie pot\u0119guje fakt, \u017ce autor (b\u0119d\u0105cy tw\u00f3rcom jDeploy) zaczyna robi\u0107 pi\u0119kne \u201cskoki w bok\u201d. Po\u015bwi\u0119ci\u0142 mi\u0119dzy innymi <a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">ca\u0142y odcinek<\/a> chaosowi, jakim by\u0142 \u201cunbundling\u201d Javy z macOS zwi\u0105zany z premier\u0105 ichniejszego AppStore (nawet nie spodziewa\u0142em si\u0119, jak wiele \u201calternatywnych\u201d JVM posiada\u0142 system od Apple), a tak\u017ce pochyli\u0142 si\u0119 nad cross-platformowym (nie powi\u0105zanym z Win32 UI czy Cocoa z macOS) <a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">tworzeniem javowego GUI<\/a> na przestrzeni lat. Ten ostatni temat wydawa\u0142 mi si\u0119 czym\u015b ju\u017c do\u015b\u0107 oklepanym (skupia si\u0119 g\u0142\u00f3wnie na Swingu i JavieFX), ale nic bardziej mylnego - autor, ze wzgl\u0119du na fakt, \u017ce wi\u0119kszo\u015b\u0107 swojej kariery sp\u0119dzi\u0142 pisz\u0105c w\u0142a\u015bnie tego typu aplikacje, dzieli si\u0119 bardzo interesuj\u0105cymi szczeg\u00f3\u0142ami o rozwoju tego eksystemu, o kt\u00f3rych nie mia\u0142em poj\u0119cia.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":398,"height":707},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b541c04d.png\" alt=\"\" width=\"398\" height=\"707\"\/><figcaption>Bardzo polecam lektur\u0119, je\u015bli cho\u0107 troch\u0119 lubili\u015bcie lekcje historii. Podobno si\u0119 zawsze mo\u017cna z niej czego\u015b nauczy\u0107<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b541c04d.png\" alt=\"\" width=\"398\" height=\"707\"\/><figcaption>Bardzo polecam lektur\u0119, je\u015bli cho\u0107 troch\u0119 lubili\u015bcie lekcje historii. Podobno si\u0119 zawsze mo\u017cna z niej czego\u015b nauczy\u0107<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">The Decline and Fall of Java on the Desktop Part 2 (2004-2007)<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">Building Cross-platform UIs in Java<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">The Golden Age of Java on the Mac<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/jdeploy.substack.com\/p\/the-decline-and-fall-of-java-on-the-970\">The Decline and Fall of Java on the Desktop Part 2 (2004-2007)<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/cross-platform-uis-in-java?s=r\">Building Cross-platform UIs in Java<\/a><\/li><li><a href=\"https:\/\/jdeploy.substack.com\/p\/how-the-app-store-ended-a-golden\">The Golden Age of Java on the Mac<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Release Radar: Micronaut, Vaadin (i Hilla), oraz pierwsze wydanie Clojure od czterech lat.<\/h2>\n","innerContent":["\n<h2>3. Release Radar: Micronaut, Vaadin (i Hilla), oraz pierwsze wydanie Clojure od czterech lat.<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec Release Radar - bo dawno takowego nie by\u0142o i troch\u0119 rzeczy si\u0119 nam nazbiera\u0142o.<\/p>\n","innerContent":["\n<p>A na koniec Release Radar - bo dawno takowego nie by\u0142o i troch\u0119 rzeczy si\u0119 nam nazbiera\u0142o.<\/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\/2022\/06\/img_62a88b5e682d9.gif\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5e682d9.gif\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Micronaut 2.4<\/h3>\n","innerContent":["\n<h3>Micronaut 2.4<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od sztampy, czyli <a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">nowego wydania Micronauta<\/a>. Przynosi on par\u0119 drobiazg\u00f3w (jak zmiana sposobu warunkowego \u0142adowania \u201cbean\u00f3w\u201d), wsparcie dla kompilacji Ahead-of-Time r\u00f3wnie\u017c dla Mavena (takowa by\u0142a dost\u0119pna historycznie jedynie dla Gradle), a tak\u017ce wsparcie dla nowego formatu konfiguracji TOML. Z mojej jednak perspektywy najciekawsz\u0105 zmian\u0105 jest jednak dodanie wsparcie do MongoDB w ramach Micronaut Data. Wspiera ona wszystkie mo\u017cliwo\u015bci jakie daje \u200b\u200bsterownik w wersjach JDBC\/R2DBC.<\/p>\n","innerContent":["\n<p>Zacznijmy od sztampy, czyli <a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">nowego wydania Micronauta<\/a>. Przynosi on par\u0119 drobiazg\u00f3w (jak zmiana sposobu warunkowego \u0142adowania \u201cbean\u00f3w\u201d), wsparcie dla kompilacji Ahead-of-Time r\u00f3wnie\u017c dla Mavena (takowa by\u0142a dost\u0119pna historycznie jedynie dla Gradle), a tak\u017ce wsparcie dla nowego formatu konfiguracji TOML. Z mojej jednak perspektywy najciekawsz\u0105 zmian\u0105 jest jednak dodanie wsparcie do MongoDB w ramach Micronaut Data. Wspiera ona wszystkie mo\u017cliwo\u015bci jakie daje \u200b\u200bsterownik w wersjach JDBC\/R2DBC.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":{"opacity":"css"},"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Vaadin 23<\/h3>\n","innerContent":["\n<h3>Vaadin 23<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Drugim, niszow\u0105, ale znacznie ciekawsz\u0105 nowo\u015bci\u0105 jest nowy Vaadin w wersji 23.0. Czym jest Vaadin, wielu z Was zapyta? W czasach, kiedy wszystkim wydawa\u0142o si\u0119, \u017ce generowanie frontendu z Javy to jest rewelacyjny pomys\u0142 (a bior\u0105c tymczasowy sza\u0142 na Railsy - trudno si\u0119 tym ludziom by\u0142o dziwi\u0107), w \u015bwiecie JVMa powsta\u0142 Vaadin, kt\u00f3ry mia\u0142 zaj\u0105\u0107 si\u0119 minimalizacj\u0105 znajomo\u015bci frontendu przez osoby chc\u0105ce stworzy\u0107 pe\u0142n\u0105 aplikacj\u0119 webow\u0105. Czasy mamy troch\u0119 inne i troch\u0119 nauczyli\u015bmy si\u0119, \u017ce dedykowany in\u017cynier frontendu to jednak jest dobry pomys\u0142, ale nie sprawia to, \u017ce Vaadin daje za wygran\u0105.<\/p>\n","innerContent":["\n<p>Drugim, niszow\u0105, ale znacznie ciekawsz\u0105 nowo\u015bci\u0105 jest nowy Vaadin w wersji 23.0. Czym jest Vaadin, wielu z Was zapyta? W czasach, kiedy wszystkim wydawa\u0142o si\u0119, \u017ce generowanie frontendu z Javy to jest rewelacyjny pomys\u0142 (a bior\u0105c tymczasowy sza\u0142 na Railsy - trudno si\u0119 tym ludziom by\u0142o dziwi\u0107), w \u015bwiecie JVMa powsta\u0142 Vaadin, kt\u00f3ry mia\u0142 zaj\u0105\u0107 si\u0119 minimalizacj\u0105 znajomo\u015bci frontendu przez osoby chc\u0105ce stworzy\u0107 pe\u0142n\u0105 aplikacj\u0119 webow\u0105. Czasy mamy troch\u0119 inne i troch\u0119 nauczyli\u015bmy si\u0119, \u017ce dedykowany in\u017cynier frontendu to jednak jest dobry pomys\u0142, ale nie sprawia to, \u017ce Vaadin daje za wygran\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowe wydanie min. porzuca wsparcie dla Javy starszej ni\u017c 11, a tak\u017ce zmiany w design systemie Vaadin to jednak nie tylko sam core, ale tak\u017ce <a href=\"https:\/\/vaadin.com\/blog\/reintroducing-vaadin-flow-and-fusion\">ca\u0142a platforma<\/a>, posiadaj\u0105ca dwa g\u0142\u00f3wne, konkurencyjne Frameworki. Pierwszym z nich jest Flow, kt\u00f3ry s\u0142u\u017cy do generowania kodu JavaScript w 100% z poziomu Javy, a \u201cdwudziestka tr\u00f3jka\u201d przynosi min. pe\u0142ne wsparcie npm i Vite - coraz popularniejszego narz\u0119dzia dla budowanie aplikacji frontendowych.<\/p>\n","innerContent":["\n<p>Nowe wydanie min. porzuca wsparcie dla Javy starszej ni\u017c 11, a tak\u017ce zmiany w design systemie Vaadin to jednak nie tylko sam core, ale tak\u017ce <a href=\"https:\/\/vaadin.com\/blog\/reintroducing-vaadin-flow-and-fusion\">ca\u0142a platforma<\/a>, posiadaj\u0105ca dwa g\u0142\u00f3wne, konkurencyjne Frameworki. Pierwszym z nich jest Flow, kt\u00f3ry s\u0142u\u017cy do generowania kodu JavaScript w 100% z poziomu Javy, a \u201cdwudziestka tr\u00f3jka\u201d przynosi min. pe\u0142ne wsparcie npm i Vite - coraz popularniejszego narz\u0119dzia dla budowanie aplikacji frontendowych.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To jednak nie wszystko.&nbsp; W ramach nowego wydanie, Vaadin <a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">zaprezentowa\u0142 wi\u0119c Hille<\/a>,&nbsp; nowy framework webowy dla programist\u00f3w Java, kt\u00f3ry \u0142\u0105czy backend ze Spring Boot z TypeScript, daj\u0105c nam \u201cpe\u0142nostosow\u0105\u201d aplikacj\u0119, je\u015bli jednak frontendem si\u0119 tak bardzo nie brzydzimy . Znany wcze\u015bniej jako Vaadin Fusion, Hilla oferowa\u0107 ma wiele mo\u017cliwo\u015bci upraszczaj\u0105cych tworzenie aplikacji biznesowych, takich jak ujednolicona konfiguracja projektu dla Java i TypeScripta. Posiada te\u017c bogaty zestaw komponent\u00f3w UI. Wygl\u0105da to ca\u0142kiem ciekawie, aczkolwiek dzisiaj osoby poszukuj\u0105ce rozwi\u0105zania FullStack, pewnie zdecyduj\u0105 si\u0119 pr\u0119dzej na JHipstera.<\/p>\n","innerContent":["\n<p>To jednak nie wszystko.&nbsp; W ramach nowego wydanie, Vaadin <a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">zaprezentowa\u0142 wi\u0119c Hille<\/a>,&nbsp; nowy framework webowy dla programist\u00f3w Java, kt\u00f3ry \u0142\u0105czy backend ze Spring Boot z TypeScript, daj\u0105c nam \u201cpe\u0142nostosow\u0105\u201d aplikacj\u0119, je\u015bli jednak frontendem si\u0119 tak bardzo nie brzydzimy . Znany wcze\u015bniej jako Vaadin Fusion, Hilla oferowa\u0107 ma wiele mo\u017cliwo\u015bci upraszczaj\u0105cych tworzenie aplikacji biznesowych, takich jak ujednolicona konfiguracja projektu dla Java i TypeScripta. Posiada te\u017c bogaty zestaw komponent\u00f3w UI. Wygl\u0105da to ca\u0142kiem ciekawie, aczkolwiek dzisiaj osoby poszukuj\u0105ce rozwi\u0105zania FullStack, pewnie zdecyduj\u0105 si\u0119 pr\u0119dzej na JHipstera.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przyznam, \u017ce z Vaadinem mia\u0142em styczno\u015b\u0107 raz, w pierwszej pracy i u\u017cywa\u0142o si\u0119 go bardzo przyjemnie - ale we\u017acie pod uwag\u0119, \u017ce to by\u0142o 10 lat temu, a alternatywe stanowi\u0142o GWT, JSF oraz czysty jQuery.&nbsp;<\/p>\n","innerContent":["\n<p>Przyznam, \u017ce z Vaadinem mia\u0142em styczno\u015b\u0107 raz, w pierwszej pracy i u\u017cywa\u0142o si\u0119 go bardzo przyjemnie - ale we\u017acie pod uwag\u0119, \u017ce to by\u0142o 10 lat temu, a alternatywe stanowi\u0142o GWT, JSF oraz czysty jQuery.&nbsp;<\/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\/2022\/06\/img_62a88b5ede462.png\" alt=\"\"\/><figcaption>Autor tego tekstu dzi\u015b rano<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5ede462.png\" alt=\"\"\/><figcaption>Autor tego tekstu dzi\u015b rano<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":{"opacity":"css"},"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Clojure 1.11<\/h3>\n","innerContent":["\n<h3>Clojure 1.11<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnim, ale zdecydowanie nie najmniejszym z nowych wyda\u0144 jest nowa wersja j\u0119zyka Clojure! Czasy, kiedy by\u0142em z Clojure na bie\u017c\u0105co troch\u0119 ju\u017c min\u0119\u0142y, ale poprzednia nowa wersja pojawi\u0142a si\u0119 jeszcze w roku 2018, wi\u0119c \u201cclojurowcom\u201d przysz\u0142o troch\u0119 poczeka\u0107.&nbsp;<\/p>\n","innerContent":["\n<p>Ostatnim, ale zdecydowanie nie najmniejszym z nowych wyda\u0144 jest nowa wersja j\u0119zyka Clojure! Czasy, kiedy by\u0142em z Clojure na bie\u017c\u0105co troch\u0119 ju\u017c min\u0119\u0142y, ale poprzednia nowa wersja pojawi\u0142a si\u0119 jeszcze w roku 2018, wi\u0119c \u201cclojurowcom\u201d przysz\u0142o troch\u0119 poczeka\u0107.&nbsp;<\/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\/2022\/06\/img_62a88b5f852a4.gif\" alt=\"\"\/><figcaption>Ale to akurat zaleta, po prostu Clojure uwa\u017ca siebie za \u201cfeature complete\u201d.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b5f852a4.gif\" alt=\"\"\/><figcaption>Ale to akurat zaleta, po prostu Clojure uwa\u017ca siebie za \u201cfeature complete\u201d.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Clojure 1.11 zapewnia now\u0105 sk\u0142adni\u0119 wywo\u0142ywania argument\u00f3w s\u0142\u00f3w kluczowych - funkcje, kt\u00f3re przyjmuj\u0105 argumenty s\u0142\u00f3w kluczowych, mog\u0105 teraz otrzymywa\u0107 map\u0119 zamiast par klucz\/warto\u015b\u0107. Pojawi\u0142a si\u0119 te\u017c nowa przestrze\u0144 nazw (w uproszczeniu - pakiet) clojure.math, zapewniaj\u0105ca funkcje opakowuj\u0105ce metody dost\u0119pne w java.lang.Math dla \u201clong\u00f3w\u201d i \u201cdubli\u201d. Dodatkowo, istnieje teraz opcja aliasowanie przestrzeni nazw w spos\u00f3b, kt\u00f3ry nie powoduje b\u0142\u0119du, je\u017celi dany namespace nie jest dost\u0119pny. Do samego core j\u0119zyka dodano za\u015b sporo nowych funkcji, <a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">kt\u00f3rych list\u0119 znajdziecie w oryginalnym po\u015bcie og\u0142aszaj\u0105cym wydanie<\/a>.&nbsp;<\/p>\n","innerContent":["\n<p>Clojure 1.11 zapewnia now\u0105 sk\u0142adni\u0119 wywo\u0142ywania argument\u00f3w s\u0142\u00f3w kluczowych - funkcje, kt\u00f3re przyjmuj\u0105 argumenty s\u0142\u00f3w kluczowych, mog\u0105 teraz otrzymywa\u0107 map\u0119 zamiast par klucz\/warto\u015b\u0107. Pojawi\u0142a si\u0119 te\u017c nowa przestrze\u0144 nazw (w uproszczeniu - pakiet) clojure.math, zapewniaj\u0105ca funkcje opakowuj\u0105ce metody dost\u0119pne w java.lang.Math dla \u201clong\u00f3w\u201d i \u201cdubli\u201d. Dodatkowo, istnieje teraz opcja aliasowanie przestrzeni nazw w spos\u00f3b, kt\u00f3ry nie powoduje b\u0142\u0119du, je\u017celi dany namespace nie jest dost\u0119pny. Do samego core j\u0119zyka dodano za\u015b sporo nowych funkcji, <a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">kt\u00f3rych list\u0119 znajdziecie w oryginalnym po\u015bcie og\u0142aszaj\u0105cym wydanie<\/a>.&nbsp;<\/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\/2022\/06\/img_62a88b60178fb.png\" alt=\"\"\/><figcaption>Chcieliby\u015bcie mo\u017ce, \u017ceby\u015bmy \u015bledzili dla Was te\u017c nowinki z Clojure? O ile sam j\u0119zyk zmienia si\u0119 bardzo powoli, to jego spo\u0142eczno\u015b\u0107 nale\u017cy do do\u015b\u0107 dynamicznych i produkuj\u0105 sporo - bardzo cz\u0119sto do\u015b\u0107 konkretnie przy tym filozofuj\u0105c.&nbsp;<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88b60178fb.png\" alt=\"\"\/><figcaption>Chcieliby\u015bcie mo\u017ce, \u017ceby\u015bmy \u015bledzili dla Was te\u017c nowinki z Clojure? O ile sam j\u0119zyk zmienia si\u0119 bardzo powoli, to jego spo\u0142eczno\u015b\u0107 nale\u017cy do do\u015b\u0107 dynamicznych i produkuj\u0105 sporo - bardzo cz\u0119sto do\u015b\u0107 konkretnie przy tym filozofuj\u0105c.&nbsp;<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">Micronaut Framework 3.4.0<\/a><\/li><li><a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">Clojure 1.11.0 release<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/vaadin-23-is-finally-here\">Vaadin 23 is finally here!<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">Meet Hilla<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/micronaut.io\/2022\/03\/22\/micronaut-framework-3-4-0-released\">Micronaut Framework 3.4.0<\/a><\/li><li><a href=\"https:\/\/clojure.org\/news\/2022\/03\/22\/clojure-1-11-0\">Clojure 1.11.0 release<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/vaadin-23-is-finally-here\">Vaadin 23 is finally here!<\/a><\/li><li><a href=\"https:\/\/vaadin.com\/blog\/meet-hilla\">Meet Hilla<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9990","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=9990"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9990\/revisions"}],"predecessor-version":[{"id":10515,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9990\/revisions\/10515"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/8006"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=9990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=9990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=9990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}