{"id":10012,"date":"2022-02-01T18:02:03","date_gmt":"2022-02-01T17:02:03","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/"},"modified":"2022-09-19T13:10:42","modified_gmt":"2022-09-19T11:10:42","slug":"jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/","title":{"rendered":"JVM Tuesday vol. 74 &#8211; GraalVM, AWS SDK dla Kotlina, Groovy 4.0"},"content":{"rendered":"\n<h2 id=\"1-graalvm-22-0-wydany\" data-num=1>1. GraalVM 22.0 wydany<\/h2>\n\n\n\n<p>Zacznijmy od jednego z najciekawszych projekt\u00f3w w ramach JVM. W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 nowy GraalVM &#8211; pocz\u0105tkowo w wersji korporacyjnej, a nast\u0119pnie r\u00f3wnie\u017c w edycji Community. Co przynosi nowa edycja i czy kto\u015b, kto nie u\u017cywa\u0142 do tej pory GraalVM powinien si\u0119 na to zdecydowa\u0107 wraz z premier\u0105 <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">wersji 22.0<\/a>?<\/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_62a88c4d108ec.gif\" alt=\"\"\/><figcaption>Odpowied\u017a brzmi \u201cRaczej nie\u201d ale nie uprzedzajmy fakt\u00f3w.<\/figcaption><\/figure><\/div>\n\n\n<p>Fani statystyk wszelakich z pewno\u015bci\u0105 ukontentowani b\u0119d\u0105 rozbudowanymi logami podczas budowania natywnych obraz\u00f3w. Bior\u0105c pod uwag\u0119, \u017ce GraalVM u\u017cywany jest g\u0142\u00f3wnie w \u015brodowiskach, w ramach kt\u00f3rych moc obliczeniowa i og\u00f3lnie poj\u0119te zasoby s\u0105 mocno limitowane, jest to zdecydowanie przydatny dodatek, ale raczej nie jest czym\u015b co mo\u017ce spowodowa\u0107 szybsz\u0105 palpitacj\u0119 serca. Z tej perspektywy znacznie ciekawsz\u0105 zmian\u0105 jest wypuszczenie oficjalnej GitHub Action dla GraalVM, kt\u00f3ra to pozwala u\u017cywa\u0107 GraalVM Community Edition, Native Image i toolingu zwi\u0105zanego z Truffle w ramach githubowych build\u00f3w.&nbsp;<\/p>\n\n\n\n<p>Dodatki trafi\u0142y te\u017c do wsparcia innych j\u0119zyk\u00f3w. Je\u017celi kto\u015b u\u017cywa GraalVM do kompilacji JavaScripta, w ramach platformy pojawi\u0142o si\u0119 wsparcie dla ECMAScript 2022. U\u017cytkownicy Ruby\u2019ego od wersji 22 mog\u0105 za\u015b zacz\u0105\u0107 u\u017cywa\u0107 edycji 3.0 tego j\u0119zyka. Usprawnieniu te\u017c uleg\u0142o wsparcie dla WebAssembly, ale r\u00f3wnie\u017c Javy odpalanej w ramach \u015brodowiska uruchomieniowego Truffle, kt\u00f3re to r\u00f3wnie\u017c mo\u017ce pochwali\u0107 si\u0119 kilkoma drobnymi dodatkami.&nbsp;<\/p>\n\n\n\n<p>Tak naprawd\u0119 najciekawsze zmiany dotar\u0142y chyba do wersji GraalVM Enterprise. Edycja przeznaczona dla du\u017cych graczy to spore wydajno\u015bciowe zmiany pod mask\u0105, mocno pogrzebano bowiem z we wsparciu zar\u00f3wno kompilacji Just-in-Time, jak i Ahead-of-Time. Tw\u00f3rcy chwal\u0105 si\u0119 z przyspieszenia niekt\u00f3rych operacji o 25%, i cho\u0107 takie syntetyczne benchmarki nie s\u0105 czym\u015b co pewnie odmienia \u017cycie, to jednak r\u00f3\u017cnice mi\u0119dzy wydaniami GraalVM s\u0105 zaskakuj\u0105co du\u017ce i wychodz\u0105 daleko poza dodatkowe licencje czy te\u017c dodatkowe wsparcie.&nbsp;&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_62a88c4e0304c.png\" alt=\"\"\/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<p><a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">GraalVM 22.0 is here!. Today we are releasing GraalVM 22.0!<\/a><\/p>\n\n\n\n<h2 id=\"2-aws-sdk-dla-kotlina-ze-wsparciem-korutyn\" data-num=2>2. AWS SDK dla Kotlina ze wsparciem Korutyn<\/h2>\n\n\n\n<p>Dawno nie mieli\u015bmy dla Was og\u0142osze\u0144 ze \u015bwiata Kotlina, ale zgodnie z zasad\u0105 \u201cilo\u015b\u0107, nie jako\u015b\u0107\u201d mamy dla Was szczeg\u00f3lnie interesuj\u0105ce i z potencja\u0142em na naprawd\u0119 mocne u\u0142atwienie \u017cycia niekt\u00f3rych z Was.<\/p>\n\n\n\n<p>AWS SDK to biblioteka, kt\u00f3ra znana jest pewnie wi\u0119kszo\u015bci programist\u00f3w JVM, kt\u00f3rzy mieli przyjemno\u015b\u0107 korzysta\u0107 z chmury Amazonu (zar\u00f3wno w kodzie produkcyjnym, jak i np. w skryptach. Sam od lat \u015bledz\u0119 jej ewolucj\u0119, i pami\u0119tam jak trudna w integracji z systemami reaktywnymi by\u0142a jej oryginalna, synchroniczna wersja. Wersja 2.0 okaza\u0142a si\u0119 ju\u017c naprawd\u0119 sporym skokiem jako\u015bciowym, wprowadzaj\u0105c wsparcie do sensownej asynchroniczno\u015bci&nbsp; (aczkolwiek do tej pory pami\u0119tam problemy <a href=\"https:\/\/github.com\/aws\/aws-sdk-java-v2\/issues\/381\">z jego pierwszym wydaniem, kt\u00f3ry straszliwie napsu\u0142 mi krwi<\/a>).&nbsp;<\/p>\n\n\n\n<p>I to w\u0142a\u015bnie ponownie temat asynchroniczno\u015bci jest dobrym powodem, dla kt\u00f3rego warto spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">edycji Kotlinowej<\/a>. Wspiera ona bowiem korutyny, co jest o tyle kluczowe, \u017ce AWS SDK sk\u0142ada si\u0119 w zasadzie z samych operacji I\/O. Mi\u0142o ze strony AWS, \u017ce zdecydowa\u0142 si\u0119 na specjaln\u0105 edycj\u0119 Kotlinow\u0105 &#8211; o ile kompatybilno\u015b\u0107 tego j\u0119zyka z Jav\u0105 pozwala poradzi\u0107 sobie w wi\u0119kszo\u015bci sytuacji, o tyle dobrze, \u017ceby w 2022 nie trzeba by\u0142o si\u0119 do tego za cz\u0119sto ucieka\u0107 &#8211; w ko\u0144cu stabilne korutyny maj\u0105 ju\u017c kilka dobrych lat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">The new AWS SDK for Kotlin with Coroutines support<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-groovy-4-0-wydane-i-tak-smutne-ze-nikogo\" data-num=3>3. Groovy 4.0 wydane i tak smutne, \u017ce #nikogo<\/h2>\n\n\n\n<p>Jak dowiedzie\u0107 si\u0119, jak\u0105 dat\u0119 w metryce urodzenia ma programista Javy bez pytania go bezpo\u015brednio? Nale\u017cy wysondowa\u0107, czy mia\u0142 w karierze przyjemno\u015b\u0107 u\u017cywa\u0107 Groovy\u2019ego. Rocznik 90-ty (\ud83d\ude4b\u200d\u2642\ufe0f) i wcze\u015bniejsze prawdopodobnie mia\u0142y w \u017cyciu okres, gdy u\u017cywa\u0142y j\u0119zyka na porz\u0105dku dziennym &#8211; do skrypt\u00f3w bazodanowych, skomplikowanych build\u00f3w Gradle |(gdzie obecnie jest wypierany przez Kotlina) czy te\u017c pisania ca\u0142ych aplikacji &#8211; czy to w Grailsach (kt\u00f3re to mia\u0142y by\u0107 przecie\u017c zab\u00f3jc\u0105 Springa) czy w\u2026 <a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">Javie EE<\/a>. i je\u017celi kto\u015b mnie po czasie zapyta\u0142 dlaczego\u2026 no c\u00f3\u017c, bo si\u0119 da\u0142o \ud83e\udd37\u200d\u2642\ufe0f. Aktualnie Groovy, tak pot\u0119\u017cny dzi\u0119ki swojemu metaprogramingowi i wsparciu do tworzenia eleganckich DSLi jeszcze czasem przewija si\u0119 przez foldery \/test w projektach, a to dzi\u0119ki Spockowi \ud83d\udd96\ud83c\udffb.&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_62a88c4f59cf7.png\" alt=\"\"\/><figcaption>Taka sytuacja<\/figcaption><\/figure><\/div>\n\n\n<p>Pewnie dlatego wszelkie zapowiedzi ze strony Groovy\u2019ego tak s\u0142abo rezonuj\u0105 ze spo\u0142eczno\u015bci\u0105. Sam musz\u0119 przyzna\u0107, \u017ce pomimo tego \u017ce regularnie \u015bledz\u0119 \u015bwiat technologii, to wydanego par\u0119 lat temu Groovy\u2019ego 3.0 przegapi\u0142em i dowiedzia\u0142em si\u0119 o nim grubo po oficjalnej premierze. Na <a href=\"https:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">wersj\u0119 4.0<\/a> by\u0142em ju\u017c troch\u0119 przygotowany, ale ona te\u017c zdecydowanie nie wybrzmia\u0142a w\u015br\u00f3d programist\u00f3w &#8211; jej zesz\u0142otygodniowa premiera przesz\u0142a maksymalnie bez echa, w por\u00f3wnaniu do nowej Javy czy Kotlina.&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_62a88c5071c10.gif\" alt=\"\"\/><\/figure><\/div>\n\n\n<p>Powodem mo\u017ce by\u0107 to, jak bardzo Groovy wydaje si\u0119 pozostawa\u0107 w mocnym \u201ctrybie utrzymania\u201d. Wi\u0119kszo\u015b\u0107 funkcji przychodz\u0105cych z now\u0105 edycj\u0105 j\u0119zyka to \u201cdoci\u0105ganie\u201d do Javy. I fakt, bardzo podobnie bywa\u0142o ostatnio z Kotlinem, ale j\u0119zyk od JetBrains\u00f3w ma kilka unikalnych atut\u00f3w jak korutyny (o kt\u00f3rych ju\u017c dzisiaj wspominali\u015bmy) albo multiplatformowo\u015b\u0107. Groovy zawsze wyr\u00f3\u017cnia\u0142 si\u0119 za\u015b swoj\u0105 \u201cjazd\u0105 po kraw\u0119dzi\u201d je\u015bli chodzi o dok\u0142adane featury (w ko\u0144cu inspirowany jest legendarnym ze swojej \u201cmagiczno\u015bci\u201d Rubym), a \u201cczw\u00f3rka\u201d to jednak taka \u201cciep\u0142a woda w kranie\u201d jak Switch expressions, Sealed types, JavaShell czy Rekordy.&nbsp;<\/p>\n\n\n\n<p>Co prawda mo\u017cna w niej znale\u017a\u0107 par\u0119 ciekawszych pere\u0142ek, ale wi\u0119kszo\u015b\u0107 z nich (jak cho\u0107by GINQ &#8211; Groovy-Integrated Query)&nbsp; czy intryguj\u0105ce Groovy Contracts na razie znajduj\u0105 si\u0119 w inkubacji. Iskierk\u0105 nadziei jest jednak to, \u017ce Groovy 5.0 zapowiada si\u0119 dzi\u0119ki nim ca\u0142kiem smakowicie. Mo\u017cliwe, \u017ce aby zrobi\u0107 du\u017cy krok do przodu, tw\u00f3rcy musieli najpierw ulepszy\u0107 kompatybilno\u015b\u0107 z Jav\u0105. I co prawda nie wierz\u0119, \u017ce Groovy kiedykolwiek odzyska pozycj\u0119, kt\u00f3r\u0105 mia\u0142 jeszcze kilka lat temu, ale wierz\u0119, \u017ce jeden z ciekawszych j\u0119zyk\u00f3w JVMa jeszcze nas nie raz zaskoczy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">Release notes for Groovy 4.0<\/a><\/li><li><a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">We tried Groovy EE \u2014 and what we have learned from it | by Artur Skowro\u0144ski | Smart Up<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Przyszed\u0142 luty i wida\u0107, \u017ce bran\u017ca powoli budzi si\u0119 z po\u015bwi\u0105tecznego zastoju. Mamy dzisiaj bowiem dla Was a\u017c trzy du\u017ce releasy. Czy warto rzuca\u0107 si\u0119 do upgradu projekt\u00f3w? Tego dowiecie si\u0119 z dzisiejszego przegl\u0105du \ud83d\ude01 <\/p>\n","protected":false},"author":10,"featured_media":7925,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10012","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"8","weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/JVM-1.png","feature_image_visible":false,"feature_image_blog":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. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - 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-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - Vived\" \/>\n<meta property=\"og:description\" content=\"Przyszed\u0142 luty i wida\u0107, \u017ce bran\u017ca powoli budzi si\u0119 z po\u015bwi\u0105tecznego zastoju. Mamy dzisiaj bowiem dla Was a\u017c trzy du\u017ce releasy. Czy warto rzuca\u0107 si\u0119 do upgradu projekt\u00f3w? Tego dowiecie si\u0119 z dzisiejszego przegl\u0105du \ud83d\ude01\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-01T17:02:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"170\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\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-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 74 &#8211; GraalVM, AWS SDK dla Kotlina, Groovy 4.0\",\"datePublished\":\"2022-02-01T17:02:03+00:00\",\"dateModified\":\"2022-09-19T11:10:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\"},\"wordCount\":1050,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\",\"name\":\"JVM Tuesday vol. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif\",\"datePublished\":\"2022-02-01T17:02:03+00:00\",\"dateModified\":\"2022-09-19T11:10:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif\",\"width\":400,\"height\":170},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 74 &#8211; GraalVM, AWS SDK dla Kotlina, Groovy 4.0\"}]},{\"@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. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - 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-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - Vived","og_description":"Przyszed\u0142 luty i wida\u0107, \u017ce bran\u017ca powoli budzi si\u0119 z po\u015bwi\u0105tecznego zastoju. Mamy dzisiaj bowiem dla Was a\u017c trzy du\u017ce releasy. Czy warto rzuca\u0107 si\u0119 do upgradu projekt\u00f3w? Tego dowiecie si\u0119 z dzisiejszego przegl\u0105du \ud83d\ude01","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/","og_site_name":"Vived","article_published_time":"2022-02-01T17:02:03+00:00","article_modified_time":"2022-09-19T11:10:42+00:00","og_image":[{"width":400,"height":170,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif","type":"image\/gif"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 74 &#8211; GraalVM, AWS SDK dla Kotlina, Groovy 4.0","datePublished":"2022-02-01T17:02:03+00:00","dateModified":"2022-09-19T11:10:42+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/"},"wordCount":1050,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/","name":"JVM Tuesday vol. 74 - GraalVM, AWS SDK dla Kotlina, Groovy 4.0 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif","datePublished":"2022-02-01T17:02:03+00:00","dateModified":"2022-09-19T11:10:42+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/tumblr_mmmi68Cq4W1rdutw3o2_400.gif","width":400,"height":170},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-74-graalvm-aws-sdk-dla-kotlina-groovy-4-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 74 &#8211; GraalVM, AWS SDK dla Kotlina, Groovy 4.0"}]},{"@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 id=\"1-graalvm-22-0-wydany\">1. GraalVM 22.0 wydany<\/h2>\n","innerContent":["\n<h2 id=\"1-graalvm-22-0-wydany\">1. GraalVM 22.0 wydany<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od jednego z najciekawszych projekt\u00f3w w ramach JVM. W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 nowy GraalVM - pocz\u0105tkowo w wersji korporacyjnej, a nast\u0119pnie r\u00f3wnie\u017c w edycji Community. Co przynosi nowa edycja i czy kto\u015b, kto nie u\u017cywa\u0142 do tej pory GraalVM powinien si\u0119 na to zdecydowa\u0107 wraz z premier\u0105 <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">wersji 22.0<\/a>?<\/p>\n","innerContent":["\n<p>Zacznijmy od jednego z najciekawszych projekt\u00f3w w ramach JVM. W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 nowy GraalVM - pocz\u0105tkowo w wersji korporacyjnej, a nast\u0119pnie r\u00f3wnie\u017c w edycji Community. Co przynosi nowa edycja i czy kto\u015b, kto nie u\u017cywa\u0142 do tej pory GraalVM powinien si\u0119 na to zdecydowa\u0107 wraz z premier\u0105 <a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">wersji 22.0<\/a>?<\/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_62a88c4d108ec.gif\" alt=\"\"\/><figcaption>Odpowied\u017a brzmi \u201cRaczej nie\u201d ale nie uprzedzajmy fakt\u00f3w.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c4d108ec.gif\" alt=\"\"\/><figcaption>Odpowied\u017a brzmi \u201cRaczej nie\u201d ale nie uprzedzajmy fakt\u00f3w.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Fani statystyk wszelakich z pewno\u015bci\u0105 ukontentowani b\u0119d\u0105 rozbudowanymi logami podczas budowania natywnych obraz\u00f3w. Bior\u0105c pod uwag\u0119, \u017ce GraalVM u\u017cywany jest g\u0142\u00f3wnie w \u015brodowiskach, w ramach kt\u00f3rych moc obliczeniowa i og\u00f3lnie poj\u0119te zasoby s\u0105 mocno limitowane, jest to zdecydowanie przydatny dodatek, ale raczej nie jest czym\u015b co mo\u017ce spowodowa\u0107 szybsz\u0105 palpitacj\u0119 serca. Z tej perspektywy znacznie ciekawsz\u0105 zmian\u0105 jest wypuszczenie oficjalnej GitHub Action dla GraalVM, kt\u00f3ra to pozwala u\u017cywa\u0107 GraalVM Community Edition, Native Image i toolingu zwi\u0105zanego z Truffle w ramach githubowych build\u00f3w.&nbsp;<\/p>\n","innerContent":["\n<p>Fani statystyk wszelakich z pewno\u015bci\u0105 ukontentowani b\u0119d\u0105 rozbudowanymi logami podczas budowania natywnych obraz\u00f3w. Bior\u0105c pod uwag\u0119, \u017ce GraalVM u\u017cywany jest g\u0142\u00f3wnie w \u015brodowiskach, w ramach kt\u00f3rych moc obliczeniowa i og\u00f3lnie poj\u0119te zasoby s\u0105 mocno limitowane, jest to zdecydowanie przydatny dodatek, ale raczej nie jest czym\u015b co mo\u017ce spowodowa\u0107 szybsz\u0105 palpitacj\u0119 serca. Z tej perspektywy znacznie ciekawsz\u0105 zmian\u0105 jest wypuszczenie oficjalnej GitHub Action dla GraalVM, kt\u00f3ra to pozwala u\u017cywa\u0107 GraalVM Community Edition, Native Image i toolingu zwi\u0105zanego z Truffle w ramach githubowych build\u00f3w.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dodatki trafi\u0142y te\u017c do wsparcia innych j\u0119zyk\u00f3w. Je\u017celi kto\u015b u\u017cywa GraalVM do kompilacji JavaScripta, w ramach platformy pojawi\u0142o si\u0119 wsparcie dla ECMAScript 2022. U\u017cytkownicy Ruby\u2019ego od wersji 22 mog\u0105 za\u015b zacz\u0105\u0107 u\u017cywa\u0107 edycji 3.0 tego j\u0119zyka. Usprawnieniu te\u017c uleg\u0142o wsparcie dla WebAssembly, ale r\u00f3wnie\u017c Javy odpalanej w ramach \u015brodowiska uruchomieniowego Truffle, kt\u00f3re to r\u00f3wnie\u017c mo\u017ce pochwali\u0107 si\u0119 kilkoma drobnymi dodatkami.&nbsp;<\/p>\n","innerContent":["\n<p>Dodatki trafi\u0142y te\u017c do wsparcia innych j\u0119zyk\u00f3w. Je\u017celi kto\u015b u\u017cywa GraalVM do kompilacji JavaScripta, w ramach platformy pojawi\u0142o si\u0119 wsparcie dla ECMAScript 2022. U\u017cytkownicy Ruby\u2019ego od wersji 22 mog\u0105 za\u015b zacz\u0105\u0107 u\u017cywa\u0107 edycji 3.0 tego j\u0119zyka. Usprawnieniu te\u017c uleg\u0142o wsparcie dla WebAssembly, ale r\u00f3wnie\u017c Javy odpalanej w ramach \u015brodowiska uruchomieniowego Truffle, kt\u00f3re to r\u00f3wnie\u017c mo\u017ce pochwali\u0107 si\u0119 kilkoma drobnymi dodatkami.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tak naprawd\u0119 najciekawsze zmiany dotar\u0142y chyba do wersji GraalVM Enterprise. Edycja przeznaczona dla du\u017cych graczy to spore wydajno\u015bciowe zmiany pod mask\u0105, mocno pogrzebano bowiem z we wsparciu zar\u00f3wno kompilacji Just-in-Time, jak i Ahead-of-Time. Tw\u00f3rcy chwal\u0105 si\u0119 z przyspieszenia niekt\u00f3rych operacji o 25%, i cho\u0107 takie syntetyczne benchmarki nie s\u0105 czym\u015b co pewnie odmienia \u017cycie, to jednak r\u00f3\u017cnice mi\u0119dzy wydaniami GraalVM s\u0105 zaskakuj\u0105co du\u017ce i wychodz\u0105 daleko poza dodatkowe licencje czy te\u017c dodatkowe wsparcie.&nbsp;&nbsp;<\/p>\n","innerContent":["\n<p>Tak naprawd\u0119 najciekawsze zmiany dotar\u0142y chyba do wersji GraalVM Enterprise. Edycja przeznaczona dla du\u017cych graczy to spore wydajno\u015bciowe zmiany pod mask\u0105, mocno pogrzebano bowiem z we wsparciu zar\u00f3wno kompilacji Just-in-Time, jak i Ahead-of-Time. Tw\u00f3rcy chwal\u0105 si\u0119 z przyspieszenia niekt\u00f3rych operacji o 25%, i cho\u0107 takie syntetyczne benchmarki nie s\u0105 czym\u015b co pewnie odmienia \u017cycie, to jednak r\u00f3\u017cnice mi\u0119dzy wydaniami GraalVM s\u0105 zaskakuj\u0105co du\u017ce i wychodz\u0105 daleko poza dodatkowe licencje czy te\u017c dodatkowe wsparcie.&nbsp;&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_62a88c4e0304c.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c4e0304c.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">GraalVM 22.0 is here!. Today we are releasing GraalVM 22.0!<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/medium.com\/graalvm\/graalvm-22-0-is-here-c7acc82a8c2e\">GraalVM 22.0 is here!. Today we are releasing GraalVM 22.0!<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 id=\"2-aws-sdk-dla-kotlina-ze-wsparciem-korutyn\">2. AWS SDK dla Kotlina ze wsparciem Korutyn<\/h2>\n","innerContent":["\n<h2 id=\"2-aws-sdk-dla-kotlina-ze-wsparciem-korutyn\">2. AWS SDK dla Kotlina ze wsparciem Korutyn<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dawno nie mieli\u015bmy dla Was og\u0142osze\u0144 ze \u015bwiata Kotlina, ale zgodnie z zasad\u0105 \u201cilo\u015b\u0107, nie jako\u015b\u0107\u201d mamy dla Was szczeg\u00f3lnie interesuj\u0105ce i z potencja\u0142em na naprawd\u0119 mocne u\u0142atwienie \u017cycia niekt\u00f3rych z Was.<\/p>\n","innerContent":["\n<p>Dawno nie mieli\u015bmy dla Was og\u0142osze\u0144 ze \u015bwiata Kotlina, ale zgodnie z zasad\u0105 \u201cilo\u015b\u0107, nie jako\u015b\u0107\u201d mamy dla Was szczeg\u00f3lnie interesuj\u0105ce i z potencja\u0142em na naprawd\u0119 mocne u\u0142atwienie \u017cycia niekt\u00f3rych z Was.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>AWS SDK to biblioteka, kt\u00f3ra znana jest pewnie wi\u0119kszo\u015bci programist\u00f3w JVM, kt\u00f3rzy mieli przyjemno\u015b\u0107 korzysta\u0107 z chmury Amazonu (zar\u00f3wno w kodzie produkcyjnym, jak i np. w skryptach. Sam od lat \u015bledz\u0119 jej ewolucj\u0119, i pami\u0119tam jak trudna w integracji z systemami reaktywnymi by\u0142a jej oryginalna, synchroniczna wersja. Wersja 2.0 okaza\u0142a si\u0119 ju\u017c naprawd\u0119 sporym skokiem jako\u015bciowym, wprowadzaj\u0105c wsparcie do sensownej asynchroniczno\u015bci&nbsp; (aczkolwiek do tej pory pami\u0119tam problemy <a href=\"https:\/\/github.com\/aws\/aws-sdk-java-v2\/issues\/381\">z jego pierwszym wydaniem, kt\u00f3ry straszliwie napsu\u0142 mi krwi<\/a>).&nbsp;<\/p>\n","innerContent":["\n<p>AWS SDK to biblioteka, kt\u00f3ra znana jest pewnie wi\u0119kszo\u015bci programist\u00f3w JVM, kt\u00f3rzy mieli przyjemno\u015b\u0107 korzysta\u0107 z chmury Amazonu (zar\u00f3wno w kodzie produkcyjnym, jak i np. w skryptach. Sam od lat \u015bledz\u0119 jej ewolucj\u0119, i pami\u0119tam jak trudna w integracji z systemami reaktywnymi by\u0142a jej oryginalna, synchroniczna wersja. Wersja 2.0 okaza\u0142a si\u0119 ju\u017c naprawd\u0119 sporym skokiem jako\u015bciowym, wprowadzaj\u0105c wsparcie do sensownej asynchroniczno\u015bci&nbsp; (aczkolwiek do tej pory pami\u0119tam problemy <a href=\"https:\/\/github.com\/aws\/aws-sdk-java-v2\/issues\/381\">z jego pierwszym wydaniem, kt\u00f3ry straszliwie napsu\u0142 mi krwi<\/a>).&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>I to w\u0142a\u015bnie ponownie temat asynchroniczno\u015bci jest dobrym powodem, dla kt\u00f3rego warto spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">edycji Kotlinowej<\/a>. Wspiera ona bowiem korutyny, co jest o tyle kluczowe, \u017ce AWS SDK sk\u0142ada si\u0119 w zasadzie z samych operacji I\/O. Mi\u0142o ze strony AWS, \u017ce zdecydowa\u0142 si\u0119 na specjaln\u0105 edycj\u0119 Kotlinow\u0105 - o ile kompatybilno\u015b\u0107 tego j\u0119zyka z Jav\u0105 pozwala poradzi\u0107 sobie w wi\u0119kszo\u015bci sytuacji, o tyle dobrze, \u017ceby w 2022 nie trzeba by\u0142o si\u0119 do tego za cz\u0119sto ucieka\u0107 - w ko\u0144cu stabilne korutyny maj\u0105 ju\u017c kilka dobrych lat.<\/p>\n","innerContent":["\n<p>I to w\u0142a\u015bnie ponownie temat asynchroniczno\u015bci jest dobrym powodem, dla kt\u00f3rego warto spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">edycji Kotlinowej<\/a>. Wspiera ona bowiem korutyny, co jest o tyle kluczowe, \u017ce AWS SDK sk\u0142ada si\u0119 w zasadzie z samych operacji I\/O. Mi\u0142o ze strony AWS, \u017ce zdecydowa\u0142 si\u0119 na specjaln\u0105 edycj\u0119 Kotlinow\u0105 - o ile kompatybilno\u015b\u0107 tego j\u0119zyka z Jav\u0105 pozwala poradzi\u0107 sobie w wi\u0119kszo\u015bci sytuacji, o tyle dobrze, \u017ceby w 2022 nie trzeba by\u0142o si\u0119 do tego za cz\u0119sto ucieka\u0107 - w ko\u0144cu stabilne korutyny maj\u0105 ju\u017c kilka dobrych lat.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3 id=\"zrodla\">\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:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">The new AWS SDK for Kotlin with Coroutines support<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/01\/the-new-aws-sdk-for-kotlin-with-coroutines-support\/\">The new AWS SDK for Kotlin with Coroutines support<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 id=\"3-groovy-4-0-wydane-i-tak-smutne-ze-nikogo\">3. Groovy 4.0 wydane i tak smutne, \u017ce #nikogo<\/h2>\n","innerContent":["\n<h2 id=\"3-groovy-4-0-wydane-i-tak-smutne-ze-nikogo\">3. Groovy 4.0 wydane i tak smutne, \u017ce #nikogo<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jak dowiedzie\u0107 si\u0119, jak\u0105 dat\u0119 w metryce urodzenia ma programista Javy bez pytania go bezpo\u015brednio? Nale\u017cy wysondowa\u0107, czy mia\u0142 w karierze przyjemno\u015b\u0107 u\u017cywa\u0107 Groovy\u2019ego. Rocznik 90-ty (\ud83d\ude4b\u200d\u2642\ufe0f) i wcze\u015bniejsze prawdopodobnie mia\u0142y w \u017cyciu okres, gdy u\u017cywa\u0142y j\u0119zyka na porz\u0105dku dziennym - do skrypt\u00f3w bazodanowych, skomplikowanych build\u00f3w Gradle |(gdzie obecnie jest wypierany przez Kotlina) czy te\u017c pisania ca\u0142ych aplikacji - czy to w Grailsach (kt\u00f3re to mia\u0142y by\u0107 przecie\u017c zab\u00f3jc\u0105 Springa) czy w\u2026 <a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">Javie EE<\/a>. i je\u017celi kto\u015b mnie po czasie zapyta\u0142 dlaczego\u2026 no c\u00f3\u017c, bo si\u0119 da\u0142o \ud83e\udd37\u200d\u2642\ufe0f. Aktualnie Groovy, tak pot\u0119\u017cny dzi\u0119ki swojemu metaprogramingowi i wsparciu do tworzenia eleganckich DSLi jeszcze czasem przewija si\u0119 przez foldery \/test w projektach, a to dzi\u0119ki Spockowi \ud83d\udd96\ud83c\udffb.&nbsp;<\/p>\n","innerContent":["\n<p>Jak dowiedzie\u0107 si\u0119, jak\u0105 dat\u0119 w metryce urodzenia ma programista Javy bez pytania go bezpo\u015brednio? Nale\u017cy wysondowa\u0107, czy mia\u0142 w karierze przyjemno\u015b\u0107 u\u017cywa\u0107 Groovy\u2019ego. Rocznik 90-ty (\ud83d\ude4b\u200d\u2642\ufe0f) i wcze\u015bniejsze prawdopodobnie mia\u0142y w \u017cyciu okres, gdy u\u017cywa\u0142y j\u0119zyka na porz\u0105dku dziennym - do skrypt\u00f3w bazodanowych, skomplikowanych build\u00f3w Gradle |(gdzie obecnie jest wypierany przez Kotlina) czy te\u017c pisania ca\u0142ych aplikacji - czy to w Grailsach (kt\u00f3re to mia\u0142y by\u0107 przecie\u017c zab\u00f3jc\u0105 Springa) czy w\u2026 <a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">Javie EE<\/a>. i je\u017celi kto\u015b mnie po czasie zapyta\u0142 dlaczego\u2026 no c\u00f3\u017c, bo si\u0119 da\u0142o \ud83e\udd37\u200d\u2642\ufe0f. Aktualnie Groovy, tak pot\u0119\u017cny dzi\u0119ki swojemu metaprogramingowi i wsparciu do tworzenia eleganckich DSLi jeszcze czasem przewija si\u0119 przez foldery \/test w projektach, a to dzi\u0119ki Spockowi \ud83d\udd96\ud83c\udffb.&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_62a88c4f59cf7.png\" alt=\"\"\/><figcaption>Taka sytuacja<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c4f59cf7.png\" alt=\"\"\/><figcaption>Taka sytuacja<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pewnie dlatego wszelkie zapowiedzi ze strony Groovy\u2019ego tak s\u0142abo rezonuj\u0105 ze spo\u0142eczno\u015bci\u0105. Sam musz\u0119 przyzna\u0107, \u017ce pomimo tego \u017ce regularnie \u015bledz\u0119 \u015bwiat technologii, to wydanego par\u0119 lat temu Groovy\u2019ego 3.0 przegapi\u0142em i dowiedzia\u0142em si\u0119 o nim grubo po oficjalnej premierze. Na <a href=\"https:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">wersj\u0119 4.0<\/a> by\u0142em ju\u017c troch\u0119 przygotowany, ale ona te\u017c zdecydowanie nie wybrzmia\u0142a w\u015br\u00f3d programist\u00f3w - jej zesz\u0142otygodniowa premiera przesz\u0142a maksymalnie bez echa, w por\u00f3wnaniu do nowej Javy czy Kotlina.&nbsp;<\/p>\n","innerContent":["\n<p>Pewnie dlatego wszelkie zapowiedzi ze strony Groovy\u2019ego tak s\u0142abo rezonuj\u0105 ze spo\u0142eczno\u015bci\u0105. Sam musz\u0119 przyzna\u0107, \u017ce pomimo tego \u017ce regularnie \u015bledz\u0119 \u015bwiat technologii, to wydanego par\u0119 lat temu Groovy\u2019ego 3.0 przegapi\u0142em i dowiedzia\u0142em si\u0119 o nim grubo po oficjalnej premierze. Na <a href=\"https:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">wersj\u0119 4.0<\/a> by\u0142em ju\u017c troch\u0119 przygotowany, ale ona te\u017c zdecydowanie nie wybrzmia\u0142a w\u015br\u00f3d programist\u00f3w - jej zesz\u0142otygodniowa premiera przesz\u0142a maksymalnie bez echa, w por\u00f3wnaniu do nowej Javy czy Kotlina.&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_62a88c5071c10.gif\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c5071c10.gif\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Powodem mo\u017ce by\u0107 to, jak bardzo Groovy wydaje si\u0119 pozostawa\u0107 w mocnym \u201ctrybie utrzymania\u201d. Wi\u0119kszo\u015b\u0107 funkcji przychodz\u0105cych z now\u0105 edycj\u0105 j\u0119zyka to \u201cdoci\u0105ganie\u201d do Javy. I fakt, bardzo podobnie bywa\u0142o ostatnio z Kotlinem, ale j\u0119zyk od JetBrains\u00f3w ma kilka unikalnych atut\u00f3w jak korutyny (o kt\u00f3rych ju\u017c dzisiaj wspominali\u015bmy) albo multiplatformowo\u015b\u0107. Groovy zawsze wyr\u00f3\u017cnia\u0142 si\u0119 za\u015b swoj\u0105 \u201cjazd\u0105 po kraw\u0119dzi\u201d je\u015bli chodzi o dok\u0142adane featury (w ko\u0144cu inspirowany jest legendarnym ze swojej \u201cmagiczno\u015bci\u201d Rubym), a \u201cczw\u00f3rka\u201d to jednak taka \u201cciep\u0142a woda w kranie\u201d jak Switch expressions, Sealed types, JavaShell czy Rekordy.&nbsp;<\/p>\n","innerContent":["\n<p>Powodem mo\u017ce by\u0107 to, jak bardzo Groovy wydaje si\u0119 pozostawa\u0107 w mocnym \u201ctrybie utrzymania\u201d. Wi\u0119kszo\u015b\u0107 funkcji przychodz\u0105cych z now\u0105 edycj\u0105 j\u0119zyka to \u201cdoci\u0105ganie\u201d do Javy. I fakt, bardzo podobnie bywa\u0142o ostatnio z Kotlinem, ale j\u0119zyk od JetBrains\u00f3w ma kilka unikalnych atut\u00f3w jak korutyny (o kt\u00f3rych ju\u017c dzisiaj wspominali\u015bmy) albo multiplatformowo\u015b\u0107. Groovy zawsze wyr\u00f3\u017cnia\u0142 si\u0119 za\u015b swoj\u0105 \u201cjazd\u0105 po kraw\u0119dzi\u201d je\u015bli chodzi o dok\u0142adane featury (w ko\u0144cu inspirowany jest legendarnym ze swojej \u201cmagiczno\u015bci\u201d Rubym), a \u201cczw\u00f3rka\u201d to jednak taka \u201cciep\u0142a woda w kranie\u201d jak Switch expressions, Sealed types, JavaShell czy Rekordy.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co prawda mo\u017cna w niej znale\u017a\u0107 par\u0119 ciekawszych pere\u0142ek, ale wi\u0119kszo\u015b\u0107 z nich (jak cho\u0107by GINQ - Groovy-Integrated Query)&nbsp; czy intryguj\u0105ce Groovy Contracts na razie znajduj\u0105 si\u0119 w inkubacji. Iskierk\u0105 nadziei jest jednak to, \u017ce Groovy 5.0 zapowiada si\u0119 dzi\u0119ki nim ca\u0142kiem smakowicie. Mo\u017cliwe, \u017ce aby zrobi\u0107 du\u017cy krok do przodu, tw\u00f3rcy musieli najpierw ulepszy\u0107 kompatybilno\u015b\u0107 z Jav\u0105. I co prawda nie wierz\u0119, \u017ce Groovy kiedykolwiek odzyska pozycj\u0119, kt\u00f3r\u0105 mia\u0142 jeszcze kilka lat temu, ale wierz\u0119, \u017ce jeden z ciekawszych j\u0119zyk\u00f3w JVMa jeszcze nas nie raz zaskoczy.<\/p>\n","innerContent":["\n<p>Co prawda mo\u017cna w niej znale\u017a\u0107 par\u0119 ciekawszych pere\u0142ek, ale wi\u0119kszo\u015b\u0107 z nich (jak cho\u0107by GINQ - Groovy-Integrated Query)&nbsp; czy intryguj\u0105ce Groovy Contracts na razie znajduj\u0105 si\u0119 w inkubacji. Iskierk\u0105 nadziei jest jednak to, \u017ce Groovy 5.0 zapowiada si\u0119 dzi\u0119ki nim ca\u0142kiem smakowicie. Mo\u017cliwe, \u017ce aby zrobi\u0107 du\u017cy krok do przodu, tw\u00f3rcy musieli najpierw ulepszy\u0107 kompatybilno\u015b\u0107 z Jav\u0105. I co prawda nie wierz\u0119, \u017ce Groovy kiedykolwiek odzyska pozycj\u0119, kt\u00f3r\u0105 mia\u0142 jeszcze kilka lat temu, ale wierz\u0119, \u017ce jeden z ciekawszych j\u0119zyk\u00f3w JVMa jeszcze nas nie raz zaskoczy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3 id=\"zrodla\">\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:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">Release notes for Groovy 4.0<\/a><\/li><li><a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">We tried Groovy EE \u2014 and what we have learned from it | by Artur Skowro\u0144ski | Smart Up<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/groovy-lang.org\/releasenotes\/groovy-4.0.html\">Release notes for Groovy 4.0<\/a><\/li><li><a href=\"https:\/\/up.smartrecruiters.com\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">We tried Groovy EE \u2014 and what we have learned from it | by Artur Skowro\u0144ski | Smart Up<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10012","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=10012"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10012\/revisions"}],"predecessor-version":[{"id":10537,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10012\/revisions\/10537"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7925"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}