{"id":10128,"date":"2021-06-08T12:04:41","date_gmt":"2021-06-08T10:04:41","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-41\/"},"modified":"2022-09-19T13:10:52","modified_gmt":"2022-09-19T11:10:52","slug":"jvm-tuesday-vol-41","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/","title":{"rendered":"JVM Tuesday vol. 41"},"content":{"rendered":"<h2 id=\"1-nie-znudzil-sie-wam-jeszcze-jep-411-bo-temat-nie-chce-zdechnac\" data-num=1>1. Nie znudzi\u0142 si\u0119 Wam jeszcze JEP-411? Bo temat nie chce zdechn\u0105\u0107<\/h2>\n<figure class=\"kg-card kg-image-card\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/5_image-1.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png 700w\" alt=\"\" width=\"700\" height=\"524\" \/><\/figure>\n<p>W ostatnich tygodniach \u015bwiat Javy do\u015b\u0107 mocno \u017cy\u0142 JEP 411, kt\u00f3ry to proposal jak ma\u0142o kt\u00f3ry wzbudzi\u0142 emocje w naszej do\u015b\u0107 spokojnej spo\u0142eczno\u015bci (do\u015b\u0107 powiedzie\u0107, \u017ce to jest trzeci raz, kiedy wspominamy o tym JEPie w ramach naszego przegl\u0105du). Wynika to pewnie z tego, \u017ce ca\u0142a afera dotyka mocno filozoficznego aspektu naszej bran\u017cy &#8211; potrzeba bezpiecze\u0144stwa styka si\u0119 tutaj niejako z ekonomi\u0105, je\u015bli tak rozumie\u0107 mo\u017cna ch\u0119\u0107 uzyskania \u0142atwiejszego w rozwoju i utrzymaniu, a wi\u0119c elastyczniejszego i \u201cta\u0144szego\u201d kodu. Sam JEP, mimo kontrowersji, po <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005569.html\">drobnych poprawkach<\/a> <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">zapowiedziany ju\u017c zosta\u0142 jako cz\u0119\u015b\u0107 JDK 17<\/a>, ale ca\u0142a afera ma ciekawy efekt &#8211; ten ma\u0142o kogo interesuj\u0105cy temat przenikn\u0105\u0142 do szerokiej \u015bwiadomo\u015bci, czego efektem s\u0105 publikacje od foojay.io.<\/p>\n<p>W opublikowanych na platformie tekstach mo\u017cemy dowiedzie\u0107 si\u0119 naprawd\u0119 wiele na temat tego, jak tak naprawd\u0119 z\u0142o\u017conym tematem jest bezpiecze\u0144stwo takiej platformy jak JVM. <a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Pierwszy z tekst\u00f3w<\/a>, autorstwa Petera Firmstone\u2019a, porusza temat tak zwanej \u201cZasady najmniejszych przywilej\u00f3w\u201d (The Principle of Least Privilege). Za t\u0105 dono\u015bnie brzmi\u0105c\u0105 nazw\u0105 tak naprawd\u0119 kryje si\u0119 prosta, zdroworozs\u0105dkowa zasada m\u00f3wi\u0105ca, \u017ce u\u017cytkownicy i kod musz\u0105 mie\u0107 dost\u0119p tylko do zasob\u00f3w i informacji wymaganych do wykonywania zamierzonych zada\u0144. Autor t\u0142umaczy w artykule, \u017ce pozbywaj\u0105c si\u0119 SecurityManagera, tw\u00f3rcy JDK niejako zmuszaj\u0105 tw\u00f3rc\u00f3w program\u00f3w do uruchamiania swoich aplikacji z pe\u0142nymi uprawnieniami procesu javowego, co w wielu przypadkach jest dramatycznie wr\u0119cz nadmiarowe.<\/p>\n<p><a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">Drug\u0105, chyba jeszcze ciekawsz\u0105 publikacj\u0105<\/a> jest tekst tego samego tw\u00f3rcy, gdzie ten skupia si\u0119 na pr\u00f3bie wyt\u0142umaczenia zawi\u0142o\u015bci zwi\u0105zanych z r\u00f3\u017cnymi warstwami bezpiecze\u0144stwa, do kt\u00f3rych dost\u0119p maj\u0105 programi\u015bci Java, i czemu SecurityManager stanowi\u0142 tak kluczowy element tej uk\u0142adanki. \u201cPryncypium najmniejszego przywileju\u201d oczywi\u015bcie r\u00f3wnie\u017c si\u0119 przez niego przewija, ale poza nim mamy okazj\u0119 dowiedzie\u0107 si\u0119, jak bardzo zmiany przynoszone przez JEP 411 wp\u0142yn\u0105 na filozofi\u0119 bezpiecze\u0144stwa ca\u0142ej platformy. Interesuj\u0105ca \u201cpasza dla umys\u0142u\u201d.<\/p>\n<p><strong>\u0179r\u00f3d\u0142a:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">JEP proposed to target JDK 17: 411: Deprecate the Security Manager for Removal<\/a><\/li>\n<li><a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Why JEP 411 Will Have a Negative Impact on Java Security<\/a><\/li>\n<li><a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">JEP 411: Java&#8217;s Security Model and the Principle of Least Privilege<\/a><\/li>\n<\/ul>\n<h2 id=\"2-tonight-we-dine-in-valhalla-jak-juz-dzisiaj-przygotowac-swoj-codebase\" data-num=2>2. Tonight, we dine in Valhalla &#8211; jak ju\u017c dzisiaj przygotowa\u0107 sw\u00f3j codebase<\/h2>\n<figure class=\"kg-card kg-image-card\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-2.png\" alt=\"\" width=\"239\" height=\"680\" \/><\/figure>\n<p>Jest co\u015b interesuj\u0105cego w sposobie, w jaki dostarczane s\u0105 kolejne etapy projekt\u00f3w Loom, Amber i Valhalla. Java staje si\u0119 wielkim eksperymentem, je\u015bli chodzi o iteracyjne podej\u015bcie do rozwoju j\u0119zyka. Zamiast latami dopieka\u0107 konkretn\u0105 funkcjonalno\u015b\u0107 za zamkni\u0119tym drzwiami, aby jednym siarczystym wielkim wybuchem dostarczy\u0107 j\u0105 jako ca\u0142o\u015b\u0107, ze wzgl\u0119du na ambitny zakres poszczeg\u00f3lnych projekt\u00f3w, niezb\u0119dne jest stopniowe dopasowywanie platformy do ich wymaga\u0144. Do\u015b\u0107 powiedzie\u0107, \u017ce up\u00f3r, z jakim architekci JDK usuwaj\u0105 SecurityManagera mocno zwi\u0105zany jest z faktem, jak bardzo ci\u0119\u017cko jest pogodzi\u0107 jego istnienie z Projectem Loom, co swego czasu <a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">podkre\u015bla\u0142 Ron Pressler<\/a>.<\/p>\n<p>Podobnie sprawa wygl\u0105da z Valhall\u0105. Wprawdzie do uko\u0144czenia projektu jeszcze troch\u0119, ale ju\u017c dzi\u015b tw\u00f3rcy dostarczaj\u0105 nam narz\u0119dzia, kt\u00f3re pozwoli\u0107 maj\u0105 na jak najmniej gwa\u0142towny szok, kiedy ju\u017c Value Classes ostatecznie trafi\u0105 do naszego CodeBase. Jednym za\u015b z mechanizm\u00f3w, kt\u00f3ry na to pozwala s\u0105 ostrze\u017cenia ze strony kompilatora.<\/p>\n<p>Blog softwaregarden.dev <a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">opublikowa\u0142 tekst<\/a>, w kt\u00f3rym na czynniki pierwsze rozebra\u0142 <a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a>, kt\u00f3ry trafi\u0142 do JDK wraz z Jav\u0105 \u201cszesnastk\u0105\u201d. Przynosi on szereg ostrze\u017ce\u0144, kt\u00f3re pom\u00f3c nam maj\u0105 \u201cwy\u0142uska\u0107\u201d z naszego kodu \u017ar\u00f3d\u0142owego u\u017cycia konstrukcji j\u0119zyka, kt\u00f3re b\u0119d\u0105c w tym momencie zupe\u0142nie legalnymi, po wydaniu Valhalli w orkiestrowy spos\u00f3b wysypi\u0105 nam kompilacje. To, co w tek\u015bcie jest szczeg\u00f3lnie interesuj\u0105ce to fakt, \u017ce ka\u017cdy z problem\u00f3w dostaje do\u015b\u0107 jasne roz\u0142o\u017cenie na czynniki pierwsze z klarownymi propozycjami rozwi\u0105za\u0144. Dzi\u0119ki temu stanowi znacznie lepsz\u0105 pomoc ni\u017c jednak do\u015b\u0107 kryptyczne ostrze\u017cenia dostarczane przez JVM.<\/p>\n<p>A czy TY jeste\u015b gotowy na Valhall\u0119?<\/p>\n<p><strong>\u0179r\u00f3d\u0142a:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">Are you ready for Valhalla? \u2013 SoftwareGarden.dev<\/a><\/li>\n<li><a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a><\/li>\n<li><a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">Security and sandboxing post securitymanager \u2013 Inside.java<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-jetbrains-radzi-sobie-z-tworzeniem-kotlinowego-ide\" data-num=3>3. Jak JetBrains radzi sobie z tworzeniem Kotlinowego IDE?<\/h2>\n<p>A na koniec, Kotlin<\/p>\n<p>Dwa tygodnie temu mieli\u015bmy okazj\u0119 podzieli\u0107 si\u0119 z Wami informacj\u0105 o publikacji nowej edycji kotlinowej roadmapy, gdzie szybko przybli\u017cyli\u015bmy najbardziej interesuj\u0105ce aspekty tego, co in\u017cynierowie i programi\u015bci j\u0119zyka maj\u0105 zamiar dostarczy\u0107 nam w ci\u0105gu nast\u0119pnych dw\u00f3ch miesi\u0119cy. Jednym z aspekt\u00f3w, kt\u00f3ry szczeg\u00f3lnie przyku\u0142 moj\u0105 uwag\u0119 by\u0142 fakt, \u017ce do\u015b\u0107 istotn\u0105 cz\u0119\u015bci\u0105 tych plan\u00f3w stanowi\u0142o ulepszenie wydajno\u015bci samego kotlinowego IDE. Zastanawia\u0142em si\u0119 wtedy jakie\u017c to prace s\u0105 planowane w tym kontek\u015bcie. Jetbrainsi nie pozostawili mnie oczywi\u015bcie d\u0142ugo w niepewno\u015bci i opublikowali <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">naprawd\u0119 szczeg\u00f3\u0142owy artyku\u0142<\/a>, w kt\u00f3rym wgryzaj\u0105 si\u0119 we wszelkie technikalia swoich plan\u00f3w.<\/p>\n<figure class=\"kg-card kg-image-card\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-3.png\" alt=\"\" width=\"453\" height=\"453\" \/><\/figure>\n<p>Musz\u0119 przyzna\u0107, \u017ce cho\u0107 sam nie jestem wielkim pasjonatem usprawnie\u0144 wydajno\u015bciowych devtools\u00f3w, to jednak publikacja Antona Yalysheva robi wra\u017cenie. Porusza on w niej szereg bardzo interesuj\u0105cych aspekt\u00f3w. Jednym z nich s\u0105 sposoby syntetycznego mierzenia wydajno\u015bci operacji wykonywanych w IDE czy te\u017c opisanie zakresu prac, jaki niezb\u0119dny jest aby m\u00f3c sprawi\u0107, \u017ce codzienna praca programist\u00f3w i og\u00f3lny \u201cdeveloper experience\u201d samego IDE poprawi\u0105 si\u0119 na lepsze. Okazuje si\u0119 bowiem np. \u017ce tak<br \/>\nnaprawd\u0119 sprawdzanie sk\u0142adni odbywa si\u0119 nie w wyniku jednego \u201ccheckera\u201d, a dw\u00f3ch &#8211; jednego przeznaczonego dla problem\u00f3w z lintingiem, a drugiego dla potencjalnych b\u0142\u0119d\u00f3w kompilacji &#8211; tak zwanych \u201cb\u0142\u0119d\u00f3w czerwonych\u201d jak okre\u015bla je sam artyku\u0142. Takich interesuj\u0105cych detali jest w tek\u015bcie sporo, a ca\u0142o\u015b\u0107 ko\u0144czy si\u0119 dodatkow\u0105 sekcj\u0105, gdzie Anton dzieli si\u0119 z nami dalszymi potencjalnymi planami. Tak wi\u0119c, o ile jest to pewnie tekst w swojej naturze przeznaczony do do\u015b\u0107 niszowej grupy, to jednak polecamy jego lektur\u0119 w zasadzie ka\u017cdemu pasjonatowi Kotlina.<\/p>\n<p>PS: Swoje w\u0142asne Highlighty w kontek\u015bcie roadmapy ich j\u0119zyka dostarczy\u0142o te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\/\">Jetbrains<\/a>.<\/p>\n<p>PS2: W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">kolejny, czwarty kamie\u0144 milowy Jetpack Compose for Desktop<\/a> &#8211; raczej nudny. Najciekawszymi jego aspektami jest chyba wsparcie dla applowskiego M1 oraz fakt, \u017ce sam <a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Compose dosta\u0142 wsparcie dla kompilacji do formatu Kotlin\/Native<\/a> &#8211; sprawia to, \u017ce sam projekt jest teraz w pe\u0142ni multiplatformowy.<\/p>\n<p><strong>\u0179r\u00f3d\u0142a<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\">Nine Highlights from the Kotlin Roadmap | The Kotlin Blog<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">Kotlin IDE Performance | The Kotlin Blog<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">Compose for Desktop: Milestone 4 Released | The Kotlin Blog<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Andrei Shikov on Twitter: Compose compiler now has support for Kotlin\/Native&#8230; : Kotlin<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>W tym tygodniu brakuje news\u00f3w, ale to bardzo dobrze &#8211; dzi\u0119ki temu mo\u017cemy po\u015bwi\u0119ci\u0107 troche czasu d\u0142u\u017cszym &#8222;evergreenom&#8221;\ud83c\udf40, kt\u00f3re te\u017c zas\u0142uguj\u0105 na Wasz\u0105 uwag\u0119. Zapraszam do lektury!<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10128","post","type-post","status-publish","format-standard","hentry","category-jvm-pl"],"acf":{"weekly_summary":true,"estimated_reading_time":"5"},"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. 41 - 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-41\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 41 - Vived\" \/>\n<meta property=\"og:description\" content=\"W tym tygodniu brakuje news\u00f3w, ale to bardzo dobrze - dzi\u0119ki temu mo\u017cemy po\u015bwi\u0119ci\u0107 troche czasu d\u0142u\u017cszym &quot;evergreenom&quot;\ud83c\udf40, kt\u00f3re te\u017c zas\u0142uguj\u0105 na Wasz\u0105 uwag\u0119. Zapraszam do lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-08T10:04:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 41\",\"datePublished\":\"2021-06-08T10:04:41+00:00\",\"dateModified\":\"2022-09-19T11:10:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\"},\"wordCount\":1135,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\",\"name\":\"JVM Tuesday vol. 41 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\",\"datePublished\":\"2021-06-08T10:04:41+00:00\",\"dateModified\":\"2022-09-19T11:10:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 41\"}]},{\"@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. 41 - 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-41\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 41 - Vived","og_description":"W tym tygodniu brakuje news\u00f3w, ale to bardzo dobrze - dzi\u0119ki temu mo\u017cemy po\u015bwi\u0119ci\u0107 troche czasu d\u0142u\u017cszym \"evergreenom\"\ud83c\udf40, kt\u00f3re te\u017c zas\u0142uguj\u0105 na Wasz\u0105 uwag\u0119. Zapraszam do lektury!","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/","og_site_name":"Vived","article_published_time":"2021-06-08T10:04:41+00:00","article_modified_time":"2022-09-19T11:10:52+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png","type":"","width":"","height":""}],"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-41\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 41","datePublished":"2021-06-08T10:04:41+00:00","dateModified":"2022-09-19T11:10:52+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/"},"wordCount":1135,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png","articleSection":["JVM"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/","name":"JVM Tuesday vol. 41 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png","datePublished":"2021-06-08T10:04:41+00:00","dateModified":"2022-09-19T11:10:52+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-41\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 41"}]},{"@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":null,"attrs":[],"innerBlocks":[],"innerHTML":"<h2 id=\"1-nie-znudzi%C5%82-si%C4%99-wam-jeszcze-jep-411-bo-temat-nie-chce-zdechn%C4%85%C4%87-%F0%9F%98%B5\">1. Nie znudzi\u0142 si\u0119 Wam jeszcze JEP-411? Bo temat nie chce zdechn\u0105\u0107<\/h2>\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/5_image-1.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png 700w\" alt=\"\" width=\"700\" height=\"524\" \/><\/figure>\nW ostatnich tygodniach \u015bwiat Javy do\u015b\u0107 mocno \u017cy\u0142 JEP 411, kt\u00f3ry to proposal jak ma\u0142o kt\u00f3ry wzbudzi\u0142 emocje w naszej do\u015b\u0107 spokojnej spo\u0142eczno\u015bci (do\u015b\u0107 powiedzie\u0107, \u017ce to jest trzeci raz, kiedy wspominamy o tym JEPie w ramach naszego przegl\u0105du). Wynika to pewnie z tego, \u017ce ca\u0142a afera dotyka mocno filozoficznego aspektu naszej bran\u017cy - potrzeba bezpiecze\u0144stwa styka si\u0119 tutaj niejako z ekonomi\u0105, je\u015bli tak rozumie\u0107 mo\u017cna ch\u0119\u0107 uzyskania \u0142atwiejszego w rozwoju i utrzymaniu, a wi\u0119c elastyczniejszego i \u201cta\u0144szego\u201d kodu. Sam JEP, mimo kontrowersji, po <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005569.html\">drobnych poprawkach<\/a> <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">zapowiedziany ju\u017c zosta\u0142 jako cz\u0119\u015b\u0107 JDK 17<\/a>, ale ca\u0142a afera ma ciekawy efekt - ten ma\u0142o kogo interesuj\u0105cy temat przenikn\u0105\u0142 do szerokiej \u015bwiadomo\u015bci, czego efektem s\u0105 publikacje od foojay.io.\n\nW opublikowanych na platformie tekstach mo\u017cemy dowiedzie\u0107 si\u0119 naprawd\u0119 wiele na temat tego, jak tak naprawd\u0119 z\u0142o\u017conym tematem jest bezpiecze\u0144stwo takiej platformy jak JVM. <a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Pierwszy z tekst\u00f3w<\/a>, autorstwa Petera Firmstone\u2019a, porusza temat tak zwanej \u201cZasady najmniejszych przywilej\u00f3w\u201d (The Principle of Least Privilege). Za t\u0105 dono\u015bnie brzmi\u0105c\u0105 nazw\u0105 tak naprawd\u0119 kryje si\u0119 prosta, zdroworozs\u0105dkowa zasada m\u00f3wi\u0105ca, \u017ce u\u017cytkownicy i kod musz\u0105 mie\u0107 dost\u0119p tylko do zasob\u00f3w i informacji wymaganych do wykonywania zamierzonych zada\u0144. Autor t\u0142umaczy w artykule, \u017ce pozbywaj\u0105c si\u0119 SecurityManagera, tw\u00f3rcy JDK niejako zmuszaj\u0105 tw\u00f3rc\u00f3w program\u00f3w do uruchamiania swoich aplikacji z pe\u0142nymi uprawnieniami procesu javowego, co w wielu przypadkach jest dramatycznie wr\u0119cz nadmiarowe.\n\n<a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">Drug\u0105, chyba jeszcze ciekawsz\u0105 publikacj\u0105<\/a> jest tekst tego samego tw\u00f3rcy, gdzie ten skupia si\u0119 na pr\u00f3bie wyt\u0142umaczenia zawi\u0142o\u015bci zwi\u0105zanych z r\u00f3\u017cnymi warstwami bezpiecze\u0144stwa, do kt\u00f3rych dost\u0119p maj\u0105 programi\u015bci Java, i czemu SecurityManager stanowi\u0142 tak kluczowy element tej uk\u0142adanki. \u201cPryncypium najmniejszego przywileju\u201d oczywi\u015bcie r\u00f3wnie\u017c si\u0119 przez niego przewija, ale poza nim mamy okazj\u0119 dowiedzie\u0107 si\u0119, jak bardzo zmiany przynoszone przez JEP 411 wp\u0142yn\u0105 na filozofi\u0119 bezpiecze\u0144stwa ca\u0142ej platformy. Interesuj\u0105ca \u201cpasza dla umys\u0142u\u201d.\n\n<strong>\u0179r\u00f3d\u0142a:<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">JEP proposed to target JDK 17: 411: Deprecate the Security Manager for Removal<\/a><\/li>\n \t<li><a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Why JEP 411 Will Have a Negative Impact on Java Security<\/a><\/li>\n \t<li><a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">JEP 411: Java's Security Model and the Principle of Least Privilege<\/a><\/li>\n<\/ul>\n<h2 id=\"2-tonight-we-dine-in-valhallajak-ju%C5%BC-dzisiaj-przygotowa%C4%87-sw%C3%B3j-codebase-%F0%9F%90%97\">2. Tonight, we dine in Valhalla - jak ju\u017c dzisiaj przygotowa\u0107 sw\u00f3j codebase<\/h2>\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-2.png\" alt=\"\" width=\"239\" height=\"680\" \/><\/figure>\nJest co\u015b interesuj\u0105cego w sposobie, w jaki dostarczane s\u0105 kolejne etapy projekt\u00f3w Loom, Amber i Valhalla. Java staje si\u0119 wielkim eksperymentem, je\u015bli chodzi o iteracyjne podej\u015bcie do rozwoju j\u0119zyka. Zamiast latami dopieka\u0107 konkretn\u0105 funkcjonalno\u015b\u0107 za zamkni\u0119tym drzwiami, aby jednym siarczystym wielkim wybuchem dostarczy\u0107 j\u0105 jako ca\u0142o\u015b\u0107, ze wzgl\u0119du na ambitny zakres poszczeg\u00f3lnych projekt\u00f3w, niezb\u0119dne jest stopniowe dopasowywanie platformy do ich wymaga\u0144. Do\u015b\u0107 powiedzie\u0107, \u017ce up\u00f3r, z jakim architekci JDK usuwaj\u0105 SecurityManagera mocno zwi\u0105zany jest z faktem, jak bardzo ci\u0119\u017cko jest pogodzi\u0107 jego istnienie z Projectem Loom, co swego czasu <a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">podkre\u015bla\u0142 Ron Pressler<\/a>.\n\nPodobnie sprawa wygl\u0105da z Valhall\u0105. Wprawdzie do uko\u0144czenia projektu jeszcze troch\u0119, ale ju\u017c dzi\u015b tw\u00f3rcy dostarczaj\u0105 nam narz\u0119dzia, kt\u00f3re pozwoli\u0107 maj\u0105 na jak najmniej gwa\u0142towny szok, kiedy ju\u017c Value Classes ostatecznie trafi\u0105 do naszego CodeBase. Jednym za\u015b z mechanizm\u00f3w, kt\u00f3ry na to pozwala s\u0105 ostrze\u017cenia ze strony kompilatora.\n\nBlog softwaregarden.dev <a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">opublikowa\u0142 tekst<\/a>, w kt\u00f3rym na czynniki pierwsze rozebra\u0142 <a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a>, kt\u00f3ry trafi\u0142 do JDK wraz z Jav\u0105 \u201cszesnastk\u0105\u201d. Przynosi on szereg ostrze\u017ce\u0144, kt\u00f3re pom\u00f3c nam maj\u0105 \u201cwy\u0142uska\u0107\u201d z naszego kodu \u017ar\u00f3d\u0142owego u\u017cycia konstrukcji j\u0119zyka, kt\u00f3re b\u0119d\u0105c w tym momencie zupe\u0142nie legalnymi, po wydaniu Valhalli w orkiestrowy spos\u00f3b wysypi\u0105 nam kompilacje. To, co w tek\u015bcie jest szczeg\u00f3lnie interesuj\u0105ce to fakt, \u017ce ka\u017cdy z problem\u00f3w dostaje do\u015b\u0107 jasne roz\u0142o\u017cenie na czynniki pierwsze z klarownymi propozycjami rozwi\u0105za\u0144. Dzi\u0119ki temu stanowi znacznie lepsz\u0105 pomoc ni\u017c jednak do\u015b\u0107 kryptyczne ostrze\u017cenia dostarczane przez JVM.\n\nA czy TY jeste\u015b gotowy na Valhall\u0119?\n\n<strong>\u0179r\u00f3d\u0142a:<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">Are you ready for Valhalla? \u2013 SoftwareGarden.dev<\/a><\/li>\n \t<li><a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a><\/li>\n \t<li><a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">Security and sandboxing post securitymanager \u2013 Inside.java<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-jetbrains-radzi-sobie-z-tworzeniem-kotlinowego-ide-%F0%9F%A5%AB\">3. Jak JetBrains radzi sobie z tworzeniem Kotlinowego IDE?<\/h2>\nA na koniec, Kotlin\n\nDwa tygodnie temu mieli\u015bmy okazj\u0119 podzieli\u0107 si\u0119 z Wami informacj\u0105 o publikacji nowej edycji kotlinowej roadmapy, gdzie szybko przybli\u017cyli\u015bmy najbardziej interesuj\u0105ce aspekty tego, co in\u017cynierowie i programi\u015bci j\u0119zyka maj\u0105 zamiar dostarczy\u0107 nam w ci\u0105gu nast\u0119pnych dw\u00f3ch miesi\u0119cy. Jednym z aspekt\u00f3w, kt\u00f3ry szczeg\u00f3lnie przyku\u0142 moj\u0105 uwag\u0119 by\u0142 fakt, \u017ce do\u015b\u0107 istotn\u0105 cz\u0119\u015bci\u0105 tych plan\u00f3w stanowi\u0142o ulepszenie wydajno\u015bci samego kotlinowego IDE. Zastanawia\u0142em si\u0119 wtedy jakie\u017c to prace s\u0105 planowane w tym kontek\u015bcie. Jetbrainsi nie pozostawili mnie oczywi\u015bcie d\u0142ugo w niepewno\u015bci i opublikowali <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">naprawd\u0119 szczeg\u00f3\u0142owy artyku\u0142<\/a>, w kt\u00f3rym wgryzaj\u0105 si\u0119 we wszelkie technikalia swoich plan\u00f3w.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-3.png\" alt=\"\" width=\"453\" height=\"453\" \/><\/figure>\nMusz\u0119 przyzna\u0107, \u017ce cho\u0107 sam nie jestem wielkim pasjonatem usprawnie\u0144 wydajno\u015bciowych devtools\u00f3w, to jednak publikacja Antona Yalysheva robi wra\u017cenie. Porusza on w niej szereg bardzo interesuj\u0105cych aspekt\u00f3w. Jednym z nich s\u0105 sposoby syntetycznego mierzenia wydajno\u015bci operacji wykonywanych w IDE czy te\u017c opisanie zakresu prac, jaki niezb\u0119dny jest aby m\u00f3c sprawi\u0107, \u017ce codzienna praca programist\u00f3w i og\u00f3lny \u201cdeveloper experience\u201d samego IDE poprawi\u0105 si\u0119 na lepsze. Okazuje si\u0119 bowiem np. \u017ce tak\nnaprawd\u0119 sprawdzanie sk\u0142adni odbywa si\u0119 nie w wyniku jednego \u201ccheckera\u201d, a dw\u00f3ch - jednego przeznaczonego dla problem\u00f3w z lintingiem, a drugiego dla potencjalnych b\u0142\u0119d\u00f3w kompilacji - tak zwanych \u201cb\u0142\u0119d\u00f3w czerwonych\u201d jak okre\u015bla je sam artyku\u0142. Takich interesuj\u0105cych detali jest w tek\u015bcie sporo, a ca\u0142o\u015b\u0107 ko\u0144czy si\u0119 dodatkow\u0105 sekcj\u0105, gdzie Anton dzieli si\u0119 z nami dalszymi potencjalnymi planami. Tak wi\u0119c, o ile jest to pewnie tekst w swojej naturze przeznaczony do do\u015b\u0107 niszowej grupy, to jednak polecamy jego lektur\u0119 w zasadzie ka\u017cdemu pasjonatowi Kotlina.\n\nPS: Swoje w\u0142asne Highlighty w kontek\u015bcie roadmapy ich j\u0119zyka dostarczy\u0142o te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\/\">Jetbrains<\/a>.\n\nPS2: W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">kolejny, czwarty kamie\u0144 milowy Jetpack Compose for Desktop<\/a> - raczej nudny. Najciekawszymi jego aspektami jest chyba wsparcie dla applowskiego M1 oraz fakt, \u017ce sam <a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Compose dosta\u0142 wsparcie dla kompilacji do formatu Kotlin\/Native<\/a> - sprawia to, \u017ce sam projekt jest teraz w pe\u0142ni multiplatformowy.\n\n<strong>\u0179r\u00f3d\u0142a<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\">Nine Highlights from the Kotlin Roadmap | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">Kotlin IDE Performance | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">Compose for Desktop: Milestone 4 Released | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Andrei Shikov on Twitter: Compose compiler now has support for Kotlin\/Native... : Kotlin<\/a><\/li>\n<\/ul>","innerContent":["<h2 id=\"1-nie-znudzi%C5%82-si%C4%99-wam-jeszcze-jep-411-bo-temat-nie-chce-zdechn%C4%85%C4%87-%F0%9F%98%B5\">1. Nie znudzi\u0142 si\u0119 Wam jeszcze JEP-411? Bo temat nie chce zdechn\u0105\u0107<\/h2>\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/5_image-1.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/4_image-1.png 700w\" alt=\"\" width=\"700\" height=\"524\" \/><\/figure>\nW ostatnich tygodniach \u015bwiat Javy do\u015b\u0107 mocno \u017cy\u0142 JEP 411, kt\u00f3ry to proposal jak ma\u0142o kt\u00f3ry wzbudzi\u0142 emocje w naszej do\u015b\u0107 spokojnej spo\u0142eczno\u015bci (do\u015b\u0107 powiedzie\u0107, \u017ce to jest trzeci raz, kiedy wspominamy o tym JEPie w ramach naszego przegl\u0105du). Wynika to pewnie z tego, \u017ce ca\u0142a afera dotyka mocno filozoficznego aspektu naszej bran\u017cy - potrzeba bezpiecze\u0144stwa styka si\u0119 tutaj niejako z ekonomi\u0105, je\u015bli tak rozumie\u0107 mo\u017cna ch\u0119\u0107 uzyskania \u0142atwiejszego w rozwoju i utrzymaniu, a wi\u0119c elastyczniejszego i \u201cta\u0144szego\u201d kodu. Sam JEP, mimo kontrowersji, po <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005569.html\">drobnych poprawkach<\/a> <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">zapowiedziany ju\u017c zosta\u0142 jako cz\u0119\u015b\u0107 JDK 17<\/a>, ale ca\u0142a afera ma ciekawy efekt - ten ma\u0142o kogo interesuj\u0105cy temat przenikn\u0105\u0142 do szerokiej \u015bwiadomo\u015bci, czego efektem s\u0105 publikacje od foojay.io.\n\nW opublikowanych na platformie tekstach mo\u017cemy dowiedzie\u0107 si\u0119 naprawd\u0119 wiele na temat tego, jak tak naprawd\u0119 z\u0142o\u017conym tematem jest bezpiecze\u0144stwo takiej platformy jak JVM. <a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Pierwszy z tekst\u00f3w<\/a>, autorstwa Petera Firmstone\u2019a, porusza temat tak zwanej \u201cZasady najmniejszych przywilej\u00f3w\u201d (The Principle of Least Privilege). Za t\u0105 dono\u015bnie brzmi\u0105c\u0105 nazw\u0105 tak naprawd\u0119 kryje si\u0119 prosta, zdroworozs\u0105dkowa zasada m\u00f3wi\u0105ca, \u017ce u\u017cytkownicy i kod musz\u0105 mie\u0107 dost\u0119p tylko do zasob\u00f3w i informacji wymaganych do wykonywania zamierzonych zada\u0144. Autor t\u0142umaczy w artykule, \u017ce pozbywaj\u0105c si\u0119 SecurityManagera, tw\u00f3rcy JDK niejako zmuszaj\u0105 tw\u00f3rc\u00f3w program\u00f3w do uruchamiania swoich aplikacji z pe\u0142nymi uprawnieniami procesu javowego, co w wielu przypadkach jest dramatycznie wr\u0119cz nadmiarowe.\n\n<a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">Drug\u0105, chyba jeszcze ciekawsz\u0105 publikacj\u0105<\/a> jest tekst tego samego tw\u00f3rcy, gdzie ten skupia si\u0119 na pr\u00f3bie wyt\u0142umaczenia zawi\u0142o\u015bci zwi\u0105zanych z r\u00f3\u017cnymi warstwami bezpiecze\u0144stwa, do kt\u00f3rych dost\u0119p maj\u0105 programi\u015bci Java, i czemu SecurityManager stanowi\u0142 tak kluczowy element tej uk\u0142adanki. \u201cPryncypium najmniejszego przywileju\u201d oczywi\u015bcie r\u00f3wnie\u017c si\u0119 przez niego przewija, ale poza nim mamy okazj\u0119 dowiedzie\u0107 si\u0119, jak bardzo zmiany przynoszone przez JEP 411 wp\u0142yn\u0105 na filozofi\u0119 bezpiecze\u0144stwa ca\u0142ej platformy. Interesuj\u0105ca \u201cpasza dla umys\u0142u\u201d.\n\n<strong>\u0179r\u00f3d\u0142a:<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-May\/005616.html\">JEP proposed to target JDK 17: 411: Deprecate the Security Manager for Removal<\/a><\/li>\n \t<li><a href=\"https:\/\/foojay.io\/today\/why-jep-411-will-have-a-negative-impact-on-java-security\/\">Why JEP 411 Will Have a Negative Impact on Java Security<\/a><\/li>\n \t<li><a href=\"https:\/\/foojay.io\/today\/jep-411-what-it-means-for-javas-security-model\/\">JEP 411: Java's Security Model and the Principle of Least Privilege<\/a><\/li>\n<\/ul>\n<h2 id=\"2-tonight-we-dine-in-valhallajak-ju%C5%BC-dzisiaj-przygotowa%C4%87-sw%C3%B3j-codebase-%F0%9F%90%97\">2. Tonight, we dine in Valhalla - jak ju\u017c dzisiaj przygotowa\u0107 sw\u00f3j codebase<\/h2>\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-2.png\" alt=\"\" width=\"239\" height=\"680\" \/><\/figure>\nJest co\u015b interesuj\u0105cego w sposobie, w jaki dostarczane s\u0105 kolejne etapy projekt\u00f3w Loom, Amber i Valhalla. Java staje si\u0119 wielkim eksperymentem, je\u015bli chodzi o iteracyjne podej\u015bcie do rozwoju j\u0119zyka. Zamiast latami dopieka\u0107 konkretn\u0105 funkcjonalno\u015b\u0107 za zamkni\u0119tym drzwiami, aby jednym siarczystym wielkim wybuchem dostarczy\u0107 j\u0105 jako ca\u0142o\u015b\u0107, ze wzgl\u0119du na ambitny zakres poszczeg\u00f3lnych projekt\u00f3w, niezb\u0119dne jest stopniowe dopasowywanie platformy do ich wymaga\u0144. Do\u015b\u0107 powiedzie\u0107, \u017ce up\u00f3r, z jakim architekci JDK usuwaj\u0105 SecurityManagera mocno zwi\u0105zany jest z faktem, jak bardzo ci\u0119\u017cko jest pogodzi\u0107 jego istnienie z Projectem Loom, co swego czasu <a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">podkre\u015bla\u0142 Ron Pressler<\/a>.\n\nPodobnie sprawa wygl\u0105da z Valhall\u0105. Wprawdzie do uko\u0144czenia projektu jeszcze troch\u0119, ale ju\u017c dzi\u015b tw\u00f3rcy dostarczaj\u0105 nam narz\u0119dzia, kt\u00f3re pozwoli\u0107 maj\u0105 na jak najmniej gwa\u0142towny szok, kiedy ju\u017c Value Classes ostatecznie trafi\u0105 do naszego CodeBase. Jednym za\u015b z mechanizm\u00f3w, kt\u00f3ry na to pozwala s\u0105 ostrze\u017cenia ze strony kompilatora.\n\nBlog softwaregarden.dev <a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">opublikowa\u0142 tekst<\/a>, w kt\u00f3rym na czynniki pierwsze rozebra\u0142 <a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a>, kt\u00f3ry trafi\u0142 do JDK wraz z Jav\u0105 \u201cszesnastk\u0105\u201d. Przynosi on szereg ostrze\u017ce\u0144, kt\u00f3re pom\u00f3c nam maj\u0105 \u201cwy\u0142uska\u0107\u201d z naszego kodu \u017ar\u00f3d\u0142owego u\u017cycia konstrukcji j\u0119zyka, kt\u00f3re b\u0119d\u0105c w tym momencie zupe\u0142nie legalnymi, po wydaniu Valhalli w orkiestrowy spos\u00f3b wysypi\u0105 nam kompilacje. To, co w tek\u015bcie jest szczeg\u00f3lnie interesuj\u0105ce to fakt, \u017ce ka\u017cdy z problem\u00f3w dostaje do\u015b\u0107 jasne roz\u0142o\u017cenie na czynniki pierwsze z klarownymi propozycjami rozwi\u0105za\u0144. Dzi\u0119ki temu stanowi znacznie lepsz\u0105 pomoc ni\u017c jednak do\u015b\u0107 kryptyczne ostrze\u017cenia dostarczane przez JVM.\n\nA czy TY jeste\u015b gotowy na Valhall\u0119?\n\n<strong>\u0179r\u00f3d\u0142a:<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/softwaregarden.dev\/en\/posts\/new-java\/ready-for-valhalla\/\">Are you ready for Valhalla? \u2013 SoftwareGarden.dev<\/a><\/li>\n \t<li><a href=\"https:\/\/openjdk.java.net\/jeps\/390\">JEP 390: Warnings for Value-Based Classes<\/a><\/li>\n \t<li><a href=\"https:\/\/inside.java\/2021\/04\/23\/security-and-sandboxing-post-securitymanager\/\">Security and sandboxing post securitymanager \u2013 Inside.java<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-jetbrains-radzi-sobie-z-tworzeniem-kotlinowego-ide-%F0%9F%A5%AB\">3. Jak JetBrains radzi sobie z tworzeniem Kotlinowego IDE?<\/h2>\nA na koniec, Kotlin\n\nDwa tygodnie temu mieli\u015bmy okazj\u0119 podzieli\u0107 si\u0119 z Wami informacj\u0105 o publikacji nowej edycji kotlinowej roadmapy, gdzie szybko przybli\u017cyli\u015bmy najbardziej interesuj\u0105ce aspekty tego, co in\u017cynierowie i programi\u015bci j\u0119zyka maj\u0105 zamiar dostarczy\u0107 nam w ci\u0105gu nast\u0119pnych dw\u00f3ch miesi\u0119cy. Jednym z aspekt\u00f3w, kt\u00f3ry szczeg\u00f3lnie przyku\u0142 moj\u0105 uwag\u0119 by\u0142 fakt, \u017ce do\u015b\u0107 istotn\u0105 cz\u0119\u015bci\u0105 tych plan\u00f3w stanowi\u0142o ulepszenie wydajno\u015bci samego kotlinowego IDE. Zastanawia\u0142em si\u0119 wtedy jakie\u017c to prace s\u0105 planowane w tym kontek\u015bcie. Jetbrainsi nie pozostawili mnie oczywi\u015bcie d\u0142ugo w niepewno\u015bci i opublikowali <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">naprawd\u0119 szczeg\u00f3\u0142owy artyku\u0142<\/a>, w kt\u00f3rym wgryzaj\u0105 si\u0119 we wszelkie technikalia swoich plan\u00f3w.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-3.png\" alt=\"\" width=\"453\" height=\"453\" \/><\/figure>\nMusz\u0119 przyzna\u0107, \u017ce cho\u0107 sam nie jestem wielkim pasjonatem usprawnie\u0144 wydajno\u015bciowych devtools\u00f3w, to jednak publikacja Antona Yalysheva robi wra\u017cenie. Porusza on w niej szereg bardzo interesuj\u0105cych aspekt\u00f3w. Jednym z nich s\u0105 sposoby syntetycznego mierzenia wydajno\u015bci operacji wykonywanych w IDE czy te\u017c opisanie zakresu prac, jaki niezb\u0119dny jest aby m\u00f3c sprawi\u0107, \u017ce codzienna praca programist\u00f3w i og\u00f3lny \u201cdeveloper experience\u201d samego IDE poprawi\u0105 si\u0119 na lepsze. Okazuje si\u0119 bowiem np. \u017ce tak\nnaprawd\u0119 sprawdzanie sk\u0142adni odbywa si\u0119 nie w wyniku jednego \u201ccheckera\u201d, a dw\u00f3ch - jednego przeznaczonego dla problem\u00f3w z lintingiem, a drugiego dla potencjalnych b\u0142\u0119d\u00f3w kompilacji - tak zwanych \u201cb\u0142\u0119d\u00f3w czerwonych\u201d jak okre\u015bla je sam artyku\u0142. Takich interesuj\u0105cych detali jest w tek\u015bcie sporo, a ca\u0142o\u015b\u0107 ko\u0144czy si\u0119 dodatkow\u0105 sekcj\u0105, gdzie Anton dzieli si\u0119 z nami dalszymi potencjalnymi planami. Tak wi\u0119c, o ile jest to pewnie tekst w swojej naturze przeznaczony do do\u015b\u0107 niszowej grupy, to jednak polecamy jego lektur\u0119 w zasadzie ka\u017cdemu pasjonatowi Kotlina.\n\nPS: Swoje w\u0142asne Highlighty w kontek\u015bcie roadmapy ich j\u0119zyka dostarczy\u0142o te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\/\">Jetbrains<\/a>.\n\nPS2: W zesz\u0142ym tygodniu ukaza\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">kolejny, czwarty kamie\u0144 milowy Jetpack Compose for Desktop<\/a> - raczej nudny. Najciekawszymi jego aspektami jest chyba wsparcie dla applowskiego M1 oraz fakt, \u017ce sam <a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Compose dosta\u0142 wsparcie dla kompilacji do formatu Kotlin\/Native<\/a> - sprawia to, \u017ce sam projekt jest teraz w pe\u0142ni multiplatformowy.\n\n<strong>\u0179r\u00f3d\u0142a<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/nine-highlights-from-the-kotlin-roadmap\">Nine Highlights from the Kotlin Roadmap | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-ide-performance\/\">Kotlin IDE Performance | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/compose-for-desktop-milestone-4-released\/\">Compose for Desktop: Milestone 4 Released | The Kotlin Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/comments\/nnmu8d\/andrei_shikov_on_twitter_compose_compiler_now_has\/\">Andrei Shikov on Twitter: Compose compiler now has support for Kotlin\/Native... : Kotlin<\/a><\/li>\n<\/ul>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10128","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=10128"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10128\/revisions"}],"predecessor-version":[{"id":10570,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10128\/revisions\/10570"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}