{"id":9939,"date":"2022-07-27T09:43:32","date_gmt":"2022-07-27T07:43:32","guid":{"rendered":"https:\/\/vived.io\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/"},"modified":"2022-09-19T13:10:35","modified_gmt":"2022-09-19T11:10:35","slug":"jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/","title":{"rendered":"JVM Weekly #97 &#8211; IntelliJ dostaje du\u017cego kopa na MacOS"},"content":{"rendered":"\n<h2 id=\"1-wyszedl-nowy-intellij-idea-2022-2\" data-num=1>1. Wyszed\u0142 nowy Intellij Idea 2022.2<\/h2>\n\n\n\n<p>Nie wiem, czy jest cho\u0107 jedna osoba \u015bwiadomie czytaj\u0105ca t\u0105 seri\u0119, kt\u00f3ra nie kojarzy czym jest IntelliJ Idea. Tw\u00f3rcy najlepszego (chyba mog\u0119 tego s\u0142owa u\u017cy\u0107 i nie czeka mnie lincz, prawda?) IDE dla Javy regularnie wydaj\u0105 nowe wersje swojego narz\u0119dzia, jednocze\u015bnie potrafi\u0105c uczyni\u0107 ka\u017cd\u0105 kolejn\u0105 edycj\u0119 interesuj\u0105c\u0105. Nie inaczej jest i tym razem, zw\u0142aszcza, \u017ce opr\u00f3cz nowych funkcjonalno\u015bci wprowadzono naprawd\u0119 du\u017ce zmiany &#8222;pod mask\u0105&#8221; &#8211; zw\u0142aszcza dla u\u017cytkownik\u00f3w macOS.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-908x1024.png\" alt=\"\" class=\"wp-image-6074\" width=\"454\" height=\"512\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-908x1024.png 908w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-266x300.png 266w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-768x866.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62.png 1148w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><figcaption>I to nie \u017ce s\u0105 jako\u015b uprzywilejowani&#8230; po prostu Idea na MacOS mia\u0142 pewne braki.<\/figcaption><\/figure><\/div>\n\n\n<p>Wydany wczoraj <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ Idea 2022.2<\/a> wprowadza bowiem now\u0105 wersj\u0119 <a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime\">JetBrainsRuntime<\/a>, czyli utrzymywanego przez JetBrains forka OpenJDK. Nie wiem czy ka\u017cdy zdaje sobie spraw\u0119, \u017ce mimo i\u017c Idea jest napisana w Javie, to od dawna ju\u017c nie u\u017cywa zainstalowanej w systemie wersji JDK, zamiast tego operuj\u0105c na w\u0142asnej, zbundlowanej. Takow\u0105 da si\u0119 podmieni\u0107, co w przesz\u0142o\u015bci pomaga\u0142o z wydajno\u015bci\u0105, bowiem fork jak to fork &#8211; czasem pozostawa\u0142 troch\u0119 z ty\u0142u za mo\u017cliwo\u015bciami Javy. Przyk\u0142adowo, dostarczana do tej pory wersja JBR opiera\u0142a si\u0119 na JDK 11, nie mog\u0142a wi\u0119c skonsumowa\u0107 zmian, kt\u00f3re przez ostatnie par\u0119 lat trafi\u0142y do Javy. Teraz si\u0119 to zmieni.<\/p>\n\n\n\n<p>Pewnie w tym momencie zastanawiacie si\u0119, jakie\u017c to zmiany mog\u0105 by\u0107 istotne z punktu widzenia IDE. JetBrainsRuntime w wersji 17 przynosi min. wsparcie <a href=\"https:\/\/openjdk.org\/projects\/lanai\/\">Projektu Lanai<\/a>, czyli prowadzonej przez JetBrains inicjatywy maj\u0105cej na celu &#8222;po\u017cenienie&#8221; Javy z <a href=\"https:\/\/developer.apple.com\/metal\/\">Metal API<\/a>, czyli (nie tak ju\u017c) nowym pipeline renderuj\u0105cym dla systemu macOS. Dotychczas u\u017cywany OpenGL od dawna wylecia\u0142 poza obszar zainteresowa\u0144 firmy z Cupertino, Metal za\u015b jest regularnie rozwijany, w efektywny spos\u00f3b konsumuj\u0105c wszystkie nowo\u015bci wprowadzane w hardwarze MacBook\u00f3w &#8211; a tych przecie\u017c ostatnio by\u0142a masa (M1, anybody?). JetBrains chwali si\u0119 znacznym wzrostem wydajno\u015bci na Apple Silicon, aczkolwiek nie dogrzeba\u0142em si\u0119 konkretnych benchmark\u00f3w. JBR17 przynosi te\u017c pierwsze eksperymenty firmy z Vector API, cz\u0119\u015bci\u0105 Projektu Panama, kt\u00f3ra pozwala na bezpo\u015bredni dost\u0119p do hardware, z (prawie)pomini\u0119ciem javowej abstrakcji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"702\" height=\"463\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-61.png\" alt=\"\" class=\"wp-image-6073\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-61.png 702w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-61-300x198.png 300w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><\/figure><\/div>\n\n\n<p>Co jednak przynosi nowy IntelliJ poza zwi\u0119kszon\u0105 wydajno\u015bci\u0105? Oczkiem w g\u0142owie firmy wydaje si\u0119 by\u0107 Zdalny Development i ten doczeka\u0142 si\u0119 w nowej edycji IDE kolejnych usprawnie\u0144. Pomimo dalszego pozostawania w Becie, usprawnieniom doczeka\u0142o si\u0119 wsparcie pracy poprzez SSH na zdalnej maszynie, a tak\u017ce <a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains Gateway<\/a>, czyli w wizji JetBrains nowe centrum naszej pracy zdalnej, cienki klient pozwalaj\u0105ce na zarz\u0105dzanie zewn\u0119trznymi \u015brodowiskami. Sporo usprawnie\u0144 doczekali si\u0119 te\u017c szcz\u0119\u015bliwcy maj\u0105cy dost\u0119p do zamkni\u0119tej bety JetBrains Spaces, czyli bezpo\u015bredniej konkurencji dla VSCode.<\/p>\n\n\n\n<p>Uciesz\u0105 si\u0119 te\u017c u\u017cytkownicy Springa &#8211; IntelliJ od teraz wspiera bowiem nadchodz\u0105ce Spring 6 i Spring Boot 3, kt\u00f3rych premiera ma nast\u0105pi\u0107 ju\u017c t\u0105 jesieni\u0105, a od pewnego czasu dost\u0119pne s\u0105 w wersjach testowych. Firma zwi\u0119kszy\u0142a te\u017c kompatybilno\u015b\u0107 z w\u0142asnym Kotlinem 1.7 czy wsparcie featur\u00f3w Groovy 4. Nie braknie r\u00f3wnie\u017c nowych <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/06\/intellij-idea-2022-2-eap-4\/\">inspekcji kodu<\/a>. Og\u00f3lnie, je\u015bli jeste\u015bcie ciekawi pe\u0142nej listy zmian, zach\u0119cam do <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">pe\u0142nej listy zmian<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60.png\" alt=\"\" class=\"wp-image-6071\" width=\"750\" height=\"233\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60.png 1000w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60-300x93.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60-768x239.png 768w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><figcaption>Z ciekawo\u015bci &#8211; czy kto\u015b jeszcze ogarnia wszystkie narz\u0119dzia jakie daj\u0119 IntelliJ? Mam wra\u017cenie, \u017ce to daje jakie\u015b nadludzkie supermoce, ale z drugiej strony zastanawiam si\u0119, czy kto\u015b rzeczywi\u015bcie u\u017cywa wszystkiego \ud83d\ude09<\/figcaption><\/figure><\/div>\n\n\n<p>Dla kompletno\u015bci tego postu &#8211; swojej nowej wersji doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">Plugin dla Scali<\/a>. Ten doczeka\u0142 si\u0119 standardowego zestawu zmian, takich jak nowe mo\u017cliwo\u015bci Scali czy nowe automatyczne refaktoringi. Najciekawszym dodatkiem wydaj\u0105 si\u0119 by\u0107 mo\u017cliwo\u015b\u0107 u\u017cycia zewn\u0119trznego Error Highlightera.<\/p>\n\n\n\n<p>Na koniec \u0142y\u017cka dziegciu. Jest to bowiem dobra okazja by przypomnie\u0107, \u017ce par\u0119 tygodni JetBrains <a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/\">zapowiedzia\u0142 wzrost cen swoich subskrypcji od 1 pa\u017adziernika<\/a>. Inflacja bije biednych Dev\u00f3w po kieszeni z kolejnego kierunku, mimo \u017ce tw\u00f3rcy zarzekaj\u0105 si\u0119, \u017ce jest to bardziej zwi\u0105zane z nowymi mo\u017cliwo\u015bciami narz\u0119dzia ni\u017c inflacj\u0105 jako tak\u0105.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-55.png\" alt=\"\" class=\"wp-image-6065\" width=\"641\" height=\"632\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-55.png 640w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-55-300x296.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><figcaption>Mo\u017ce niekt\u00f3rzy \u0142askawszym okiem spojrz\u0105 na Visual Studio Code.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/&#10;\">Increased Subscription Pricing for IDEs, .NET Tools, and the All Products Pack<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">What\u2019s New in IntelliJ IDEA 2022.2<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">IntelliJ Scala Plugin 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ IDEA 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains&nbsp;Gateway&nbsp;BETA<\/a><\/li><li><a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime&#10;\">github.com\/JetBrains\/JetBrainsRuntime<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-co-pozostalo-do-powiedzenie-w-sporze-dziedziczenie-vs-kompozycja\" data-num=2>2.  Co pozosta\u0142o do powiedzenie w sporze dziedziczenie vs kompozycja?<\/h2>\n\n\n\n<p>Tak jak wszyscy kojarz\u0105 IntelliJ Idea, tak podejrzewam, \u017ce niewiele jest tak og\u00f3lnie znanych ksi\u0105\u017cek o Javie jak <a href=\"https:\/\/www.amazon.com\/Effective-Java-Joshua-Bloch\/dp\/0134685997\">Effective Java<\/a>. Ta swoista biblia javowego programowania co prawda nie by\u0142a od pewnego czasu aktualizowana (ostatni raz przy okazji Javy 9), w dalszym ciagu pozostaje jednak lektur\u0105 obowi\u0105zkow\u0105 i \u017ar\u00f3d\u0142em wi\u0119kszo\u015bci wiedzy plemiennej, kt\u00f3r\u0105 programi\u015bci przekazuj\u0105 sobie z pokolenia na pokolenie, w ramach procesu nazywanym przez antropolog\u00f3w jako &#8222;review kodu&#8221;. Troch\u0119 tutaj ironizuje, ale mam wiele szacunku dla pana Blocha i jego opracowania &#8211; pozwala nam nie wymy\u015bla\u0107 ka\u017cdorazowo ko\u0142a na nowo, a wi\u0119kszo\u015b\u0107 z porad jest naprawd\u0119 u\u017cyteczna i umo\u017cliwiaj\u0105ca pisanie lepszego kodu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"600\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-56.png\" alt=\"\" class=\"wp-image-6066\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-56.png 750w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-56-300x240.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><figcaption>Bo zawsze lepiej uczy\u0107 si\u0119 na cudzych b\u0142\u0119dach.<\/figcaption><\/figure><\/div>\n\n\n<p>Dlaczego jednak pisz\u0119 o <em>Effective Java<\/em>? Z jakiego\u015b powodu Oracle zdecydowa\u0142o si\u0119 na swojego Java Magazine <a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition\">zamie\u015bci\u0107 jej zaadaptowany rozdzia\u0142<\/a>, dotycz\u0105cy powod\u00f3w, dla kt\u00f3rych warto rozwa\u017cy\u0107 kompozycje zamiast dziedziczenia. Nie wiem czy w \u015bwiecie programowania obiektowego w Javie jest bardziej oklepany temat &#8211; w momencie gdy sam j\u0119zyk i jego najbardziej zaanga\u017cowane community po drodze zd\u0105\u017cy\u0142o ju\u017c flirtowa\u0107 zar\u00f3wno z programowaniem funkcyjnym, a ostatnio coraz modniejsze jest m\u00f3wienie o mezaliansie z programowaniem zorientowanym na dane (Data-Oriented Programming). Okazuje si\u0119, \u017ce jest to jednak pewna banieczka, poniewa\u017c temat Dziedziczenie vs Kompozycja w dalszym ci\u0105gu rozgrzewa &#8211; na <a href=\"https:\/\/www.reddit.com\/r\/java\/\">javowym Reddicie<\/a> wygenerowa\u0142 on bowiem dyskusj\u0119 na <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">ponad 160 \u0142apek w g\u00f3r\u0119 i wi\u0119cej ni\u017c 65 komentarzy<\/a>, co jest rzadko spotykane w ramach tej spo\u0142eczno\u015bci. Niekt\u00f3re przyk\u0142ady w dyskusji s\u0105 na tyle interesuj\u0105ce, \u017ce polecam lektur\u0119 w\u0105tku &#8211; w odr\u00f3\u017cnieniu od Blocha, (kt\u00f3ry jak wspomnia\u0142em zatrzyma\u0142 si\u0119 na poziomie JDK 9) dyskusja kr\u0119ci si\u0119 bardziej w ko\u0142o tego, jak nowe dodatki do j\u0119zyka typu <em>sealed class<\/em> dok\u0142adaj\u0105 argument\u00f3w do tego starego jak programowanie obiektowe problemu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"400\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57.png\" alt=\"\" class=\"wp-image-6067\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57.png 400w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57-300x300.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57-150x150.png 150w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><figcaption>Najm\u0105drzejsi po prostu nie dadz\u0105 wcisn\u0105\u0107 si\u0119 w ramy dw\u00f3jmy\u015blenia i \u015bwiadomie wybior\u0105 trzeci\u0105 drog\u0119<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition&#10;\">You should favor composition over inheritance in Java. Here\u2019s why.<\/a><\/li><li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">Reddit &#8211; Why you should favor composition over inheritance in Java (Joshua Bloch)<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Nowy IntelliJ Idea to zmiany, na kt\u00f3re u\u017cytkownicy Mac\u00f3w czekali od d\u0142ugiego czasu, jednak i osoby u\u017cywaj\u0105ce innych system\u00f3w operacyjnych znajd\u0105 dla siebie sporo dobra. W drugiej cze\u015bci zajmiemy si\u0119 za\u015b problemem starym jak Java &#8211; Dziedziczenie czy kompozycja?<\/p>\n","protected":false},"author":10,"featured_media":8952,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-9939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"5","feature_image_blog":{"ID":8951,"id":8951,"title":"metal-og-twitter","filename":"metal-og-twitter.jpeg","filesize":43473,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","link":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/metal-og-twitter-2\/","alt":"","author":"10","description":"","caption":"","name":"metal-og-twitter-2","status":"inherit","uploaded_to":9939,"date":"2022-07-27 07:43:26","modified":"2022-07-27 07:43:26","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1024,"height":512,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter-150x150.jpeg","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter-300x150.jpeg","medium-width":300,"medium-height":150,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter-768x384.jpeg","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","large-width":1024,"large-height":512,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","1536x1536-width":1024,"1536x1536-height":512,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","2048x2048-width":1024,"2048x2048-height":512,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":150,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","gform-image-choice-md-width":400,"gform-image-choice-md-height":200,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/metal-og-twitter.jpeg","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":300}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - 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-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - Vived\" \/>\n<meta property=\"og:description\" content=\"Nowy IntelliJ Idea to zmiany, na kt\u00f3re u\u017cytkownicy Mac\u00f3w czekali od d\u0142ugiego czasu, jednak i osoby u\u017cywaj\u0105ce innych system\u00f3w operacyjnych znajd\u0105 dla siebie sporo dobra. W drugiej cze\u015bci zajmiemy si\u0119 za\u015b problemem starym jak Java - Dziedziczenie czy kompozycja?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-27T07:43:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Weekly #97 &#8211; IntelliJ dostaje du\u017cego kopa na MacOS\",\"datePublished\":\"2022-07-27T07:43:32+00:00\",\"dateModified\":\"2022-09-19T11:10:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\"},\"wordCount\":1108,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\",\"name\":\"JVM Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png\",\"datePublished\":\"2022-07-27T07:43:32+00:00\",\"dateModified\":\"2022-09-19T11:10:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Weekly #97 &#8211; IntelliJ dostaje du\u017cego kopa na MacOS\"}]},{\"@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 Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - 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-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - Vived","og_description":"Nowy IntelliJ Idea to zmiany, na kt\u00f3re u\u017cytkownicy Mac\u00f3w czekali od d\u0142ugiego czasu, jednak i osoby u\u017cywaj\u0105ce innych system\u00f3w operacyjnych znajd\u0105 dla siebie sporo dobra. W drugiej cze\u015bci zajmiemy si\u0119 za\u015b problemem starym jak Java - Dziedziczenie czy kompozycja?","og_url":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/","og_site_name":"Vived","article_published_time":"2022-07-27T07:43:32+00:00","article_modified_time":"2022-09-19T11:10:35+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Weekly #97 &#8211; IntelliJ dostaje du\u017cego kopa na MacOS","datePublished":"2022-07-27T07:43:32+00:00","dateModified":"2022-09-19T11:10:35+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/"},"wordCount":1108,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/","url":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/","name":"JVM Weekly #97 - IntelliJ dostaje du\u017cego kopa na MacOS - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","datePublished":"2022-07-27T07:43:32+00:00","dateModified":"2022-09-19T11:10:35+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/jvm-97.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-weekly-97-intellij-dostaje-duzego-kopa-na-macos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Weekly #97 &#8211; IntelliJ dostaje du\u017cego kopa na MacOS"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Wyszed\u0142 nowy Intellij Idea 2022.2<\/h2>\n","innerContent":["\n<h2>1. Wyszed\u0142 nowy Intellij Idea 2022.2<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie wiem, czy jest cho\u0107 jedna osoba \u015bwiadomie czytaj\u0105ca t\u0105 seri\u0119, kt\u00f3ra nie kojarzy czym jest IntelliJ Idea. Tw\u00f3rcy najlepszego (chyba mog\u0119 tego s\u0142owa u\u017cy\u0107 i nie czeka mnie lincz, prawda?) IDE dla Javy regularnie wydaj\u0105 nowe wersje swojego narz\u0119dzia, jednocze\u015bnie potrafi\u0105c uczyni\u0107 ka\u017cd\u0105 kolejn\u0105 edycj\u0119 interesuj\u0105c\u0105. Nie inaczej jest i tym razem, zw\u0142aszcza, \u017ce opr\u00f3cz nowych funkcjonalno\u015bci wprowadzono naprawd\u0119 du\u017ce zmiany \"pod mask\u0105\" - zw\u0142aszcza dla u\u017cytkownik\u00f3w macOS.<\/p>\n","innerContent":["\n<p>Nie wiem, czy jest cho\u0107 jedna osoba \u015bwiadomie czytaj\u0105ca t\u0105 seri\u0119, kt\u00f3ra nie kojarzy czym jest IntelliJ Idea. Tw\u00f3rcy najlepszego (chyba mog\u0119 tego s\u0142owa u\u017cy\u0107 i nie czeka mnie lincz, prawda?) IDE dla Javy regularnie wydaj\u0105 nowe wersje swojego narz\u0119dzia, jednocze\u015bnie potrafi\u0105c uczyni\u0107 ka\u017cd\u0105 kolejn\u0105 edycj\u0119 interesuj\u0105c\u0105. Nie inaczej jest i tym razem, zw\u0142aszcza, \u017ce opr\u00f3cz nowych funkcjonalno\u015bci wprowadzono naprawd\u0119 du\u017ce zmiany \"pod mask\u0105\" - zw\u0142aszcza dla u\u017cytkownik\u00f3w macOS.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6074,"width":454,"height":512,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-908x1024.png\" alt=\"\" class=\"wp-image-6074\" width=\"454\" height=\"512\"\/><figcaption>I to nie \u017ce s\u0105 jako\u015b uprzywilejowani... po prostu Idea na MacOS mia\u0142 pewne braki.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-62-908x1024.png\" alt=\"\" class=\"wp-image-6074\" width=\"454\" height=\"512\"\/><figcaption>I to nie \u017ce s\u0105 jako\u015b uprzywilejowani... po prostu Idea na MacOS mia\u0142 pewne braki.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wydany wczoraj <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ Idea 2022.2<\/a> wprowadza bowiem now\u0105 wersj\u0119 <a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime\">JetBrainsRuntime<\/a>, czyli utrzymywanego przez JetBrains forka OpenJDK. Nie wiem czy ka\u017cdy zdaje sobie spraw\u0119, \u017ce mimo i\u017c Idea jest napisana w Javie, to od dawna ju\u017c nie u\u017cywa zainstalowanej w systemie wersji JDK, zamiast tego operuj\u0105c na w\u0142asnej, zbundlowanej. Takow\u0105 da si\u0119 podmieni\u0107, co w przesz\u0142o\u015bci pomaga\u0142o z wydajno\u015bci\u0105, bowiem fork jak to fork - czasem pozostawa\u0142 troch\u0119 z ty\u0142u za mo\u017cliwo\u015bciami Javy. Przyk\u0142adowo, dostarczana do tej pory wersja JBR opiera\u0142a si\u0119 na JDK 11, nie mog\u0142a wi\u0119c skonsumowa\u0107 zmian, kt\u00f3re przez ostatnie par\u0119 lat trafi\u0142y do Javy. Teraz si\u0119 to zmieni.<\/p>\n","innerContent":["\n<p>Wydany wczoraj <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ Idea 2022.2<\/a> wprowadza bowiem now\u0105 wersj\u0119 <a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime\">JetBrainsRuntime<\/a>, czyli utrzymywanego przez JetBrains forka OpenJDK. Nie wiem czy ka\u017cdy zdaje sobie spraw\u0119, \u017ce mimo i\u017c Idea jest napisana w Javie, to od dawna ju\u017c nie u\u017cywa zainstalowanej w systemie wersji JDK, zamiast tego operuj\u0105c na w\u0142asnej, zbundlowanej. Takow\u0105 da si\u0119 podmieni\u0107, co w przesz\u0142o\u015bci pomaga\u0142o z wydajno\u015bci\u0105, bowiem fork jak to fork - czasem pozostawa\u0142 troch\u0119 z ty\u0142u za mo\u017cliwo\u015bciami Javy. Przyk\u0142adowo, dostarczana do tej pory wersja JBR opiera\u0142a si\u0119 na JDK 11, nie mog\u0142a wi\u0119c skonsumowa\u0107 zmian, kt\u00f3re przez ostatnie par\u0119 lat trafi\u0142y do Javy. Teraz si\u0119 to zmieni.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pewnie w tym momencie zastanawiacie si\u0119, jakie\u017c to zmiany mog\u0105 by\u0107 istotne z punktu widzenia IDE. JetBrainsRuntime w wersji 17 przynosi min. wsparcie <a href=\"https:\/\/openjdk.org\/projects\/lanai\/\">Projektu Lanai<\/a>, czyli prowadzonej przez JetBrains inicjatywy maj\u0105cej na celu \"po\u017cenienie\" Javy z <a href=\"https:\/\/developer.apple.com\/metal\/\">Metal API<\/a>, czyli (nie tak ju\u017c) nowym pipeline renderuj\u0105cym dla systemu macOS. Dotychczas u\u017cywany OpenGL od dawna wylecia\u0142 poza obszar zainteresowa\u0144 firmy z Cupertino, Metal za\u015b jest regularnie rozwijany, w efektywny spos\u00f3b konsumuj\u0105c wszystkie nowo\u015bci wprowadzane w hardwarze MacBook\u00f3w - a tych przecie\u017c ostatnio by\u0142a masa (M1, anybody?). JetBrains chwali si\u0119 znacznym wzrostem wydajno\u015bci na Apple Silicon, aczkolwiek nie dogrzeba\u0142em si\u0119 konkretnych benchmark\u00f3w. JBR17 przynosi te\u017c pierwsze eksperymenty firmy z Vector API, cz\u0119\u015bci\u0105 Projektu Panama, kt\u00f3ra pozwala na bezpo\u015bredni dost\u0119p do hardware, z (prawie)pomini\u0119ciem javowej abstrakcji.<\/p>\n","innerContent":["\n<p>Pewnie w tym momencie zastanawiacie si\u0119, jakie\u017c to zmiany mog\u0105 by\u0107 istotne z punktu widzenia IDE. JetBrainsRuntime w wersji 17 przynosi min. wsparcie <a href=\"https:\/\/openjdk.org\/projects\/lanai\/\">Projektu Lanai<\/a>, czyli prowadzonej przez JetBrains inicjatywy maj\u0105cej na celu \"po\u017cenienie\" Javy z <a href=\"https:\/\/developer.apple.com\/metal\/\">Metal API<\/a>, czyli (nie tak ju\u017c) nowym pipeline renderuj\u0105cym dla systemu macOS. Dotychczas u\u017cywany OpenGL od dawna wylecia\u0142 poza obszar zainteresowa\u0144 firmy z Cupertino, Metal za\u015b jest regularnie rozwijany, w efektywny spos\u00f3b konsumuj\u0105c wszystkie nowo\u015bci wprowadzane w hardwarze MacBook\u00f3w - a tych przecie\u017c ostatnio by\u0142a masa (M1, anybody?). JetBrains chwali si\u0119 znacznym wzrostem wydajno\u015bci na Apple Silicon, aczkolwiek nie dogrzeba\u0142em si\u0119 konkretnych benchmark\u00f3w. JBR17 przynosi te\u017c pierwsze eksperymenty firmy z Vector API, cz\u0119\u015bci\u0105 Projektu Panama, kt\u00f3ra pozwala na bezpo\u015bredni dost\u0119p do hardware, z (prawie)pomini\u0119ciem javowej abstrakcji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6073,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-61.png\" alt=\"\" class=\"wp-image-6073\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-61.png\" alt=\"\" class=\"wp-image-6073\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co jednak przynosi nowy IntelliJ poza zwi\u0119kszon\u0105 wydajno\u015bci\u0105? Oczkiem w g\u0142owie firmy wydaje si\u0119 by\u0107 Zdalny Development i ten doczeka\u0142 si\u0119 w nowej edycji IDE kolejnych usprawnie\u0144. Pomimo dalszego pozostawania w Becie, usprawnieniom doczeka\u0142o si\u0119 wsparcie pracy poprzez SSH na zdalnej maszynie, a tak\u017ce <a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains Gateway<\/a>, czyli w wizji JetBrains nowe centrum naszej pracy zdalnej, cienki klient pozwalaj\u0105ce na zarz\u0105dzanie zewn\u0119trznymi \u015brodowiskami. Sporo usprawnie\u0144 doczekali si\u0119 te\u017c szcz\u0119\u015bliwcy maj\u0105cy dost\u0119p do zamkni\u0119tej bety JetBrains Spaces, czyli bezpo\u015bredniej konkurencji dla VSCode.<\/p>\n","innerContent":["\n<p>Co jednak przynosi nowy IntelliJ poza zwi\u0119kszon\u0105 wydajno\u015bci\u0105? Oczkiem w g\u0142owie firmy wydaje si\u0119 by\u0107 Zdalny Development i ten doczeka\u0142 si\u0119 w nowej edycji IDE kolejnych usprawnie\u0144. Pomimo dalszego pozostawania w Becie, usprawnieniom doczeka\u0142o si\u0119 wsparcie pracy poprzez SSH na zdalnej maszynie, a tak\u017ce <a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains Gateway<\/a>, czyli w wizji JetBrains nowe centrum naszej pracy zdalnej, cienki klient pozwalaj\u0105ce na zarz\u0105dzanie zewn\u0119trznymi \u015brodowiskami. Sporo usprawnie\u0144 doczekali si\u0119 te\u017c szcz\u0119\u015bliwcy maj\u0105cy dost\u0119p do zamkni\u0119tej bety JetBrains Spaces, czyli bezpo\u015bredniej konkurencji dla VSCode.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Uciesz\u0105 si\u0119 te\u017c u\u017cytkownicy Springa - IntelliJ od teraz wspiera bowiem nadchodz\u0105ce Spring 6 i Spring Boot 3, kt\u00f3rych premiera ma nast\u0105pi\u0107 ju\u017c t\u0105 jesieni\u0105, a od pewnego czasu dost\u0119pne s\u0105 w wersjach testowych. Firma zwi\u0119kszy\u0142a te\u017c kompatybilno\u015b\u0107 z w\u0142asnym Kotlinem 1.7 czy wsparcie featur\u00f3w Groovy 4. Nie braknie r\u00f3wnie\u017c nowych <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/06\/intellij-idea-2022-2-eap-4\/\">inspekcji kodu<\/a>. Og\u00f3lnie, je\u015bli jeste\u015bcie ciekawi pe\u0142nej listy zmian, zach\u0119cam do <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">pe\u0142nej listy zmian<\/a>.<\/p>\n","innerContent":["\n<p>Uciesz\u0105 si\u0119 te\u017c u\u017cytkownicy Springa - IntelliJ od teraz wspiera bowiem nadchodz\u0105ce Spring 6 i Spring Boot 3, kt\u00f3rych premiera ma nast\u0105pi\u0107 ju\u017c t\u0105 jesieni\u0105, a od pewnego czasu dost\u0119pne s\u0105 w wersjach testowych. Firma zwi\u0119kszy\u0142a te\u017c kompatybilno\u015b\u0107 z w\u0142asnym Kotlinem 1.7 czy wsparcie featur\u00f3w Groovy 4. Nie braknie r\u00f3wnie\u017c nowych <a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/06\/intellij-idea-2022-2-eap-4\/\">inspekcji kodu<\/a>. Og\u00f3lnie, je\u015bli jeste\u015bcie ciekawi pe\u0142nej listy zmian, zach\u0119cam do <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">pe\u0142nej listy zmian<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6071,"width":750,"height":233,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60.png\" alt=\"\" class=\"wp-image-6071\" width=\"750\" height=\"233\"\/><figcaption>Z ciekawo\u015bci - czy kto\u015b jeszcze ogarnia wszystkie narz\u0119dzia jakie daj\u0119 IntelliJ? Mam wra\u017cenie, \u017ce to daje jakie\u015b nadludzkie supermoce, ale z drugiej strony zastanawiam si\u0119, czy kto\u015b rzeczywi\u015bcie u\u017cywa wszystkiego \ud83d\ude09<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-60.png\" alt=\"\" class=\"wp-image-6071\" width=\"750\" height=\"233\"\/><figcaption>Z ciekawo\u015bci - czy kto\u015b jeszcze ogarnia wszystkie narz\u0119dzia jakie daj\u0119 IntelliJ? Mam wra\u017cenie, \u017ce to daje jakie\u015b nadludzkie supermoce, ale z drugiej strony zastanawiam si\u0119, czy kto\u015b rzeczywi\u015bcie u\u017cywa wszystkiego \ud83d\ude09<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dla kompletno\u015bci tego postu - swojej nowej wersji doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">Plugin dla Scali<\/a>. Ten doczeka\u0142 si\u0119 standardowego zestawu zmian, takich jak nowe mo\u017cliwo\u015bci Scali czy nowe automatyczne refaktoringi. Najciekawszym dodatkiem wydaj\u0105 si\u0119 by\u0107 mo\u017cliwo\u015b\u0107 u\u017cycia zewn\u0119trznego Error Highlightera.<\/p>\n","innerContent":["\n<p>Dla kompletno\u015bci tego postu - swojej nowej wersji doczeka\u0142 si\u0119 te\u017c <a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">Plugin dla Scali<\/a>. Ten doczeka\u0142 si\u0119 standardowego zestawu zmian, takich jak nowe mo\u017cliwo\u015bci Scali czy nowe automatyczne refaktoringi. Najciekawszym dodatkiem wydaj\u0105 si\u0119 by\u0107 mo\u017cliwo\u015b\u0107 u\u017cycia zewn\u0119trznego Error Highlightera.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na koniec \u0142y\u017cka dziegciu. Jest to bowiem dobra okazja by przypomnie\u0107, \u017ce par\u0119 tygodni JetBrains <a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/\">zapowiedzia\u0142 wzrost cen swoich subskrypcji od 1 pa\u017adziernika<\/a>. Inflacja bije biednych Dev\u00f3w po kieszeni z kolejnego kierunku, mimo \u017ce tw\u00f3rcy zarzekaj\u0105 si\u0119, \u017ce jest to bardziej zwi\u0105zane z nowymi mo\u017cliwo\u015bciami narz\u0119dzia ni\u017c inflacj\u0105 jako tak\u0105.<\/p>\n","innerContent":["\n<p>Na koniec \u0142y\u017cka dziegciu. Jest to bowiem dobra okazja by przypomnie\u0107, \u017ce par\u0119 tygodni JetBrains <a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/\">zapowiedzia\u0142 wzrost cen swoich subskrypcji od 1 pa\u017adziernika<\/a>. Inflacja bije biednych Dev\u00f3w po kieszeni z kolejnego kierunku, mimo \u017ce tw\u00f3rcy zarzekaj\u0105 si\u0119, \u017ce jest to bardziej zwi\u0105zane z nowymi mo\u017cliwo\u015bciami narz\u0119dzia ni\u017c inflacj\u0105 jako tak\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6065,"width":641,"height":632,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-55.png\" alt=\"\" class=\"wp-image-6065\" width=\"641\" height=\"632\"\/><figcaption>Mo\u017ce niekt\u00f3rzy \u0142askawszym okiem spojrz\u0105 na Visual Studio Code.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-55.png\" alt=\"\" class=\"wp-image-6065\" width=\"641\" height=\"632\"\/><figcaption>Mo\u017ce niekt\u00f3rzy \u0142askawszym okiem spojrz\u0105 na Visual Studio Code.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/&#10;\">Increased Subscription Pricing for IDEs, .NET Tools, and the All Products Pack<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">What\u2019s New in IntelliJ IDEA 2022.2<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">IntelliJ Scala Plugin 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ IDEA 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains&nbsp;Gateway&nbsp;BETA<\/a><\/li><li><a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime&#10;\">github.com\/JetBrains\/JetBrainsRuntime<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2022\/06\/29\/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack\/&#10;\">Increased Subscription Pricing for IDEs, .NET Tools, and the All Products Pack<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">What\u2019s New in IntelliJ IDEA 2022.2<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/scala\/2022\/07\/26\/intellij-scala-plugin-2022-2-is-out\/\">IntelliJ Scala Plugin 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/07\/intellij-idea-2022-2\/\">IntelliJ IDEA 2022.2 Is Out!<\/a><\/li><li><a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\">JetBrains&nbsp;Gateway&nbsp;BETA<\/a><\/li><li><a href=\"https:\/\/github.com\/JetBrains\/JetBrainsRuntime&#10;\">github.com\/JetBrains\/JetBrainsRuntime<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2.  Co pozosta\u0142o do powiedzenie w sporze dziedziczenie vs kompozycja?<\/h2>\n","innerContent":["\n<h2>2.  Co pozosta\u0142o do powiedzenie w sporze dziedziczenie vs kompozycja?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tak jak wszyscy kojarz\u0105 IntelliJ Idea, tak podejrzewam, \u017ce niewiele jest tak og\u00f3lnie znanych ksi\u0105\u017cek o Javie jak <a href=\"https:\/\/www.amazon.com\/Effective-Java-Joshua-Bloch\/dp\/0134685997\">Effective Java<\/a>. Ta swoista biblia javowego programowania co prawda nie by\u0142a od pewnego czasu aktualizowana (ostatni raz przy okazji Javy 9), w dalszym ciagu pozostaje jednak lektur\u0105 obowi\u0105zkow\u0105 i \u017ar\u00f3d\u0142em wi\u0119kszo\u015bci wiedzy plemiennej, kt\u00f3r\u0105 programi\u015bci przekazuj\u0105 sobie z pokolenia na pokolenie, w ramach procesu nazywanym przez antropolog\u00f3w jako \"review kodu\". Troch\u0119 tutaj ironizuje, ale mam wiele szacunku dla pana Blocha i jego opracowania - pozwala nam nie wymy\u015bla\u0107 ka\u017cdorazowo ko\u0142a na nowo, a wi\u0119kszo\u015b\u0107 z porad jest naprawd\u0119 u\u017cyteczna i umo\u017cliwiaj\u0105ca pisanie lepszego kodu.<\/p>\n","innerContent":["\n<p>Tak jak wszyscy kojarz\u0105 IntelliJ Idea, tak podejrzewam, \u017ce niewiele jest tak og\u00f3lnie znanych ksi\u0105\u017cek o Javie jak <a href=\"https:\/\/www.amazon.com\/Effective-Java-Joshua-Bloch\/dp\/0134685997\">Effective Java<\/a>. Ta swoista biblia javowego programowania co prawda nie by\u0142a od pewnego czasu aktualizowana (ostatni raz przy okazji Javy 9), w dalszym ciagu pozostaje jednak lektur\u0105 obowi\u0105zkow\u0105 i \u017ar\u00f3d\u0142em wi\u0119kszo\u015bci wiedzy plemiennej, kt\u00f3r\u0105 programi\u015bci przekazuj\u0105 sobie z pokolenia na pokolenie, w ramach procesu nazywanym przez antropolog\u00f3w jako \"review kodu\". Troch\u0119 tutaj ironizuje, ale mam wiele szacunku dla pana Blocha i jego opracowania - pozwala nam nie wymy\u015bla\u0107 ka\u017cdorazowo ko\u0142a na nowo, a wi\u0119kszo\u015b\u0107 z porad jest naprawd\u0119 u\u017cyteczna i umo\u017cliwiaj\u0105ca pisanie lepszego kodu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6066,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-56.png\" alt=\"\" class=\"wp-image-6066\"\/><figcaption>Bo zawsze lepiej uczy\u0107 si\u0119 na cudzych b\u0142\u0119dach.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-56.png\" alt=\"\" class=\"wp-image-6066\"\/><figcaption>Bo zawsze lepiej uczy\u0107 si\u0119 na cudzych b\u0142\u0119dach.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dlaczego jednak pisz\u0119 o <em>Effective Java<\/em>? Z jakiego\u015b powodu Oracle zdecydowa\u0142o si\u0119 na swojego Java Magazine <a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition\">zamie\u015bci\u0107 jej zaadaptowany rozdzia\u0142<\/a>, dotycz\u0105cy powod\u00f3w, dla kt\u00f3rych warto rozwa\u017cy\u0107 kompozycje zamiast dziedziczenia. Nie wiem czy w \u015bwiecie programowania obiektowego w Javie jest bardziej oklepany temat - w momencie gdy sam j\u0119zyk i jego najbardziej zaanga\u017cowane community po drodze zd\u0105\u017cy\u0142o ju\u017c flirtowa\u0107 zar\u00f3wno z programowaniem funkcyjnym, a ostatnio coraz modniejsze jest m\u00f3wienie o mezaliansie z programowaniem zorientowanym na dane (Data-Oriented Programming). Okazuje si\u0119, \u017ce jest to jednak pewna banieczka, poniewa\u017c temat Dziedziczenie vs Kompozycja w dalszym ci\u0105gu rozgrzewa - na <a href=\"https:\/\/www.reddit.com\/r\/java\/\">javowym Reddicie<\/a> wygenerowa\u0142 on bowiem dyskusj\u0119 na <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">ponad 160 \u0142apek w g\u00f3r\u0119 i wi\u0119cej ni\u017c 65 komentarzy<\/a>, co jest rzadko spotykane w ramach tej spo\u0142eczno\u015bci. Niekt\u00f3re przyk\u0142ady w dyskusji s\u0105 na tyle interesuj\u0105ce, \u017ce polecam lektur\u0119 w\u0105tku - w odr\u00f3\u017cnieniu od Blocha, (kt\u00f3ry jak wspomnia\u0142em zatrzyma\u0142 si\u0119 na poziomie JDK 9) dyskusja kr\u0119ci si\u0119 bardziej w ko\u0142o tego, jak nowe dodatki do j\u0119zyka typu <em>sealed class<\/em> dok\u0142adaj\u0105 argument\u00f3w do tego starego jak programowanie obiektowe problemu.<\/p>\n","innerContent":["\n<p>Dlaczego jednak pisz\u0119 o <em>Effective Java<\/em>? Z jakiego\u015b powodu Oracle zdecydowa\u0142o si\u0119 na swojego Java Magazine <a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition\">zamie\u015bci\u0107 jej zaadaptowany rozdzia\u0142<\/a>, dotycz\u0105cy powod\u00f3w, dla kt\u00f3rych warto rozwa\u017cy\u0107 kompozycje zamiast dziedziczenia. Nie wiem czy w \u015bwiecie programowania obiektowego w Javie jest bardziej oklepany temat - w momencie gdy sam j\u0119zyk i jego najbardziej zaanga\u017cowane community po drodze zd\u0105\u017cy\u0142o ju\u017c flirtowa\u0107 zar\u00f3wno z programowaniem funkcyjnym, a ostatnio coraz modniejsze jest m\u00f3wienie o mezaliansie z programowaniem zorientowanym na dane (Data-Oriented Programming). Okazuje si\u0119, \u017ce jest to jednak pewna banieczka, poniewa\u017c temat Dziedziczenie vs Kompozycja w dalszym ci\u0105gu rozgrzewa - na <a href=\"https:\/\/www.reddit.com\/r\/java\/\">javowym Reddicie<\/a> wygenerowa\u0142 on bowiem dyskusj\u0119 na <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">ponad 160 \u0142apek w g\u00f3r\u0119 i wi\u0119cej ni\u017c 65 komentarzy<\/a>, co jest rzadko spotykane w ramach tej spo\u0142eczno\u015bci. Niekt\u00f3re przyk\u0142ady w dyskusji s\u0105 na tyle interesuj\u0105ce, \u017ce polecam lektur\u0119 w\u0105tku - w odr\u00f3\u017cnieniu od Blocha, (kt\u00f3ry jak wspomnia\u0142em zatrzyma\u0142 si\u0119 na poziomie JDK 9) dyskusja kr\u0119ci si\u0119 bardziej w ko\u0142o tego, jak nowe dodatki do j\u0119zyka typu <em>sealed class<\/em> dok\u0142adaj\u0105 argument\u00f3w do tego starego jak programowanie obiektowe problemu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":6067,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57.png\" alt=\"\" class=\"wp-image-6067\"\/><figcaption>Najm\u0105drzejsi po prostu nie dadz\u0105 wcisn\u0105\u0107 si\u0119 w ramy dw\u00f3jmy\u015blenia i \u015bwiadomie wybior\u0105 trzeci\u0105 drog\u0119<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/image-57.png\" alt=\"\" class=\"wp-image-6067\"\/><figcaption>Najm\u0105drzejsi po prostu nie dadz\u0105 wcisn\u0105\u0107 si\u0119 w ramy dw\u00f3jmy\u015blenia i \u015bwiadomie wybior\u0105 trzeci\u0105 drog\u0119<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition&#10;\">You should favor composition over inheritance in Java. Here\u2019s why.<\/a><\/li><li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">Reddit - Why you should favor composition over inheritance in Java (Joshua Bloch)<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/blogs.oracle.com\/javamagazine\/post\/java-inheritance-composition&#10;\">You should favor composition over inheritance in Java. Here\u2019s why.<\/a><\/li><li><a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/w7yj6g\/why_you_should_favor_composition_over_inheritance\/\">Reddit - Why you should favor composition over inheritance in Java (Joshua Bloch)<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9939","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=9939"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9939\/revisions"}],"predecessor-version":[{"id":10465,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9939\/revisions\/10465"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/8952"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=9939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=9939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=9939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}