{"id":10160,"date":"2021-03-30T09:05:31","date_gmt":"2021-03-30T07:05:31","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-31\/"},"modified":"2022-09-19T13:10:55","modified_gmt":"2022-09-19T11:10:55","slug":"jvm-tuesday-vol-31","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/","title":{"rendered":"JVM Tuesday vol. 31"},"content":{"rendered":"<h2 id=\"1-co-nowego-przyniesie-jakarta-ee-10\" data-num=1><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">1. Co nowego przyniesie Jakarta EE 10<\/a><\/h2>\n<p>Zacznijmy od radosnej nowiny! Niekochane dziecko zyska\u0142o atencje i uwag\u0119 rodzica!<\/p>\n<p>Nie wiem, jak inaczej mo\u017cna okre\u015bli\u0107 bowiem fakt, \u017ce Oracle na oficjalnym blogu Java Magazine opublikowa\u0142 zapowied\u017a Jakarty EE w wersji 10. Wprawdzie tagline artyku\u0142u: \u201cThe release is only a year away. Here\u2019s what to expect.\u201d przenosi nas w nieco inny czas, gdy wszystko dzia\u0142o si\u0119\u2026 wolniej, ale w dalszym ci\u0105gu ju\u017c dzi\u015b warto przygl\u0105dn\u0105\u0107 si\u0119, co te\u017c nowego ujawni nowa edycja standardu.<\/p>\n<p>Motywem przewodnim ca\u0142ego wydania jest posprz\u0105tanie ba\u0142aganu (\u017ceby nie u\u017cy\u0107 mocniejszego wyra\u017cenia), kt\u00f3rym jest wstrzykiwanie zale\u017cno\u015bci w wersji EE. Przez lata \u017cyli\u015bmy z niejako \u201clegacy\u201d Enterprise Java Beans, kt\u00f3ra ewoluuj\u0105c wraz z ca\u0142\u0105 platform\u0105, nie chc\u0105c \u0142ama\u0107 wstecznej kompatybilno\u015bci, obrasta\u0142y nowymi mo\u017cliwo\u015bciami do poziomu, gdy sta\u0142y si\u0119 wr\u0119cz nieu\u017cywalne.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\" alt=\"\" \/><figcaption>Je\u017celi o Twoim Dependency Injection mo\u017cna napisa\u0107 ksi\u0105\u017ck\u0119 ~750 stron, co\u015b posz\u0142o nie tak<\/figcaption><\/figure>\n<p>W grudniu 2009 na rynek trafi\u0142a Java EE 6, kt\u00f3ra wprowadzi\u0142a nowo\u015b\u0107 &#8211; CDI API (Contexts and Dependency Injection), b\u0119d\u0105ce lekk\u0105 alternatyw\u0105 do EJB. Standard ten okaza\u0142 si\u0119 by\u0107 na tyle udany, \u017ce przez kr\u00f3tki czas (zanim pojawi\u0142 si\u0119 Spring Boot i pozamiata\u0142) wiele os\u00f3b wr\u00f3\u017cy\u0142o Javie EE zwyci\u0119stwo nad Springiem. Niestety, dziedzictwo nie da\u0142o o sobie zapomnie\u0107. CDI nie by\u0142y kompatybilne z wieloma standardami Javy EE, w tym jednym z najwa\u017cniejszych takich jak np. @Asynchronous. Dopiero teraz, wraz z Jakart\u0105 EE 10, sytuacja ulec ma zmianie.<\/p>\n<p>CDI ma by\u0107 wspierany przez wszystkie najwa\u017cniejsze API, w tym Concurrency (w kt\u00f3rego sk\u0142ad wchodzi w\u0142a\u015bnie @Asynchronous), Jakarta Server Faces czy te\u017c Servlet API. Je\u017celi interesuj\u0105 Was szczeg\u00f3\u0142y techniczne, \u00a0artyku\u0142 od Oracle jest bardzo interesuj\u0105cy. Opisuje on bowiem problemy, jakie stoj\u0105 na drodze modernizacji wspomnianych API, zar\u00f3wno po stronie projektant\u00f3w teraz, jak i vendor\u00f3w w przysz\u0142o\u015bci &#8211; co jest r\u00f3wnie istotne, bior\u0105c pod uwag\u0119 <a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">jak powoli trwaj\u0105 prace nad implementacj\u0105 Jakarty EE 9 w popularnych serwerach aplikacyjnych<\/a>.<\/p>\n<p>A tymczasem, fani \u201cedycji dla przedsi\u0119biorstw\u201d powinni oczekiwa\u0107 Jakarty EE 9.1, kt\u00f3ra tu\u017c tu\u017c (wed\u0142ug tabelki &#8211; \u00a0Q2 2021). Przyniesie ona d\u0142ugo wyczekiwane wsparcie dla JDK 11.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b782d255.gif\" alt=\"\" \/><figcaption>Gdyby Jave EE na rekrutacji zapytali jakim zwierz\u0119ciem chce zosta\u0107&#8230;<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">Jakarta EE Compatible Chart<\/a><\/li>\n<li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">Java for the enterprise: What to expect in Jakarta EE 10<\/a><\/li>\n<\/ul>\n<h2 id=\"2-adoptopenjdk-zmienia-sie-w-adoptium-i-trafia-pod-skrzydla-eclipse\" data-num=2><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\">2. AdoptOpenJDK zmienia si\u0119 w Adoptium i trafia pod skrzyd\u0142a Eclipse<\/a><\/h2>\n<p>Ci\u0105gn\u0105c w\u0105tek projekt\u00f3w oddanych przez Oracle spo\u0142eczno\u015bci warto wspolnie\u0107 oAdoptOpenJDK, projekcie, kt\u00f3ry powsta\u0142 jako efekt wysi\u0142k\u00f3w spo\u0142eczno\u015bci walcz\u0105cej o \u201cwoln\u0105\u201d implementacje JDK, ostatecznie trafia on pod skrzyd\u0142a Eclipse Foundation. Efekt ponad rocznych stara\u0144 kwituje przechrzczenie projektu na Eclipse Adoptium (JDK jest znakiem towarowym nale\u017c\u0105cym do Oracle) oraz powstanie Adoptium Working Group.<\/p>\n<p>Bior\u0105c pod uwag\u0119 fakt, \u017ce Oracle obecnie udziela wy\u0142\u0105cznie sze\u015bciu miesi\u0119cy wsparcia, dla ka\u017cdego nowego wydania, Adoptium jest krytycznym projektem dla ca\u0142ej spo\u0142eczno\u015bci, nie tylko Javy, ale r\u00f3wnie\u017c innych JVMowych j\u0119zyk\u00f3w. Ca\u0142y projekt fundowany jest przez mnogo\u015b\u0107 partner\u00f3w &#8211; Alibaba Cloud, Huawei, IBM, iJUG (stowarzyszenie niemieckich JUG\u00f3w), Karakun AG, Microsoft, New Relic oraz Red Hat b\u0119d\u0105 bra\u0107 udzia\u0142 w rozwoju otwartej wersji Javy. W ramach negocjacji uda\u0142o si\u0119 te\u017c otrzyma\u0107 dost\u0119p do Javowego Technology Compatibility Kit, \u201cwywalczonego\u201d od Oracle.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7888455.png\" alt=\"\" \/><figcaption>Trivia: Projekt dosta\u0142 te\u017c nowe logo<\/figcaption><\/figure>\n<p>Je\u017celi chcecie \u015bledzi\u0107 rozw\u00f3j Adoptium, oryginalny link zawiera zbi\u00f3r stron, kont spo\u0142eczno\u015bciowych i repozytori\u00f3w, kt\u00f3re r\u00f3wnie\u017c przesz\u0142y rebranding. My na pewno nie pozwolimy przegapi\u0107 Wam wszelkich wa\u017cnych og\u0142osze\u0144.<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\/\">Eclipse Adoptium Welcomes You<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-trudne-jest-utrzymanie-projektu-w-scali-spolecznosc-dyskutuje\" data-num=3><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">3. Jak trudne jest \u201cutrzymanie\u201d projektu w Scali? Spo\u0142eczno\u015b\u0107 dyskutuje<\/a><\/h2>\n<p>A na koniec &#8211; Scala, kt\u00f3rej <a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Release Party wersji 3.0 ju\u017c 23 kwietnia<\/a>.<\/p>\n<p>W przededniu tego bardzo znacz\u0105cego dla spo\u0142eczno\u015bci wydarzenia, w sieci do\u015b\u0107 mocnym echem odbi\u0142 si\u0119 artyku\u0142 krytykuj\u0105cy to, jak nieprzyjazna dla programist\u00f3w jest druga edycja tego j\u0119zyka. Dla tych, kt\u00f3rzy nigdy nie mieli styczno\u015bci z tym j\u0119zykiem &#8211; ka\u017cde \u201cminorowe\u201d wydanie Scali nie jest tak naprawd\u0119 \u201cminorowe\u201d. Scala u\u017cywa numeracji epoch.major.minor, co oznacza \u017ce zmiana z 2.12 na 2.13 \u0142amie kompatybilno\u015b\u0107 \u00a0(poszczeg\u00f3lne wydania nie s\u0105 wstecznie kompatybilne). Autor oryginalnego tekstu wskazuje, \u017ce je\u015bli dodamy do tego tempo wypuszczania nowych edycji (mniej wi\u0119cej jedna do roku), ca\u0142o\u015b\u0107 staje si\u0119 naprawd\u0119 nieprzyjemna w utrzymywaniu.<\/p>\n<p>Fakt, \u017ce ka\u017cdorazowo trzeba przepisa\u0107 (a przynajmniej zrekompilowa\u0107) ca\u0142y ekosystemem bibliotek, wiele z libek nigdy nie uzyskuje wsparcia dla nowych wersji. Prowadzi do smutnej sytuacji, gdy projekty musz\u0105 tkwi\u0107 w archaicznej wersji Scali, ze wzgl\u0119du na brak wsparcia kt\u00f3rej\u015b z wa\u017cnych zale\u017cno\u015bci. Co ciekawe, problem wyst\u0119puje te\u017c od drugiej strony. \u00a0Czasem to stare projekty, nie mog\u0105ce si\u0119 zaktualizowa\u0107, maj\u0105 pod g\u00f3rk\u0119 &#8211; bardzo szybko trac\u0105 wsparcie np. \u0142atek bezpiecze\u0144stwa, poniewa\u017c autorzy bibliotek zbyt szybko przerzucaj\u0105 si\u0119 na now\u0105 wersj\u0119 j\u0119zyka, nie patrz\u0105c wstecz. Autor postu wskazuje te\u017c na problemy zwi\u0105zane z dynamicznym rozwojem SBT.<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7a1a9d6.gif\" alt=\"\" \/><\/figure>\n<p>W komentarzach i w popularnych agregatorach nie brakuje jednak ludzi, kt\u00f3rzy uwa\u017caj\u0105 argumenty autora za mocno rozdmuchane. Nie brakuje jednak os\u00f3b, kt\u00f3re popieraj\u0105 zawarte w po\u015bcie twierdzenia, dyskusja jest wi\u0119c do\u015b\u0107 za\u017carta, <a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">cho\u0107by na redditcie<!--\na-->.<\/a><\/p>\n<p><a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">Nied\u0142ugo przekonamy si\u0119, jak spo\u0142eczno\u015b\u0107 przyjmie przej\u015bcie ze Scali 2.13 na Scal\u0119 3. Wed\u0142ug Scala Center, <\/a><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 ma by\u0107 w du\u017cym stopniu kompatybilna z ostatnim wydaniem wersji 2<\/a>. Pozosta\u0142e niekompatybilno\u015bci rozwi\u0105za\u0107 ma za\u015b <a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\/2\">narz\u0119dzie migracyjne<\/a>, kt\u00f3re zosta\u0142o wydane w zesz\u0142ym tygodniu. Na pewno obserwowa\u0107 b\u0119dziemy, jak spo\u0142eczno\u015b\u0107 przyjmie d\u0142ugo oczekiwanego \u201cDotty\u2019ego\u201d<\/p>\n<p>PS: Je\u017celi macie problem, o kt\u00f3rym wspomina autor posta, <a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a> obiecuje rozwi\u0105zywa\u0107 wi\u0119kszo\u015b\u0107 z nich. John Pretty, autor biblioteki, w bardzo interesuj\u0105cy spos\u00f3b opowiada o powodach jej powstania <a href=\"https:\/\/www.youtube.com\/watch?v=PHjAKgdUMWI\">na r\u00f3\u017cnych meetupach<\/a>, opisuj\u0105c jak zamierza poradzi\u0107 sobie z problemami, o kt\u00f3rych by\u0142a mowa..<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Join the Scala 3 Release Party by sphere.it<\/a><\/li>\n<li><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">Scala is a Maintenance Nightmare<\/a><\/li>\n<li><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 &#8211; Compatibility Reference<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a><\/li>\n<li><a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\">Scala3-migrate: a tool making it easier to migrate to Scala 3<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj dosy\u0107 r\u00f3\u017cnorodnie. Oracle zacz\u0119\u0142o przyznawa\u0107 si\u0119 do Jakarty EE 10, a Eclipse przyjmuje AdoptOpenJDK pod swoje skrzyd\u0142a. Opr\u00f3cz tego mamy dla Was te\u017c ma\u0142\u0105 dram\u0119 ze \u015brodowiska Scalowego. Zapraszamy 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-10160","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. 31 - 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-31\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 31 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj dosy\u0107 r\u00f3\u017cnorodnie. Oracle zacz\u0119\u0142o przyznawa\u0107 si\u0119 do Jakarty EE 10, a Eclipse przyjmuje AdoptOpenJDK pod swoje skrzyd\u0142a. Opr\u00f3cz tego mamy dla Was te\u017c ma\u0142\u0105 dram\u0119 ze \u015brodowiska Scalowego. Zapraszamy do lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-30T07:05:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.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-31\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 31\",\"datePublished\":\"2021-03-30T07:05:31+00:00\",\"dateModified\":\"2022-09-19T11:10:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\"},\"wordCount\":1070,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\",\"name\":\"JVM Tuesday vol. 31 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\",\"datePublished\":\"2021-03-30T07:05:31+00:00\",\"dateModified\":\"2022-09-19T11:10:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 31\"}]},{\"@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. 31 - 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-31\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 31 - Vived","og_description":"Dzisiaj dosy\u0107 r\u00f3\u017cnorodnie. Oracle zacz\u0119\u0142o przyznawa\u0107 si\u0119 do Jakarty EE 10, a Eclipse przyjmuje AdoptOpenJDK pod swoje skrzyd\u0142a. Opr\u00f3cz tego mamy dla Was te\u017c ma\u0142\u0105 dram\u0119 ze \u015brodowiska Scalowego. Zapraszamy do lektury!","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/","og_site_name":"Vived","article_published_time":"2021-03-30T07:05:31+00:00","article_modified_time":"2022-09-19T11:10:55+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.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-31\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 31","datePublished":"2021-03-30T07:05:31+00:00","dateModified":"2022-09-19T11:10:55+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/"},"wordCount":1070,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png","articleSection":["JVM"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/","name":"JVM Tuesday vol. 31 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png","datePublished":"2021-03-30T07:05:31+00:00","dateModified":"2022-09-19T11:10:55+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-31\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 31"}]},{"@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-co-nowego-przyniesie-jakarta-ee-10-%F0%9F%8E%89\"><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">1. Co nowego przyniesie Jakarta EE 10<\/a><\/h2>\nZacznijmy od radosnej nowiny! Niekochane dziecko zyska\u0142o atencje i uwag\u0119 rodzica!\n\nNie wiem, jak inaczej mo\u017cna okre\u015bli\u0107 bowiem fakt, \u017ce Oracle na oficjalnym blogu Java Magazine opublikowa\u0142 zapowied\u017a Jakarty EE w wersji 10. Wprawdzie tagline artyku\u0142u: \u201cThe release is only a year away. Here\u2019s what to expect.\u201d przenosi nas w nieco inny czas, gdy wszystko dzia\u0142o si\u0119\u2026 wolniej, ale w dalszym ci\u0105gu ju\u017c dzi\u015b warto przygl\u0105dn\u0105\u0107 si\u0119, co te\u017c nowego ujawni nowa edycja standardu.\n\nMotywem przewodnim ca\u0142ego wydania jest posprz\u0105tanie ba\u0142aganu (\u017ceby nie u\u017cy\u0107 mocniejszego wyra\u017cenia), kt\u00f3rym jest wstrzykiwanie zale\u017cno\u015bci w wersji EE. Przez lata \u017cyli\u015bmy z niejako \u201clegacy\u201d Enterprise Java Beans, kt\u00f3ra ewoluuj\u0105c wraz z ca\u0142\u0105 platform\u0105, nie chc\u0105c \u0142ama\u0107 wstecznej kompatybilno\u015bci, obrasta\u0142y nowymi mo\u017cliwo\u015bciami do poziomu, gdy sta\u0142y si\u0119 wr\u0119cz nieu\u017cywalne.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\" alt=\"\" \/>\n<figcaption>Je\u017celi o Twoim Dependency Injection mo\u017cna napisa\u0107 ksi\u0105\u017ck\u0119 ~750 stron, co\u015b posz\u0142o nie tak<\/figcaption><\/figure>\nW grudniu 2009 na rynek trafi\u0142a Java EE 6, kt\u00f3ra wprowadzi\u0142a nowo\u015b\u0107 - CDI API (Contexts and Dependency Injection), b\u0119d\u0105ce lekk\u0105 alternatyw\u0105 do EJB. Standard ten okaza\u0142 si\u0119 by\u0107 na tyle udany, \u017ce przez kr\u00f3tki czas (zanim pojawi\u0142 si\u0119 Spring Boot i pozamiata\u0142) wiele os\u00f3b wr\u00f3\u017cy\u0142o Javie EE zwyci\u0119stwo nad Springiem. Niestety, dziedzictwo nie da\u0142o o sobie zapomnie\u0107. CDI nie by\u0142y kompatybilne z wieloma standardami Javy EE, w tym jednym z najwa\u017cniejszych takich jak np. @Asynchronous. Dopiero teraz, wraz z Jakart\u0105 EE 10, sytuacja ulec ma zmianie.\n\nCDI ma by\u0107 wspierany przez wszystkie najwa\u017cniejsze API, w tym Concurrency (w kt\u00f3rego sk\u0142ad wchodzi w\u0142a\u015bnie @Asynchronous), Jakarta Server Faces czy te\u017c Servlet API. Je\u017celi interesuj\u0105 Was szczeg\u00f3\u0142y techniczne, \u00a0artyku\u0142 od Oracle jest bardzo interesuj\u0105cy. Opisuje on bowiem problemy, jakie stoj\u0105 na drodze modernizacji wspomnianych API, zar\u00f3wno po stronie projektant\u00f3w teraz, jak i vendor\u00f3w w przysz\u0142o\u015bci - co jest r\u00f3wnie istotne, bior\u0105c pod uwag\u0119 <a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">jak powoli trwaj\u0105 prace nad implementacj\u0105 Jakarty EE 9 w popularnych serwerach aplikacyjnych<\/a>.\n\nA tymczasem, fani \u201cedycji dla przedsi\u0119biorstw\u201d powinni oczekiwa\u0107 Jakarty EE 9.1, kt\u00f3ra tu\u017c tu\u017c (wed\u0142ug tabelki - \u00a0Q2 2021). Przyniesie ona d\u0142ugo wyczekiwane wsparcie dla JDK 11.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b782d255.gif\" alt=\"\" \/>\n\n<figcaption>Gdyby Jave EE na rekrutacji zapytali jakim zwierz\u0119ciem chce zosta\u0107...<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">Jakarta EE Compatible Chart<\/a><\/li>\n \t<li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">Java for the enterprise: What to expect in Jakarta EE 10<\/a><\/li>\n<\/ul>\n<h2 id=\"2-adoptopenjdk-zmienia-si%C4%99-w-adoptium-i-trafia-pod-skrzyd%C5%82a-eclipse-%F0%9F%A5%B3\"><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\">2. AdoptOpenJDK zmienia si\u0119 w Adoptium i trafia pod skrzyd\u0142a Eclipse<\/a><\/h2>\nCi\u0105gn\u0105c w\u0105tek projekt\u00f3w oddanych przez Oracle spo\u0142eczno\u015bci warto wspolnie\u0107 oAdoptOpenJDK, projekcie, kt\u00f3ry powsta\u0142 jako efekt wysi\u0142k\u00f3w spo\u0142eczno\u015bci walcz\u0105cej o \u201cwoln\u0105\u201d implementacje JDK, ostatecznie trafia on pod skrzyd\u0142a Eclipse Foundation. Efekt ponad rocznych stara\u0144 kwituje przechrzczenie projektu na Eclipse Adoptium (JDK jest znakiem towarowym nale\u017c\u0105cym do Oracle) oraz powstanie Adoptium Working Group.\n\nBior\u0105c pod uwag\u0119 fakt, \u017ce Oracle obecnie udziela wy\u0142\u0105cznie sze\u015bciu miesi\u0119cy wsparcia, dla ka\u017cdego nowego wydania, Adoptium jest krytycznym projektem dla ca\u0142ej spo\u0142eczno\u015bci, nie tylko Javy, ale r\u00f3wnie\u017c innych JVMowych j\u0119zyk\u00f3w. Ca\u0142y projekt fundowany jest przez mnogo\u015b\u0107 partner\u00f3w - Alibaba Cloud, Huawei, IBM, iJUG (stowarzyszenie niemieckich JUG\u00f3w), Karakun AG, Microsoft, New Relic oraz Red Hat b\u0119d\u0105 bra\u0107 udzia\u0142 w rozwoju otwartej wersji Javy. W ramach negocjacji uda\u0142o si\u0119 te\u017c otrzyma\u0107 dost\u0119p do Javowego Technology Compatibility Kit, \u201cwywalczonego\u201d od Oracle.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7888455.png\" alt=\"\" \/>\n\n<figcaption>Trivia: Projekt dosta\u0142 te\u017c nowe logo<\/figcaption><\/figure>\nJe\u017celi chcecie \u015bledzi\u0107 rozw\u00f3j Adoptium, oryginalny link zawiera zbi\u00f3r stron, kont spo\u0142eczno\u015bciowych i repozytori\u00f3w, kt\u00f3re r\u00f3wnie\u017c przesz\u0142y rebranding. My na pewno nie pozwolimy przegapi\u0107 Wam wszelkich wa\u017cnych og\u0142osze\u0144.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\/\">Eclipse Adoptium Welcomes You<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-trudne-jest-%E2%80%9Cutrzymanie%E2%80%9D-projektu-w-scali-spo%C5%82eczno%C5%9B%C4%87-dyskutuje-%F0%9F%98%88\"><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">3. Jak trudne jest \u201cutrzymanie\u201d projektu w Scali? Spo\u0142eczno\u015b\u0107 dyskutuje<\/a><\/h2>\nA na koniec - Scala, kt\u00f3rej <a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Release Party wersji 3.0 ju\u017c 23 kwietnia<\/a>.\n\nW przededniu tego bardzo znacz\u0105cego dla spo\u0142eczno\u015bci wydarzenia, w sieci do\u015b\u0107 mocnym echem odbi\u0142 si\u0119 artyku\u0142 krytykuj\u0105cy to, jak nieprzyjazna dla programist\u00f3w jest druga edycja tego j\u0119zyka. Dla tych, kt\u00f3rzy nigdy nie mieli styczno\u015bci z tym j\u0119zykiem - ka\u017cde \u201cminorowe\u201d wydanie Scali nie jest tak naprawd\u0119 \u201cminorowe\u201d. Scala u\u017cywa numeracji epoch.major.minor, co oznacza \u017ce zmiana z 2.12 na 2.13 \u0142amie kompatybilno\u015b\u0107 \u00a0(poszczeg\u00f3lne wydania nie s\u0105 wstecznie kompatybilne). Autor oryginalnego tekstu wskazuje, \u017ce je\u015bli dodamy do tego tempo wypuszczania nowych edycji (mniej wi\u0119cej jedna do roku), ca\u0142o\u015b\u0107 staje si\u0119 naprawd\u0119 nieprzyjemna w utrzymywaniu.\n\nFakt, \u017ce ka\u017cdorazowo trzeba przepisa\u0107 (a przynajmniej zrekompilowa\u0107) ca\u0142y ekosystemem bibliotek, wiele z libek nigdy nie uzyskuje wsparcia dla nowych wersji. Prowadzi do smutnej sytuacji, gdy projekty musz\u0105 tkwi\u0107 w archaicznej wersji Scali, ze wzgl\u0119du na brak wsparcia kt\u00f3rej\u015b z wa\u017cnych zale\u017cno\u015bci. Co ciekawe, problem wyst\u0119puje te\u017c od drugiej strony. \u00a0Czasem to stare projekty, nie mog\u0105ce si\u0119 zaktualizowa\u0107, maj\u0105 pod g\u00f3rk\u0119 - bardzo szybko trac\u0105 wsparcie np. \u0142atek bezpiecze\u0144stwa, poniewa\u017c autorzy bibliotek zbyt szybko przerzucaj\u0105 si\u0119 na now\u0105 wersj\u0119 j\u0119zyka, nie patrz\u0105c wstecz. Autor postu wskazuje te\u017c na problemy zwi\u0105zane z dynamicznym rozwojem SBT.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7a1a9d6.gif\" alt=\"\" \/><\/figure>\nW komentarzach i w popularnych agregatorach nie brakuje jednak ludzi, kt\u00f3rzy uwa\u017caj\u0105 argumenty autora za mocno rozdmuchane. Nie brakuje jednak os\u00f3b, kt\u00f3re popieraj\u0105 zawarte w po\u015bcie twierdzenia, dyskusja jest wi\u0119c do\u015b\u0107 za\u017carta, <a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">cho\u0107by na redditcie<!--\na-->.<\/a>\n\n<a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">Nied\u0142ugo przekonamy si\u0119, jak spo\u0142eczno\u015b\u0107 przyjmie przej\u015bcie ze Scali 2.13 na Scal\u0119 3. Wed\u0142ug Scala Center, <\/a><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 ma by\u0107 w du\u017cym stopniu kompatybilna z ostatnim wydaniem wersji 2<\/a>. Pozosta\u0142e niekompatybilno\u015bci rozwi\u0105za\u0107 ma za\u015b <a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\/2\">narz\u0119dzie migracyjne<\/a>, kt\u00f3re zosta\u0142o wydane w zesz\u0142ym tygodniu. Na pewno obserwowa\u0107 b\u0119dziemy, jak spo\u0142eczno\u015b\u0107 przyjmie d\u0142ugo oczekiwanego \u201cDotty\u2019ego\u201d\n\nPS: Je\u017celi macie problem, o kt\u00f3rym wspomina autor posta, <a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a> obiecuje rozwi\u0105zywa\u0107 wi\u0119kszo\u015b\u0107 z nich. John Pretty, autor biblioteki, w bardzo interesuj\u0105cy spos\u00f3b opowiada o powodach jej powstania <a href=\"https:\/\/www.youtube.com\/watch?v=PHjAKgdUMWI\">na r\u00f3\u017cnych meetupach<\/a>, opisuj\u0105c jak zamierza poradzi\u0107 sobie z problemami, o kt\u00f3rych by\u0142a mowa..\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Join the Scala 3 Release Party by sphere.it<\/a><\/li>\n \t<li><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">Scala is a Maintenance Nightmare<\/a><\/li>\n \t<li><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 - Compatibility Reference<\/a><\/li>\n \t<li><a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a><\/li>\n \t<li><a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\">Scala3-migrate: a tool making it easier to migrate to Scala 3<\/a><\/li>\n<\/ul>","innerContent":["<h2 id=\"1-co-nowego-przyniesie-jakarta-ee-10-%F0%9F%8E%89\"><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">1. Co nowego przyniesie Jakarta EE 10<\/a><\/h2>\nZacznijmy od radosnej nowiny! Niekochane dziecko zyska\u0142o atencje i uwag\u0119 rodzica!\n\nNie wiem, jak inaczej mo\u017cna okre\u015bli\u0107 bowiem fakt, \u017ce Oracle na oficjalnym blogu Java Magazine opublikowa\u0142 zapowied\u017a Jakarty EE w wersji 10. Wprawdzie tagline artyku\u0142u: \u201cThe release is only a year away. Here\u2019s what to expect.\u201d przenosi nas w nieco inny czas, gdy wszystko dzia\u0142o si\u0119\u2026 wolniej, ale w dalszym ci\u0105gu ju\u017c dzi\u015b warto przygl\u0105dn\u0105\u0107 si\u0119, co te\u017c nowego ujawni nowa edycja standardu.\n\nMotywem przewodnim ca\u0142ego wydania jest posprz\u0105tanie ba\u0142aganu (\u017ceby nie u\u017cy\u0107 mocniejszego wyra\u017cenia), kt\u00f3rym jest wstrzykiwanie zale\u017cno\u015bci w wersji EE. Przez lata \u017cyli\u015bmy z niejako \u201clegacy\u201d Enterprise Java Beans, kt\u00f3ra ewoluuj\u0105c wraz z ca\u0142\u0105 platform\u0105, nie chc\u0105c \u0142ama\u0107 wstecznej kompatybilno\u015bci, obrasta\u0142y nowymi mo\u017cliwo\u015bciami do poziomu, gdy sta\u0142y si\u0119 wr\u0119cz nieu\u017cywalne.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b76a6e77.png\" alt=\"\" \/>\n<figcaption>Je\u017celi o Twoim Dependency Injection mo\u017cna napisa\u0107 ksi\u0105\u017ck\u0119 ~750 stron, co\u015b posz\u0142o nie tak<\/figcaption><\/figure>\nW grudniu 2009 na rynek trafi\u0142a Java EE 6, kt\u00f3ra wprowadzi\u0142a nowo\u015b\u0107 - CDI API (Contexts and Dependency Injection), b\u0119d\u0105ce lekk\u0105 alternatyw\u0105 do EJB. Standard ten okaza\u0142 si\u0119 by\u0107 na tyle udany, \u017ce przez kr\u00f3tki czas (zanim pojawi\u0142 si\u0119 Spring Boot i pozamiata\u0142) wiele os\u00f3b wr\u00f3\u017cy\u0142o Javie EE zwyci\u0119stwo nad Springiem. Niestety, dziedzictwo nie da\u0142o o sobie zapomnie\u0107. CDI nie by\u0142y kompatybilne z wieloma standardami Javy EE, w tym jednym z najwa\u017cniejszych takich jak np. @Asynchronous. Dopiero teraz, wraz z Jakart\u0105 EE 10, sytuacja ulec ma zmianie.\n\nCDI ma by\u0107 wspierany przez wszystkie najwa\u017cniejsze API, w tym Concurrency (w kt\u00f3rego sk\u0142ad wchodzi w\u0142a\u015bnie @Asynchronous), Jakarta Server Faces czy te\u017c Servlet API. Je\u017celi interesuj\u0105 Was szczeg\u00f3\u0142y techniczne, \u00a0artyku\u0142 od Oracle jest bardzo interesuj\u0105cy. Opisuje on bowiem problemy, jakie stoj\u0105 na drodze modernizacji wspomnianych API, zar\u00f3wno po stronie projektant\u00f3w teraz, jak i vendor\u00f3w w przysz\u0142o\u015bci - co jest r\u00f3wnie istotne, bior\u0105c pod uwag\u0119 <a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">jak powoli trwaj\u0105 prace nad implementacj\u0105 Jakarty EE 9 w popularnych serwerach aplikacyjnych<\/a>.\n\nA tymczasem, fani \u201cedycji dla przedsi\u0119biorstw\u201d powinni oczekiwa\u0107 Jakarty EE 9.1, kt\u00f3ra tu\u017c tu\u017c (wed\u0142ug tabelki - \u00a0Q2 2021). Przyniesie ona d\u0142ugo wyczekiwane wsparcie dla JDK 11.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b782d255.gif\" alt=\"\" \/>\n\n<figcaption>Gdyby Jave EE na rekrutacji zapytali jakim zwierz\u0119ciem chce zosta\u0107...<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/jakarta.ee\/compatibility\/#tab-9\">Jakarta EE Compatible Chart<\/a><\/li>\n \t<li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-jakartaee-cdi-ejb-jsf-tijms\">Java for the enterprise: What to expect in Jakarta EE 10<\/a><\/li>\n<\/ul>\n<h2 id=\"2-adoptopenjdk-zmienia-si%C4%99-w-adoptium-i-trafia-pod-skrzyd%C5%82a-eclipse-%F0%9F%A5%B3\"><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\">2. AdoptOpenJDK zmienia si\u0119 w Adoptium i trafia pod skrzyd\u0142a Eclipse<\/a><\/h2>\nCi\u0105gn\u0105c w\u0105tek projekt\u00f3w oddanych przez Oracle spo\u0142eczno\u015bci warto wspolnie\u0107 oAdoptOpenJDK, projekcie, kt\u00f3ry powsta\u0142 jako efekt wysi\u0142k\u00f3w spo\u0142eczno\u015bci walcz\u0105cej o \u201cwoln\u0105\u201d implementacje JDK, ostatecznie trafia on pod skrzyd\u0142a Eclipse Foundation. Efekt ponad rocznych stara\u0144 kwituje przechrzczenie projektu na Eclipse Adoptium (JDK jest znakiem towarowym nale\u017c\u0105cym do Oracle) oraz powstanie Adoptium Working Group.\n\nBior\u0105c pod uwag\u0119 fakt, \u017ce Oracle obecnie udziela wy\u0142\u0105cznie sze\u015bciu miesi\u0119cy wsparcia, dla ka\u017cdego nowego wydania, Adoptium jest krytycznym projektem dla ca\u0142ej spo\u0142eczno\u015bci, nie tylko Javy, ale r\u00f3wnie\u017c innych JVMowych j\u0119zyk\u00f3w. Ca\u0142y projekt fundowany jest przez mnogo\u015b\u0107 partner\u00f3w - Alibaba Cloud, Huawei, IBM, iJUG (stowarzyszenie niemieckich JUG\u00f3w), Karakun AG, Microsoft, New Relic oraz Red Hat b\u0119d\u0105 bra\u0107 udzia\u0142 w rozwoju otwartej wersji Javy. W ramach negocjacji uda\u0142o si\u0119 te\u017c otrzyma\u0107 dost\u0119p do Javowego Technology Compatibility Kit, \u201cwywalczonego\u201d od Oracle.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7888455.png\" alt=\"\" \/>\n\n<figcaption>Trivia: Projekt dosta\u0142 te\u017c nowe logo<\/figcaption><\/figure>\nJe\u017celi chcecie \u015bledzi\u0107 rozw\u00f3j Adoptium, oryginalny link zawiera zbi\u00f3r stron, kont spo\u0142eczno\u015bciowych i repozytori\u00f3w, kt\u00f3re r\u00f3wnie\u017c przesz\u0142y rebranding. My na pewno nie pozwolimy przegapi\u0107 Wam wszelkich wa\u017cnych og\u0142osze\u0144.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/blog.adoptium.net\/2021\/03\/eclipse-adoptium-announcement\/\">Eclipse Adoptium Welcomes You<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-trudne-jest-%E2%80%9Cutrzymanie%E2%80%9D-projektu-w-scali-spo%C5%82eczno%C5%9B%C4%87-dyskutuje-%F0%9F%98%88\"><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">3. Jak trudne jest \u201cutrzymanie\u201d projektu w Scali? Spo\u0142eczno\u015b\u0107 dyskutuje<\/a><\/h2>\nA na koniec - Scala, kt\u00f3rej <a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Release Party wersji 3.0 ju\u017c 23 kwietnia<\/a>.\n\nW przededniu tego bardzo znacz\u0105cego dla spo\u0142eczno\u015bci wydarzenia, w sieci do\u015b\u0107 mocnym echem odbi\u0142 si\u0119 artyku\u0142 krytykuj\u0105cy to, jak nieprzyjazna dla programist\u00f3w jest druga edycja tego j\u0119zyka. Dla tych, kt\u00f3rzy nigdy nie mieli styczno\u015bci z tym j\u0119zykiem - ka\u017cde \u201cminorowe\u201d wydanie Scali nie jest tak naprawd\u0119 \u201cminorowe\u201d. Scala u\u017cywa numeracji epoch.major.minor, co oznacza \u017ce zmiana z 2.12 na 2.13 \u0142amie kompatybilno\u015b\u0107 \u00a0(poszczeg\u00f3lne wydania nie s\u0105 wstecznie kompatybilne). Autor oryginalnego tekstu wskazuje, \u017ce je\u015bli dodamy do tego tempo wypuszczania nowych edycji (mniej wi\u0119cej jedna do roku), ca\u0142o\u015b\u0107 staje si\u0119 naprawd\u0119 nieprzyjemna w utrzymywaniu.\n\nFakt, \u017ce ka\u017cdorazowo trzeba przepisa\u0107 (a przynajmniej zrekompilowa\u0107) ca\u0142y ekosystemem bibliotek, wiele z libek nigdy nie uzyskuje wsparcia dla nowych wersji. Prowadzi do smutnej sytuacji, gdy projekty musz\u0105 tkwi\u0107 w archaicznej wersji Scali, ze wzgl\u0119du na brak wsparcia kt\u00f3rej\u015b z wa\u017cnych zale\u017cno\u015bci. Co ciekawe, problem wyst\u0119puje te\u017c od drugiej strony. \u00a0Czasem to stare projekty, nie mog\u0105ce si\u0119 zaktualizowa\u0107, maj\u0105 pod g\u00f3rk\u0119 - bardzo szybko trac\u0105 wsparcie np. \u0142atek bezpiecze\u0144stwa, poniewa\u017c autorzy bibliotek zbyt szybko przerzucaj\u0105 si\u0119 na now\u0105 wersj\u0119 j\u0119zyka, nie patrz\u0105c wstecz. Autor postu wskazuje te\u017c na problemy zwi\u0105zane z dynamicznym rozwojem SBT.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b7a1a9d6.gif\" alt=\"\" \/><\/figure>\nW komentarzach i w popularnych agregatorach nie brakuje jednak ludzi, kt\u00f3rzy uwa\u017caj\u0105 argumenty autora za mocno rozdmuchane. Nie brakuje jednak os\u00f3b, kt\u00f3re popieraj\u0105 zawarte w po\u015bcie twierdzenia, dyskusja jest wi\u0119c do\u015b\u0107 za\u017carta, <a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">cho\u0107by na redditcie<!--\na-->.<\/a>\n\n<a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/maw2wf\/scala_is_a_maintenance_nightmare_mungingdata\/\">Nied\u0142ugo przekonamy si\u0119, jak spo\u0142eczno\u015b\u0107 przyjmie przej\u015bcie ze Scali 2.13 na Scal\u0119 3. Wed\u0142ug Scala Center, <\/a><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 ma by\u0107 w du\u017cym stopniu kompatybilna z ostatnim wydaniem wersji 2<\/a>. Pozosta\u0142e niekompatybilno\u015bci rozwi\u0105za\u0107 ma za\u015b <a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\/2\">narz\u0119dzie migracyjne<\/a>, kt\u00f3re zosta\u0142o wydane w zesz\u0142ym tygodniu. Na pewno obserwowa\u0107 b\u0119dziemy, jak spo\u0142eczno\u015b\u0107 przyjmie d\u0142ugo oczekiwanego \u201cDotty\u2019ego\u201d\n\nPS: Je\u017celi macie problem, o kt\u00f3rym wspomina autor posta, <a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a> obiecuje rozwi\u0105zywa\u0107 wi\u0119kszo\u015b\u0107 z nich. John Pretty, autor biblioteki, w bardzo interesuj\u0105cy spos\u00f3b opowiada o powodach jej powstania <a href=\"https:\/\/www.youtube.com\/watch?v=PHjAKgdUMWI\">na r\u00f3\u017cnych meetupach<\/a>, opisuj\u0105c jak zamierza poradzi\u0107 sobie z problemami, o kt\u00f3rych by\u0142a mowa..\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/virtuslab.com\/join-the-scala-3-release-party-by-sphere-it\/\">Join the Scala 3 Release Party by sphere.it<\/a><\/li>\n \t<li><a href=\"https:\/\/mungingdata.com\/scala\/maintenance-nightmare-upgrade\/\">Scala is a Maintenance Nightmare<\/a><\/li>\n \t<li><a href=\"https:\/\/scalacenter.github.io\/scala-3-migration-guide\/docs\/compatibility.html\">Scala 3 - Compatibility Reference<\/a><\/li>\n \t<li><a href=\"https:\/\/github.com\/propensive\/fury\">Fury<\/a><\/li>\n \t<li><a href=\"https:\/\/contributors.scala-lang.org\/t\/scala3-migrate-a-tool-making-it-easier-to-migrate-to-scala-3\/4446\">Scala3-migrate: a tool making it easier to migrate to Scala 3<\/a><\/li>\n<\/ul>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10160","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=10160"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10160\/revisions"}],"predecessor-version":[{"id":10580,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10160\/revisions\/10580"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}