{"id":11116,"date":"2022-10-05T10:58:41","date_gmt":"2022-10-05T08:58:41","guid":{"rendered":"https:\/\/vived.io\/?p=11116"},"modified":"2022-10-05T12:26:34","modified_gmt":"2022-10-05T10:26:34","slug":"czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/","title":{"rendered":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? &#8211; JVM Weekly 107"},"content":{"rendered":"\n<h2 id=\"1-kotlin-1-7-20-wydany\" data-num=1>1. Kotlin 1.7.20 wydany<\/h2>\n\n\n\n<p>Od kiedy pierwszy raz informowali\u015bmy o wersji Beta ko\u0144cem lipca troch\u0119 czasu ju\u017c min\u0119\u0142o, ale w ko\u0144cu <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 trafia w nasze \u0142apy<\/a>. Wersje 1.x.20 zawsze by\u0142y istotnymi, stanowi\u0105c ostatni przystanek prze kolejnym &#8222;du\u017cym&#8221; wydaniem. Czy r\u00f3wnie\u017c 1.7.20 przynosi ze sob\u0105 istotne zmiany?<\/p>\n\n\n\n<p>Tym razem mocno jak nigdy&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"360\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/giphy.gif\" alt=\"\" class=\"wp-image-11117\"\/><\/figure><\/div>\n\n\n<p>No bo troch\u0119 ci\u0119\u017cko inaczej m\u00f3wi\u0107 o wydaniu Kot nc lina, kt\u00f3rego g\u0142\u00f3wn\u0105 nowo\u015bci\u0105 jest dodanie do eksperymentalnego kompilatora eksperymentalnych plugin\u00f3w. K2, bo oczywi\u015bcie o niej tutaj mowa, zbli\u017cy\u0142a si\u0119 w ten spos\u00f3b w kierunku wersji produkcyjnej. S\u0142owem klucz jest jednak tutaj &#8222;zbli\u017cy\u0142a&#8221;. O ile bardzo czekam na K2 i wierze, \u017ce mo\u017ce by\u0107 dla Kotlina swoistym nowym rozdaniem, o tyle naprawd\u0119 ci\u0119\u017cko by mi by\u0142o komu\u015b rekomendowa\u0107 upgrade wersji wy\u0142\u0105cznie z powodu tej nowo\u015bci. Wsparcie wspomnianych plugin\u00f3w kompilatora, takie jak <code>all-open<\/code>, <code>no-arg<\/code> czy <code>Lombok<\/code> sprawia, \u017ce wiele projekt\u00f3w wreszcie b\u0119dzie mog\u0142o w miar\u0119 bezwysi\u0142kowo zweryfikowa\u0107, na ile K2 rzeczywi\u015bcie sprawdza si\u0119 w ich przypadkach u\u017cycia. Tw\u00f3rcom Kotlina da to z pewno\u015bci\u0105 mas\u0119 warto\u015bciowego feedbacku.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"381\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/profit-beczka.gif\" alt=\"\" class=\"wp-image-11125\"\/><figcaption>W sumie&#8230; chyba profit.<\/figcaption><\/figure><\/div>\n\n\n<p>Oczywi\u015bcie, jak to w wypadku K2, na razie wszystkie te nowo\u015bci dotycz\u0105 tylko Kotlina odpalanego na JVM (zreszt\u0105 w\u0142a\u015bnie ta edycja otrzyma\u0142a w 1.7.20 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1720.html#kotlin-jvm\">kilka innych eksperymentalnych nowo\u015bci, g\u0142\u00f3wnie wydajno\u015bciowych<\/a>). Kotlin to jednak dzisiaj znacznie wi\u0119cej ni\u017c JVM. Dlatego te\u017c inn\u0105, r\u00f3wnie hermetyczn\u0105, acz istotn\u0105 zmian\u0105 pod mask\u0105 1.7.20 jest ostateczne &#8222;przyklepni\u0119cie&#8221; nowego managera pami\u0119ci dla Kotlin Native. Ten przewija\u0142 si\u0119 w wersjach testowych ju\u017c od kilku wyda\u0144, ale ostatecznie tw\u00f3rcy uznali, \u017ce jest on gotowy na produkcyjny prime-time. Nowy spos\u00f3b zarz\u0105dzania pami\u0119ci\u0105 ma znacznie usprawni\u0107 prac\u0119 z korutynami, a tak\u017ce dzielenie kodu mi\u0119dzy iOSem, a Androidem. Z tej perspektywy, stanowi wi\u0119c (podobnie jak wcze\u015bniej przywo\u0142ywana K2) kamie\u0144 milowy dla projektu Kotlin Multiplatform.<\/p>\n\n\n\n<p>No tak, ale co z tego wydania b\u0119dzie mia\u0142 &#8222;zwyk\u0142y&#8221; u\u017cytkownik Kotlina? No c\u00f3\u017c&#8230; w sumie nic.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3.png\" alt=\"\" class=\"wp-image-11119\" width=\"476\" height=\"308\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3.png 952w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3-300x194.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3-768x497.png 768w\" sizes=\"auto, (max-width: 476px) 100vw, 476px\" \/><\/figure><\/div>\n\n\n<p>Nie, drogi <code>..&lt;<\/code>, nie jeste\u015b. Ale te\u017c ci\u0119\u017cko uzna\u0107 Ci\u0119 za co\u015b, co wywr\u00f3ci \u017cycie programist\u00f3w, zw\u0142aszcza, \u017ce wsparcie syntaktyczne dla niedomkni\u0119tych zakres\u00f3w:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>when (value) {\n    in 0.0..&lt;0.25 -&gt; \/\/ first quarter\n    in 0.25..&lt;0.5 -&gt; \/\/ second quarter\n    in 0.5..&lt;0.75 -&gt; \/\/ third quarter\n    in 0.75..1.0 -&gt;  \/\/ last quarter  &lt;- note closed range here\n}<\/code><\/pre>\n\n\n\n<p>pozostaje eksperymentalnym &#8222;featurem&#8221;. Podobnie b\u0119dzie pewnie z <code>data object<\/code>, nowym typem danych, kt\u00f3ry od zwyk\u0142ego <code>object<\/code> r\u00f3\u017cni si\u0119 wy\u0142\u0105cznie lepsz\u0105 reprezentacj\u0105 toString&#8230; i r\u00f3wnie\u017c pozostaje eksperymentalne.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"The NEW Kotlin 1.7.20: Unboxing and Review\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/OG9npowJgE8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption>Je\u015bli lubicie format video &#8211; to jak zwykle <a href=\"https:\/\/twitter.com\/sebi_io\">Sebastian Aigner<\/a> z JetBrains przygotowa\u0142o takie podsumowanie wydania. W\u0142asnego <a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">osobnego wideo<\/a> doczeka\u0142 si\u0119 za\u015b wspomniany <code>..&lt;<\/code><\/figcaption><\/figure>\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:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 Released<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=OG9npowJgE8\">The NEW Kotlin 1.7.20: Unboxing and Review<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">NEW OPERATOR in Kotlin (and true open-ended ranges)<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-co-kotlin-ma-jeszcze-do-zaoferowania-programistom-javy\" data-num=2>2. Co Kotlin ma jeszcze do zaoferowania programistom Javy?<\/h2>\n\n\n\n<p>Dla wszystkich tych, kt\u00f3rzy odczytali moje dywagacje na temat nowego wydania Kotlina jako co\u015b mocno negatywnego &#8211; \u015bpiesz\u0119 tutaj z wyja\u015bnieniami. Ja Kotlina naprawd\u0119&nbsp;bardzo lubi\u0119 i traktuje go jako realny &#8222;inkrement&#8221; nad Jav\u0105. Problem polega na tym, \u017ce jego tw\u00f3rcy zrobili na tyle dobr\u0105 robot\u0119 w kilku pierwszych edycjach, \u017ce ci\u0119\u017cko wprowadzi\u0107 teraz jak\u0105\u015b znacz\u0105c\u0105 rewolucj\u0119. Z drugiej strony, tw\u00f3rc\u00f3w projektu dopad\u0142 chyba troch\u0119&#8230; d\u0142ug techniczny, st\u0105d tak wiele nowych rzeczy dotyka raczej aspekt\u00f3w ma\u0142o widocznych dla przeci\u0119tnego programisty.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"560\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-5.png\" alt=\"\" class=\"wp-image-11130\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-5.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-5-268x300.png 268w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption>A przynajmniej nie w suchych release notes, bo to w\u0142a\u015bnie pr\u0119dko\u015b\u0107 kompilacji w dalszym ci\u0105gu pozostaje bol\u0105czk\u0105 Kotlina, mimo niesamowitego kroku naprz\u00f3d w stosunku do moich pierwszych eksperyment\u00f3w jeszcze w 2018.<\/figcaption><\/figure><\/div>\n\n\n<p>Sprawia to, \u017ce od dawna nie mieli\u015bmy w Kotlinie czego\u015b, co zrobi\u0142oby jakie\u015b wi\u0119ksze wra\u017cenie i szum, a swoista &#8222;ucieczka&#8221; w Multiplatform te\u017c si\u0119 nieco przeci\u0105ga. Nie by\u0142oby w tym pewnie nic szczeg\u00f3lnie dla j\u0119zyka niepokoj\u0105cego, gdyby nie to jak mocno wp\u0142yn\u0105\u0142 on na konkurencj\u0119, w szczeg\u00f3lno\u015bci t\u0105 najbli\u017csz\u0105 \u2013 chodzi mi oczywi\u015bcie o Java.<\/p>\n\n\n\n<p>\u017beby nie by\u0142o, \u017ce to tylko m\u00f3j DoomSaying &#8211; pod koniec 2019 roku Jake Wharton \u2013 \u015bwietnie znany w spo\u0142eczno\u015bci Androidowej \u2013 opublikowa\u0142 zbi\u00f3r przewidywa\u0144 na temat tego, jak szybko Java b\u0119dzie w stanie nadgania\u0107 swojego m\u0142odszego kuzyna. W oparciu na dost\u0119pne w owym czasie JEPy zastanawia\u0142 si\u0119, kt\u00f3re z istniej\u0105cych wtedy przewag Kotlina b\u0119d\u0105 ci\u0105gle realnymi przy premierze Javy 19. A \u017ce ta mia\u0142a w\u0142a\u015bnie miejsce, <a href=\"https:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">przyszed\u0142 czas podsumowa\u0144<\/a>. Te s\u0105 za\u015b bardzo&#8230; interesuj\u0105ce.<\/p>\n\n\n\n<p>Okazuje si\u0119 bowiem, \u017ce ze wszystkich dyskutowanych onegdaj funkcjonalno\u015bci (Bloki Tekstu, Rekordy, Sealed Classy czy wirtualne w\u0105tki), jedyna kt\u00f3ra nie zosta\u0142a &#8222;dowieziona&#8221; to Lokalne Metody &#8211; wszystkie inne mo\u017cemy ju\u017c w Javie u\u017cywa\u0107. Tekst Jake ko\u0144czy si\u0119 raczej na pozytywnej nucie (Kotlin w ko\u0144cu od tamtej pory te\u017c wprowadzi\u0142 troch\u0119 nowo\u015bci), ale coraz trudniejszym wydaje si\u0119 by\u0107 przekonanie programist\u00f3w Java do migracji &#8211; po prostu z roku na rok, inwestycja w nowy ekosystem daje coraz mniej.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-1024x1024.png\" alt=\"\" class=\"wp-image-11127\" width=\"512\" height=\"512\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-1024x1024.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-300x300.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-150x150.png 150w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-768x768.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4.png 1534w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption>Aczkolwiek ja w dalszym razie uwielbiam Kotlina za jego podej\u015bcie do nie-nullowalnych typ\u00f3w. I tego Java nam chyba nigdy nie da.<\/figcaption><\/figure><\/div>\n\n\n<p>A sytuacja nabiera tempa. Ju\u017c po publikacji tekstu Whartona, regularnie pojawiaj\u0105cy si\u0119 w tych przegl\u0105dach Brian Goetz opublikowa\u0142 du\u017cy tekst o znamiennym tytule <a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">&#8222;Brukowanie rampy wej\u015bciowej&#8221; (&#8222;Paving the on-ramp&#8221;)<\/a>, wpisuj\u0105cego si\u0119 w Project Amber. W ramach publikacji dokonuje on analizy, co tak naprawd\u0119 musia\u0142oby sta\u0107 si\u0119 z j\u0119zykiem, aby ten sta\u0142 si\u0119 przyjemniejszy dla pocz\u0105tkuj\u0105cych. Kanw\u0105 ca\u0142o\u015bci jest pr\u00f3ba przej\u015bcia z:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class HelloWorld { \n    public static void main(String&#091;] args) { \n        System.out.println(&quot;Hello World&quot;);\n    }\n}<\/code><\/pre>\n\n\n\n<p>do<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void main() {\n    println(&quot;Hello World&quot;);\n}<\/code><\/pre>\n\n\n\n<p>A wi\u0119c &#8222;prawie&#8221; maksymalnego uproszczenia sk\u0142adni j\u0119zyka. Jak si\u0119 okazuje, nie jest to co\u015b niewykonalnego &#8211; Brian w klarowny spos\u00f3b przedstawiam jakie kolejne kroki musia\u0142yby zosta\u0107 wykonane, aby ostatecznie doj\u015b\u0107 do wspomnianego celu. Po drodze musia\u0142oby si\u0119 pojawi\u0107 kilka nowych funkcji j\u0119zyka (jak nienazwane klasy czy te\u017c predefiniowane statyczne importy), a sporym zmianom musia\u0142by ulec tak zwany &#8222;launch protocol&#8221;, czyli zbi\u00f3r zasad m\u00f3wi\u0105cych, kt\u00f3re metody mog\u0105 stanowi\u0107 punkt uruchomieniowy dla javowych program\u00f3w.<\/p>\n\n\n\n<p>Polecam lektur\u0119 publikacji, poniewa\u017c jest ona zar\u00f3wno przyst\u0119pna, jak i pe\u0142na interesuj\u0105cych detali dla ka\u017cdego, kto jest ciekawy procesu, w ramach kt\u00f3rego przebiega ewolucja j\u0119zyka takiego jak Java. Dodatkowo, tekst pomaga te\u017c zrozumie\u0107 idee stoj\u0105ce za nieco mniej znanymi funkcjami j\u0119zyka jak np. JShell.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/download-1.png\" alt=\"\" class=\"wp-image-11168\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/download-1.png 750w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/download-1-300x200.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><figcaption>Dla fan\u00f3w Kotlina b\u0119dzie stanowi\u0142 za\u015b po raz kolejny dow\u00f3d, jak bardzo &#8222;inspiruj\u0105cym&#8221; sta\u0142 si\u0119 ich j\u0119zyk dla ca\u0142ej JVMowej spo\u0142eczno\u015bci.<\/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:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">Report card: Java 19 and the end of Kotlin<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">Paving the on-ramp<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-jak-wyglada-uzycie-javy-w-microsoft\" data-num=3>3. Jak wygl\u0105da u\u017cycie Javy w Microsoft<\/h2>\n\n\n\n<p>A na koniec kr\u00f3tko o <a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">korporacyjnym PDFie od Microsoftu<\/a>. Firma z Redmond zdecydowa\u0142a si\u0119 bowiem pochwali\u0107 wszystkim tym, co robi dla spo\u0142eczno\u015bci&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-1024x661.png\" alt=\"\" class=\"wp-image-11139\" width=\"512\" height=\"331\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-1024x661.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-300x194.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-768x496.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-1536x992.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9.png 1960w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption>Czytaj &#8211; rzuca dolarami we wszystkie g\u0142\u00f3wne oko\u0142o-javowe projekty<\/figcaption><\/figure><\/div>\n\n\n<p>&#8230;ale r\u00f3wnie\u017c tym, co z niej bierze. Mamy wi\u0119c okazje dowiedzie\u0107 si\u0119, w kt\u00f3rych projektach Microsoftu realnie u\u017cywana jest Java. Okazuje si\u0119, \u017ce jest ich naprawd\u0119 sporo, aczkolwiek z mojej strony ciekawsze ni\u017c sam fakt u\u017cycia s\u0105 powody, dlaczego w konkretnych projektach pojawia si\u0119 akurat Java.<\/p>\n\n\n\n<p>Mo\u017cna bowiem wyr\u00f3\u017cni\u0107 dwa schematy. Z jednej strony, taki Bing czy Azure wesz\u0142y w Jav\u0119 ze wzgl\u0119du na charakterystyczny workload projekt\u00f3w &#8211; oba z nich opieraj\u0105 si\u0119 na ekosystemach wymagaj\u0105cych w jakim\u015b stopniu JVM lub dobrze si\u0119 z nim integruj\u0105cych &#8211; Kafka, Hadoop, Spark czy Zookeeper to tylko niekt\u00f3re z wymienionych w dokumencie. Z drugiej strony, gro projekt\u00f3w zosta\u0142o niejako zakupione z Jav\u0105 na doczepk\u0119 &#8211; na tej technologii opiera\u0142 si\u0119 LinkedIn, Yammer czy te\u017c Minecraft. Pokazuje to tylko, jak bardzo akwizycja mo\u017ce wp\u0142yn\u0105\u0107 na ewolucj\u0119 stacku technologicznego w firmie, nawet tak du\u017cej jak Microsoft.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"283\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/dfd2f9b86ab0435cb623e94a377268d5_gif.gif\" alt=\"\" class=\"wp-image-11149\"\/><figcaption>Nie bez powodu Paul Bateman z <a href=\"https:\/\/www.imdb.com\/title\/tt0144084\/\">American Psycho<\/a> pracowa\u0142 w firmie zajmuj\u0105cej si\u0119 &#8222;Merge &amp; Acquisition&#8221;<\/figcaption><\/figure><\/div>\n\n\n<p>Og\u00f3lnie polecam rzuci\u0107 okiem, je\u015bli chcecie mie\u0107 dobrze podsumowanym zakres dzia\u0142a\u0144 Microsoftu w ekosystemie Javowym &#8211; jest zaskakuj\u0105co szeroki.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142o<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">How Microsoft applies Java &#8211; THE INSIDE STORY<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj b\u0119dzie du\u017co o Kotlinie, w kontek\u015bcie dw\u00f3ch releas\u00f3w &#8211; Kotlin 1.7.20 oraz&#8230; JDK 19. Do tego pr\u00f3ba odchudzenia Javy od Briana Goetz&#8217;a oraz podsumowanie dzia\u0142a\u0144 Microsoftu w ekosystemie.<\/p>\n","protected":false},"author":10,"featured_media":11143,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-11116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"7","feature_image_blog":{"ID":11141,"id":11141,"title":"ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb","filename":"ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","filesize":1948592,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","link":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/arturskowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb\/","alt":"","author":"10","description":"","caption":"","name":"arturskowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb","status":"inherit","uploaded_to":11116,"date":"2022-10-05 08:57:42","modified":"2022-10-05 08:57:42","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1024,"height":1024,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb-150x150.png","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb-300x300.png","medium-width":300,"medium-height":300,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb-768x768.png","medium_large-width":768,"medium_large-height":768,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb-1024x1024.png","large-width":1024,"large-height":1024,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","1536x1536-width":1024,"1536x1536-height":1024,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","2048x2048-width":1024,"2048x2048-height":1024,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":300,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","gform-image-choice-md-width":400,"gform-image-choice-md-height":400,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/ArturSkowronski_offering_from_prince_to_the_king_in_the_style_o_c82e9211-abd2-49c1-aa34-fc1ef465d2eb.png","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":600}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj b\u0119dzie du\u017co o Kotlinie, w kontek\u015bcie dw\u00f3ch releas\u00f3w - Kotlin 1.7.20 oraz... JDK 19. Do tego pr\u00f3ba odchudzenia Javy od Briana Goetz&#039;a oraz podsumowanie dzia\u0142a\u0144 Microsoftu w ekosystemie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-05T08:58:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-05T10:26:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? &#8211; JVM Weekly 107\",\"datePublished\":\"2022-10-05T08:58:41+00:00\",\"dateModified\":\"2022-10-05T10:26:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\"},\"wordCount\":1387,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\",\"url\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\",\"name\":\"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png\",\"datePublished\":\"2022-10-05T08:58:41+00:00\",\"dateModified\":\"2022-10-05T10:26:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? &#8211; JVM Weekly 107\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/","og_locale":"pl_PL","og_type":"article","og_title":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived","og_description":"Dzisiaj b\u0119dzie du\u017co o Kotlinie, w kontek\u015bcie dw\u00f3ch releas\u00f3w - Kotlin 1.7.20 oraz... JDK 19. Do tego pr\u00f3ba odchudzenia Javy od Briana Goetz'a oraz podsumowanie dzia\u0142a\u0144 Microsoftu w ekosystemie.","og_url":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/","og_site_name":"Vived","article_published_time":"2022-10-05T08:58:41+00:00","article_modified_time":"2022-10-05T10:26:34+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? &#8211; JVM Weekly 107","datePublished":"2022-10-05T08:58:41+00:00","dateModified":"2022-10-05T10:26:34+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/"},"wordCount":1387,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/","url":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/","name":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? - JVM Weekly 107 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","datePublished":"2022-10-05T08:58:41+00:00","dateModified":"2022-10-05T10:26:34+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/JVM-Weekly-1200x628_V2-1.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/czy-kotlin-ma-jeszcze-cos-do-zaoferowania-programistom-java-jvm-weekly-107\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Czy Kotlin dalej ma co\u015b do zaoferowania programistom Javy? &#8211; JVM Weekly 107"}]},{"@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. Kotlin 1.7.20 wydany<\/h2>\n","innerContent":["\n<h2>1. Kotlin 1.7.20 wydany<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Od kiedy pierwszy raz informowali\u015bmy o wersji Beta ko\u0144cem lipca troch\u0119 czasu ju\u017c min\u0119\u0142o, ale w ko\u0144cu <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 trafia w nasze \u0142apy<\/a>. Wersje 1.x.20 zawsze by\u0142y istotnymi, stanowi\u0105c ostatni przystanek prze kolejnym \"du\u017cym\" wydaniem. Czy r\u00f3wnie\u017c 1.7.20 przynosi ze sob\u0105 istotne zmiany?<\/p>\n","innerContent":["\n<p>Od kiedy pierwszy raz informowali\u015bmy o wersji Beta ko\u0144cem lipca troch\u0119 czasu ju\u017c min\u0119\u0142o, ale w ko\u0144cu <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 trafia w nasze \u0142apy<\/a>. Wersje 1.x.20 zawsze by\u0142y istotnymi, stanowi\u0105c ostatni przystanek prze kolejnym \"du\u017cym\" wydaniem. Czy r\u00f3wnie\u017c 1.7.20 przynosi ze sob\u0105 istotne zmiany?<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tym razem mocno jak nigdy...<\/p>\n","innerContent":["\n<p>Tym razem mocno jak nigdy...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11117,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/giphy.gif\" alt=\"\" class=\"wp-image-11117\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/giphy.gif\" alt=\"\" class=\"wp-image-11117\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No bo troch\u0119 ci\u0119\u017cko inaczej m\u00f3wi\u0107 o wydaniu Kot nc lina, kt\u00f3rego g\u0142\u00f3wn\u0105 nowo\u015bci\u0105 jest dodanie do eksperymentalnego kompilatora eksperymentalnych plugin\u00f3w. K2, bo oczywi\u015bcie o niej tutaj mowa, zbli\u017cy\u0142a si\u0119 w ten spos\u00f3b w kierunku wersji produkcyjnej. S\u0142owem klucz jest jednak tutaj \"zbli\u017cy\u0142a\". O ile bardzo czekam na K2 i wierze, \u017ce mo\u017ce by\u0107 dla Kotlina swoistym nowym rozdaniem, o tyle naprawd\u0119 ci\u0119\u017cko by mi by\u0142o komu\u015b rekomendowa\u0107 upgrade wersji wy\u0142\u0105cznie z powodu tej nowo\u015bci. Wsparcie wspomnianych plugin\u00f3w kompilatora, takie jak <code>all-open<\/code>, <code>no-arg<\/code> czy <code>Lombok<\/code> sprawia, \u017ce wiele projekt\u00f3w wreszcie b\u0119dzie mog\u0142o w miar\u0119 bezwysi\u0142kowo zweryfikowa\u0107, na ile K2 rzeczywi\u015bcie sprawdza si\u0119 w ich przypadkach u\u017cycia. Tw\u00f3rcom Kotlina da to z pewno\u015bci\u0105 mas\u0119 warto\u015bciowego feedbacku.<\/p>\n","innerContent":["\n<p>No bo troch\u0119 ci\u0119\u017cko inaczej m\u00f3wi\u0107 o wydaniu Kot nc lina, kt\u00f3rego g\u0142\u00f3wn\u0105 nowo\u015bci\u0105 jest dodanie do eksperymentalnego kompilatora eksperymentalnych plugin\u00f3w. K2, bo oczywi\u015bcie o niej tutaj mowa, zbli\u017cy\u0142a si\u0119 w ten spos\u00f3b w kierunku wersji produkcyjnej. S\u0142owem klucz jest jednak tutaj \"zbli\u017cy\u0142a\". O ile bardzo czekam na K2 i wierze, \u017ce mo\u017ce by\u0107 dla Kotlina swoistym nowym rozdaniem, o tyle naprawd\u0119 ci\u0119\u017cko by mi by\u0142o komu\u015b rekomendowa\u0107 upgrade wersji wy\u0142\u0105cznie z powodu tej nowo\u015bci. Wsparcie wspomnianych plugin\u00f3w kompilatora, takie jak <code>all-open<\/code>, <code>no-arg<\/code> czy <code>Lombok<\/code> sprawia, \u017ce wiele projekt\u00f3w wreszcie b\u0119dzie mog\u0142o w miar\u0119 bezwysi\u0142kowo zweryfikowa\u0107, na ile K2 rzeczywi\u015bcie sprawdza si\u0119 w ich przypadkach u\u017cycia. Tw\u00f3rcom Kotlina da to z pewno\u015bci\u0105 mas\u0119 warto\u015bciowego feedbacku.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11125,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/profit-beczka.gif\" alt=\"\" class=\"wp-image-11125\"\/><figcaption>W sumie... chyba profit.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/profit-beczka.gif\" alt=\"\" class=\"wp-image-11125\"\/><figcaption>W sumie... chyba profit.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, jak to w wypadku K2, na razie wszystkie te nowo\u015bci dotycz\u0105 tylko Kotlina odpalanego na JVM (zreszt\u0105 w\u0142a\u015bnie ta edycja otrzyma\u0142a w 1.7.20 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1720.html#kotlin-jvm\">kilka innych eksperymentalnych nowo\u015bci, g\u0142\u00f3wnie wydajno\u015bciowych<\/a>). Kotlin to jednak dzisiaj znacznie wi\u0119cej ni\u017c JVM. Dlatego te\u017c inn\u0105, r\u00f3wnie hermetyczn\u0105, acz istotn\u0105 zmian\u0105 pod mask\u0105 1.7.20 jest ostateczne \"przyklepni\u0119cie\" nowego managera pami\u0119ci dla Kotlin Native. Ten przewija\u0142 si\u0119 w wersjach testowych ju\u017c od kilku wyda\u0144, ale ostatecznie tw\u00f3rcy uznali, \u017ce jest on gotowy na produkcyjny prime-time. Nowy spos\u00f3b zarz\u0105dzania pami\u0119ci\u0105 ma znacznie usprawni\u0107 prac\u0119 z korutynami, a tak\u017ce dzielenie kodu mi\u0119dzy iOSem, a Androidem. Z tej perspektywy, stanowi wi\u0119c (podobnie jak wcze\u015bniej przywo\u0142ywana K2) kamie\u0144 milowy dla projektu Kotlin Multiplatform.<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, jak to w wypadku K2, na razie wszystkie te nowo\u015bci dotycz\u0105 tylko Kotlina odpalanego na JVM (zreszt\u0105 w\u0142a\u015bnie ta edycja otrzyma\u0142a w 1.7.20 <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1720.html#kotlin-jvm\">kilka innych eksperymentalnych nowo\u015bci, g\u0142\u00f3wnie wydajno\u015bciowych<\/a>). Kotlin to jednak dzisiaj znacznie wi\u0119cej ni\u017c JVM. Dlatego te\u017c inn\u0105, r\u00f3wnie hermetyczn\u0105, acz istotn\u0105 zmian\u0105 pod mask\u0105 1.7.20 jest ostateczne \"przyklepni\u0119cie\" nowego managera pami\u0119ci dla Kotlin Native. Ten przewija\u0142 si\u0119 w wersjach testowych ju\u017c od kilku wyda\u0144, ale ostatecznie tw\u00f3rcy uznali, \u017ce jest on gotowy na produkcyjny prime-time. Nowy spos\u00f3b zarz\u0105dzania pami\u0119ci\u0105 ma znacznie usprawni\u0107 prac\u0119 z korutynami, a tak\u017ce dzielenie kodu mi\u0119dzy iOSem, a Androidem. Z tej perspektywy, stanowi wi\u0119c (podobnie jak wcze\u015bniej przywo\u0142ywana K2) kamie\u0144 milowy dla projektu Kotlin Multiplatform.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No tak, ale co z tego wydania b\u0119dzie mia\u0142 \"zwyk\u0142y\" u\u017cytkownik Kotlina? No c\u00f3\u017c... w sumie nic.<\/p>\n","innerContent":["\n<p>No tak, ale co z tego wydania b\u0119dzie mia\u0142 \"zwyk\u0142y\" u\u017cytkownik Kotlina? No c\u00f3\u017c... w sumie nic.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11119,"width":476,"height":308,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3.png\" alt=\"\" class=\"wp-image-11119\" width=\"476\" height=\"308\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-3.png\" alt=\"\" class=\"wp-image-11119\" width=\"476\" height=\"308\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie, drogi <code>..&lt;<\/code>, nie jeste\u015b. Ale te\u017c ci\u0119\u017cko uzna\u0107 Ci\u0119 za co\u015b, co wywr\u00f3ci \u017cycie programist\u00f3w, zw\u0142aszcza, \u017ce wsparcie syntaktyczne dla niedomkni\u0119tych zakres\u00f3w:<\/p>\n","innerContent":["\n<p>Nie, drogi <code>..&lt;<\/code>, nie jeste\u015b. Ale te\u017c ci\u0119\u017cko uzna\u0107 Ci\u0119 za co\u015b, co wywr\u00f3ci \u017cycie programist\u00f3w, zw\u0142aszcza, \u017ce wsparcie syntaktyczne dla niedomkni\u0119tych zakres\u00f3w:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>when (value) {\n    in 0.0..&lt;0.25 -&gt; \/\/ first quarter\n    in 0.25..&lt;0.5 -&gt; \/\/ second quarter\n    in 0.5..&lt;0.75 -&gt; \/\/ third quarter\n    in 0.75..1.0 -&gt;  \/\/ last quarter  &lt;- note closed range here\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>when (value) {\n    in 0.0..&lt;0.25 -&gt; \/\/ first quarter\n    in 0.25..&lt;0.5 -&gt; \/\/ second quarter\n    in 0.5..&lt;0.75 -&gt; \/\/ third quarter\n    in 0.75..1.0 -&gt;  \/\/ last quarter  &lt;- note closed range here\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>pozostaje eksperymentalnym \"featurem\". Podobnie b\u0119dzie pewnie z <code>data object<\/code>, nowym typem danych, kt\u00f3ry od zwyk\u0142ego <code>object<\/code> r\u00f3\u017cni si\u0119 wy\u0142\u0105cznie lepsz\u0105 reprezentacj\u0105 toString... i r\u00f3wnie\u017c pozostaje eksperymentalne.<\/p>\n","innerContent":["\n<p>pozostaje eksperymentalnym \"featurem\". Podobnie b\u0119dzie pewnie z <code>data object<\/code>, nowym typem danych, kt\u00f3ry od zwyk\u0142ego <code>object<\/code> r\u00f3\u017cni si\u0119 wy\u0142\u0105cznie lepsz\u0105 reprezentacj\u0105 toString... i r\u00f3wnie\u017c pozostaje eksperymentalne.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=OG9npowJgE8","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=OG9npowJgE8\n<\/div><figcaption>Je\u015bli lubicie format video - to jak zwykle <a href=\"https:\/\/twitter.com\/sebi_io\">Sebastian Aigner<\/a> z JetBrains przygotowa\u0142o takie podsumowanie wydania. W\u0142asnego <a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">osobnego wideo<\/a> doczeka\u0142 si\u0119 za\u015b wspomniany <code>..&lt;<\/code><\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=OG9npowJgE8\n<\/div><figcaption>Je\u015bli lubicie format video - to jak zwykle <a href=\"https:\/\/twitter.com\/sebi_io\">Sebastian Aigner<\/a> z JetBrains przygotowa\u0142o takie podsumowanie wydania. W\u0142asnego <a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">osobnego wideo<\/a> doczeka\u0142 si\u0119 za\u015b wspomniany <code>..&lt;<\/code><\/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:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 Released<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=OG9npowJgE8\">The NEW Kotlin 1.7.20: Unboxing and Review<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">NEW OPERATOR in Kotlin (and true open-ended ranges)<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/09\/kotlin-1-7-20-released\/\">Kotlin 1.7.20 Released<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=OG9npowJgE8\">The NEW Kotlin 1.7.20: Unboxing and Review<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=v0AHdAIBnbs\">NEW OPERATOR in Kotlin (and true open-ended ranges)<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Co Kotlin ma jeszcze do zaoferowania programistom Javy?<\/h2>\n","innerContent":["\n<h2>2. Co Kotlin ma jeszcze do zaoferowania programistom Javy?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dla wszystkich tych, kt\u00f3rzy odczytali moje dywagacje na temat nowego wydania Kotlina jako co\u015b mocno negatywnego - \u015bpiesz\u0119 tutaj z wyja\u015bnieniami. Ja Kotlina naprawd\u0119&nbsp;bardzo lubi\u0119 i traktuje go jako realny \"inkrement\" nad Jav\u0105. Problem polega na tym, \u017ce jego tw\u00f3rcy zrobili na tyle dobr\u0105 robot\u0119 w kilku pierwszych edycjach, \u017ce ci\u0119\u017cko wprowadzi\u0107 teraz jak\u0105\u015b znacz\u0105c\u0105 rewolucj\u0119. Z drugiej strony, tw\u00f3rc\u00f3w projektu dopad\u0142 chyba troch\u0119... d\u0142ug techniczny, st\u0105d tak wiele nowych rzeczy dotyka raczej aspekt\u00f3w ma\u0142o widocznych dla przeci\u0119tnego programisty.<\/p>\n","innerContent":["\n<p>Dla wszystkich tych, kt\u00f3rzy odczytali moje dywagacje na temat nowego wydania Kotlina jako co\u015b mocno negatywnego - \u015bpiesz\u0119 tutaj z wyja\u015bnieniami. Ja Kotlina naprawd\u0119&nbsp;bardzo lubi\u0119 i traktuje go jako realny \"inkrement\" nad Jav\u0105. Problem polega na tym, \u017ce jego tw\u00f3rcy zrobili na tyle dobr\u0105 robot\u0119 w kilku pierwszych edycjach, \u017ce ci\u0119\u017cko wprowadzi\u0107 teraz jak\u0105\u015b znacz\u0105c\u0105 rewolucj\u0119. Z drugiej strony, tw\u00f3rc\u00f3w projektu dopad\u0142 chyba troch\u0119... d\u0142ug techniczny, st\u0105d tak wiele nowych rzeczy dotyka raczej aspekt\u00f3w ma\u0142o widocznych dla przeci\u0119tnego programisty.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11130,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-5.png\" alt=\"\" class=\"wp-image-11130\"\/><figcaption>A przynajmniej nie w suchych release notes, bo to w\u0142a\u015bnie pr\u0119dko\u015b\u0107 kompilacji w dalszym ci\u0105gu pozostaje bol\u0105czk\u0105 Kotlina, mimo niesamowitego kroku naprz\u00f3d w stosunku do moich pierwszych eksperyment\u00f3w jeszcze w 2018.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-5.png\" alt=\"\" class=\"wp-image-11130\"\/><figcaption>A przynajmniej nie w suchych release notes, bo to w\u0142a\u015bnie pr\u0119dko\u015b\u0107 kompilacji w dalszym ci\u0105gu pozostaje bol\u0105czk\u0105 Kotlina, mimo niesamowitego kroku naprz\u00f3d w stosunku do moich pierwszych eksperyment\u00f3w jeszcze w 2018.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Sprawia to, \u017ce od dawna nie mieli\u015bmy w Kotlinie czego\u015b, co zrobi\u0142oby jakie\u015b wi\u0119ksze wra\u017cenie i szum, a swoista \"ucieczka\" w Multiplatform te\u017c si\u0119 nieco przeci\u0105ga. Nie by\u0142oby w tym pewnie nic szczeg\u00f3lnie dla j\u0119zyka niepokoj\u0105cego, gdyby nie to jak mocno wp\u0142yn\u0105\u0142 on na konkurencj\u0119, w szczeg\u00f3lno\u015bci t\u0105 najbli\u017csz\u0105 \u2013 chodzi mi oczywi\u015bcie o Java.<\/p>\n","innerContent":["\n<p>Sprawia to, \u017ce od dawna nie mieli\u015bmy w Kotlinie czego\u015b, co zrobi\u0142oby jakie\u015b wi\u0119ksze wra\u017cenie i szum, a swoista \"ucieczka\" w Multiplatform te\u017c si\u0119 nieco przeci\u0105ga. Nie by\u0142oby w tym pewnie nic szczeg\u00f3lnie dla j\u0119zyka niepokoj\u0105cego, gdyby nie to jak mocno wp\u0142yn\u0105\u0142 on na konkurencj\u0119, w szczeg\u00f3lno\u015bci t\u0105 najbli\u017csz\u0105 \u2013 chodzi mi oczywi\u015bcie o Java.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>\u017beby nie by\u0142o, \u017ce to tylko m\u00f3j DoomSaying - pod koniec 2019 roku Jake Wharton \u2013 \u015bwietnie znany w spo\u0142eczno\u015bci Androidowej \u2013 opublikowa\u0142 zbi\u00f3r przewidywa\u0144 na temat tego, jak szybko Java b\u0119dzie w stanie nadgania\u0107 swojego m\u0142odszego kuzyna. W oparciu na dost\u0119pne w owym czasie JEPy zastanawia\u0142 si\u0119, kt\u00f3re z istniej\u0105cych wtedy przewag Kotlina b\u0119d\u0105 ci\u0105gle realnymi przy premierze Javy 19. A \u017ce ta mia\u0142a w\u0142a\u015bnie miejsce, <a href=\"https:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">przyszed\u0142 czas podsumowa\u0144<\/a>. Te s\u0105 za\u015b bardzo... interesuj\u0105ce.<\/p>\n","innerContent":["\n<p>\u017beby nie by\u0142o, \u017ce to tylko m\u00f3j DoomSaying - pod koniec 2019 roku Jake Wharton \u2013 \u015bwietnie znany w spo\u0142eczno\u015bci Androidowej \u2013 opublikowa\u0142 zbi\u00f3r przewidywa\u0144 na temat tego, jak szybko Java b\u0119dzie w stanie nadgania\u0107 swojego m\u0142odszego kuzyna. W oparciu na dost\u0119pne w owym czasie JEPy zastanawia\u0142 si\u0119, kt\u00f3re z istniej\u0105cych wtedy przewag Kotlina b\u0119d\u0105 ci\u0105gle realnymi przy premierze Javy 19. A \u017ce ta mia\u0142a w\u0142a\u015bnie miejsce, <a href=\"https:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">przyszed\u0142 czas podsumowa\u0144<\/a>. Te s\u0105 za\u015b bardzo... interesuj\u0105ce.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Okazuje si\u0119 bowiem, \u017ce ze wszystkich dyskutowanych onegdaj funkcjonalno\u015bci (Bloki Tekstu, Rekordy, Sealed Classy czy wirtualne w\u0105tki), jedyna kt\u00f3ra nie zosta\u0142a \"dowieziona\" to Lokalne Metody - wszystkie inne mo\u017cemy ju\u017c w Javie u\u017cywa\u0107. Tekst Jake ko\u0144czy si\u0119 raczej na pozytywnej nucie (Kotlin w ko\u0144cu od tamtej pory te\u017c wprowadzi\u0142 troch\u0119 nowo\u015bci), ale coraz trudniejszym wydaje si\u0119 by\u0107 przekonanie programist\u00f3w Java do migracji - po prostu z roku na rok, inwestycja w nowy ekosystem daje coraz mniej.<\/p>\n","innerContent":["\n<p>Okazuje si\u0119 bowiem, \u017ce ze wszystkich dyskutowanych onegdaj funkcjonalno\u015bci (Bloki Tekstu, Rekordy, Sealed Classy czy wirtualne w\u0105tki), jedyna kt\u00f3ra nie zosta\u0142a \"dowieziona\" to Lokalne Metody - wszystkie inne mo\u017cemy ju\u017c w Javie u\u017cywa\u0107. Tekst Jake ko\u0144czy si\u0119 raczej na pozytywnej nucie (Kotlin w ko\u0144cu od tamtej pory te\u017c wprowadzi\u0142 troch\u0119 nowo\u015bci), ale coraz trudniejszym wydaje si\u0119 by\u0107 przekonanie programist\u00f3w Java do migracji - po prostu z roku na rok, inwestycja w nowy ekosystem daje coraz mniej.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11127,"width":512,"height":512,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-1024x1024.png\" alt=\"\" class=\"wp-image-11127\" width=\"512\" height=\"512\"\/><figcaption>Aczkolwiek ja w dalszym razie uwielbiam Kotlina za jego podej\u015bcie do nie-nullowalnych typ\u00f3w. I tego Java nam chyba nigdy nie da.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-4-1024x1024.png\" alt=\"\" class=\"wp-image-11127\" width=\"512\" height=\"512\"\/><figcaption>Aczkolwiek ja w dalszym razie uwielbiam Kotlina za jego podej\u015bcie do nie-nullowalnych typ\u00f3w. I tego Java nam chyba nigdy nie da.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A sytuacja nabiera tempa. Ju\u017c po publikacji tekstu Whartona, regularnie pojawiaj\u0105cy si\u0119 w tych przegl\u0105dach Brian Goetz opublikowa\u0142 du\u017cy tekst o znamiennym tytule <a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">\"Brukowanie rampy wej\u015bciowej\" (\"Paving the on-ramp\")<\/a>, wpisuj\u0105cego si\u0119 w Project Amber. W ramach publikacji dokonuje on analizy, co tak naprawd\u0119 musia\u0142oby sta\u0107 si\u0119 z j\u0119zykiem, aby ten sta\u0142 si\u0119 przyjemniejszy dla pocz\u0105tkuj\u0105cych. Kanw\u0105 ca\u0142o\u015bci jest pr\u00f3ba przej\u015bcia z:<\/p>\n","innerContent":["\n<p>A sytuacja nabiera tempa. Ju\u017c po publikacji tekstu Whartona, regularnie pojawiaj\u0105cy si\u0119 w tych przegl\u0105dach Brian Goetz opublikowa\u0142 du\u017cy tekst o znamiennym tytule <a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">\"Brukowanie rampy wej\u015bciowej\" (\"Paving the on-ramp\")<\/a>, wpisuj\u0105cego si\u0119 w Project Amber. W ramach publikacji dokonuje on analizy, co tak naprawd\u0119 musia\u0142oby sta\u0107 si\u0119 z j\u0119zykiem, aby ten sta\u0142 si\u0119 przyjemniejszy dla pocz\u0105tkuj\u0105cych. Kanw\u0105 ca\u0142o\u015bci jest pr\u00f3ba przej\u015bcia z:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>public class HelloWorld { \n    public static void main(String&#91;] args) { \n        System.out.println(\"Hello World\");\n    }\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>public class HelloWorld { \n    public static void main(String&#91;] args) { \n        System.out.println(\"Hello World\");\n    }\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>do<\/p>\n","innerContent":["\n<p>do<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>void main() {\n    println(\"Hello World\");\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>void main() {\n    println(\"Hello World\");\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A wi\u0119c \"prawie\" maksymalnego uproszczenia sk\u0142adni j\u0119zyka. Jak si\u0119 okazuje, nie jest to co\u015b niewykonalnego - Brian w klarowny spos\u00f3b przedstawiam jakie kolejne kroki musia\u0142yby zosta\u0107 wykonane, aby ostatecznie doj\u015b\u0107 do wspomnianego celu. Po drodze musia\u0142oby si\u0119 pojawi\u0107 kilka nowych funkcji j\u0119zyka (jak nienazwane klasy czy te\u017c predefiniowane statyczne importy), a sporym zmianom musia\u0142by ulec tak zwany \"launch protocol\", czyli zbi\u00f3r zasad m\u00f3wi\u0105cych, kt\u00f3re metody mog\u0105 stanowi\u0107 punkt uruchomieniowy dla javowych program\u00f3w.<\/p>\n","innerContent":["\n<p>A wi\u0119c \"prawie\" maksymalnego uproszczenia sk\u0142adni j\u0119zyka. Jak si\u0119 okazuje, nie jest to co\u015b niewykonalnego - Brian w klarowny spos\u00f3b przedstawiam jakie kolejne kroki musia\u0142yby zosta\u0107 wykonane, aby ostatecznie doj\u015b\u0107 do wspomnianego celu. Po drodze musia\u0142oby si\u0119 pojawi\u0107 kilka nowych funkcji j\u0119zyka (jak nienazwane klasy czy te\u017c predefiniowane statyczne importy), a sporym zmianom musia\u0142by ulec tak zwany \"launch protocol\", czyli zbi\u00f3r zasad m\u00f3wi\u0105cych, kt\u00f3re metody mog\u0105 stanowi\u0107 punkt uruchomieniowy dla javowych program\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Polecam lektur\u0119 publikacji, poniewa\u017c jest ona zar\u00f3wno przyst\u0119pna, jak i pe\u0142na interesuj\u0105cych detali dla ka\u017cdego, kto jest ciekawy procesu, w ramach kt\u00f3rego przebiega ewolucja j\u0119zyka takiego jak Java. Dodatkowo, tekst pomaga te\u017c zrozumie\u0107 idee stoj\u0105ce za nieco mniej znanymi funkcjami j\u0119zyka jak np. JShell.<\/p>\n","innerContent":["\n<p>Polecam lektur\u0119 publikacji, poniewa\u017c jest ona zar\u00f3wno przyst\u0119pna, jak i pe\u0142na interesuj\u0105cych detali dla ka\u017cdego, kto jest ciekawy procesu, w ramach kt\u00f3rego przebiega ewolucja j\u0119zyka takiego jak Java. Dodatkowo, tekst pomaga te\u017c zrozumie\u0107 idee stoj\u0105ce za nieco mniej znanymi funkcjami j\u0119zyka jak np. JShell.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11168,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/download-1.png\" alt=\"\" class=\"wp-image-11168\"\/><figcaption>Dla fan\u00f3w Kotlina b\u0119dzie stanowi\u0142 za\u015b po raz kolejny dow\u00f3d, jak bardzo \"inspiruj\u0105cym\" sta\u0142 si\u0119 ich j\u0119zyk dla ca\u0142ej JVMowej spo\u0142eczno\u015bci.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/download-1.png\" alt=\"\" class=\"wp-image-11168\"\/><figcaption>Dla fan\u00f3w Kotlina b\u0119dzie stanowi\u0142 za\u015b po raz kolejny dow\u00f3d, jak bardzo \"inspiruj\u0105cym\" sta\u0142 si\u0119 ich j\u0119zyk dla ca\u0142ej JVMowej spo\u0142eczno\u015bci.<\/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:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">Report card: Java 19 and the end of Kotlin<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">Paving the on-ramp<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/jakewharton.com\/report-card-java-19-and-the-end-of-kotlin\/\">Report card: Java 19 and the end of Kotlin<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/projects\/amber\/design-notes\/on-ramp\">Paving the on-ramp<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Jak wygl\u0105da u\u017cycie Javy w Microsoft<\/h2>\n","innerContent":["\n<h2>3. Jak wygl\u0105da u\u017cycie Javy w Microsoft<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec kr\u00f3tko o <a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">korporacyjnym PDFie od Microsoftu<\/a>. Firma z Redmond zdecydowa\u0142a si\u0119 bowiem pochwali\u0107 wszystkim tym, co robi dla spo\u0142eczno\u015bci...<\/p>\n","innerContent":["\n<p>A na koniec kr\u00f3tko o <a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">korporacyjnym PDFie od Microsoftu<\/a>. Firma z Redmond zdecydowa\u0142a si\u0119 bowiem pochwali\u0107 wszystkim tym, co robi dla spo\u0142eczno\u015bci...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11139,"width":512,"height":331,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-1024x661.png\" alt=\"\" class=\"wp-image-11139\" width=\"512\" height=\"331\"\/><figcaption>Czytaj - rzuca dolarami we wszystkie g\u0142\u00f3wne oko\u0142o-javowe projekty<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/image-9-1024x661.png\" alt=\"\" class=\"wp-image-11139\" width=\"512\" height=\"331\"\/><figcaption>Czytaj - rzuca dolarami we wszystkie g\u0142\u00f3wne oko\u0142o-javowe projekty<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>...ale r\u00f3wnie\u017c tym, co z niej bierze. Mamy wi\u0119c okazje dowiedzie\u0107 si\u0119, w kt\u00f3rych projektach Microsoftu realnie u\u017cywana jest Java. Okazuje si\u0119, \u017ce jest ich naprawd\u0119 sporo, aczkolwiek z mojej strony ciekawsze ni\u017c sam fakt u\u017cycia s\u0105 powody, dlaczego w konkretnych projektach pojawia si\u0119 akurat Java.<\/p>\n","innerContent":["\n<p>...ale r\u00f3wnie\u017c tym, co z niej bierze. Mamy wi\u0119c okazje dowiedzie\u0107 si\u0119, w kt\u00f3rych projektach Microsoftu realnie u\u017cywana jest Java. Okazuje si\u0119, \u017ce jest ich naprawd\u0119 sporo, aczkolwiek z mojej strony ciekawsze ni\u017c sam fakt u\u017cycia s\u0105 powody, dlaczego w konkretnych projektach pojawia si\u0119 akurat Java.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mo\u017cna bowiem wyr\u00f3\u017cni\u0107 dwa schematy. Z jednej strony, taki Bing czy Azure wesz\u0142y w Jav\u0119 ze wzgl\u0119du na charakterystyczny workload projekt\u00f3w - oba z nich opieraj\u0105 si\u0119 na ekosystemach wymagaj\u0105cych w jakim\u015b stopniu JVM lub dobrze si\u0119 z nim integruj\u0105cych - Kafka, Hadoop, Spark czy Zookeeper to tylko niekt\u00f3re z wymienionych w dokumencie. Z drugiej strony, gro projekt\u00f3w zosta\u0142o niejako zakupione z Jav\u0105 na doczepk\u0119 - na tej technologii opiera\u0142 si\u0119 LinkedIn, Yammer czy te\u017c Minecraft. Pokazuje to tylko, jak bardzo akwizycja mo\u017ce wp\u0142yn\u0105\u0107 na ewolucj\u0119 stacku technologicznego w firmie, nawet tak du\u017cej jak Microsoft.<\/p>\n","innerContent":["\n<p>Mo\u017cna bowiem wyr\u00f3\u017cni\u0107 dwa schematy. Z jednej strony, taki Bing czy Azure wesz\u0142y w Jav\u0119 ze wzgl\u0119du na charakterystyczny workload projekt\u00f3w - oba z nich opieraj\u0105 si\u0119 na ekosystemach wymagaj\u0105cych w jakim\u015b stopniu JVM lub dobrze si\u0119 z nim integruj\u0105cych - Kafka, Hadoop, Spark czy Zookeeper to tylko niekt\u00f3re z wymienionych w dokumencie. Z drugiej strony, gro projekt\u00f3w zosta\u0142o niejako zakupione z Jav\u0105 na doczepk\u0119 - na tej technologii opiera\u0142 si\u0119 LinkedIn, Yammer czy te\u017c Minecraft. Pokazuje to tylko, jak bardzo akwizycja mo\u017ce wp\u0142yn\u0105\u0107 na ewolucj\u0119 stacku technologicznego w firmie, nawet tak du\u017cej jak Microsoft.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":11149,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/dfd2f9b86ab0435cb623e94a377268d5_gif.gif\" alt=\"\" class=\"wp-image-11149\"\/><figcaption>Nie bez powodu Paul Bateman z <a href=\"https:\/\/www.imdb.com\/title\/tt0144084\/\">American Psycho<\/a> pracowa\u0142 w firmie zajmuj\u0105cej si\u0119 \"Merge &amp; Acquisition\"<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/10\/dfd2f9b86ab0435cb623e94a377268d5_gif.gif\" alt=\"\" class=\"wp-image-11149\"\/><figcaption>Nie bez powodu Paul Bateman z <a href=\"https:\/\/www.imdb.com\/title\/tt0144084\/\">American Psycho<\/a> pracowa\u0142 w firmie zajmuj\u0105cej si\u0119 \"Merge &amp; Acquisition\"<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Og\u00f3lnie polecam rzuci\u0107 okiem, je\u015bli chcecie mie\u0107 dobrze podsumowanym zakres dzia\u0142a\u0144 Microsoftu w ekosystemie Javowym - jest zaskakuj\u0105co szeroki.<\/p>\n","innerContent":["\n<p>Og\u00f3lnie polecam rzuci\u0107 okiem, je\u015bli chcecie mie\u0107 dobrze podsumowanym zakres dzia\u0142a\u0144 Microsoftu w ekosystemie Javowym - jest zaskakuj\u0105co szeroki.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142o<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142o<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">How Microsoft applies Java - THE INSIDE STORY<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/cdn.graph.office.net\/prod\/media\/java\/how-microsoft-applies-java.pdf\">How Microsoft applies Java - THE INSIDE STORY<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11116","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=11116"}],"version-history":[{"count":15,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11116\/revisions"}],"predecessor-version":[{"id":11170,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/11116\/revisions\/11170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/11143"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=11116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=11116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=11116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}