{"id":10095,"date":"2021-08-19T14:16:39","date_gmt":"2021-08-19T12:16:39","guid":{"rendered":"https:\/\/vived.io\/frontend-thursday-vol-51\/"},"modified":"2022-09-19T13:16:39","modified_gmt":"2022-09-19T11:16:39","slug":"frontend-thursday-vol-51","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/","title":{"rendered":"Frontend Thursday vol. 51"},"content":{"rendered":"<h2 id=\"1-deno-1-13-implementuje-eksperymentalna-alternatywe-do-websocketow-oraz-serwer-http-2-0\" data-num=1>1. Deno 1.13 implementuje eksperymentaln\u0105 alternatyw\u0119 do WebSocket\u00f3w oraz serwer HTTP 2.0 \u200d<\/h2>\n<p>Zacznijmy od newsa, kt\u00f3ry jest co prawda pod frontend mocno \u201cnaci\u0105gni\u0119ty\u201d, ale obiecuj\u0119 si\u0119 ostatecznie wybroni\u0107 . Nie martwcie si\u0119, Tomek wraca dzi\u015b z urlopu, zaraz sko\u0144cz\u0105 si\u0119 wi\u0119c moje dziwne wrzuty i ju\u017c za tydzie\u0144 wr\u00f3cimy do normalnej edycji (cho\u0107 mo\u017ce w\u0142a\u015bciwie nie za tydzie\u0144, ale na razie ). W tej edycji jednak hejterzy mojego stylu pisania i Frontendowi Maksymali\u015bci\u2026<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\" alt=\"\" \/><\/figure>\n<p>No, ale przejd\u017amy do konkret\u00f3w. Ot\u00f3\u017c w zesz\u0142ym tygodniu swoj\u0105 premier\u0119 mia\u0142o nowe Deno. Ta alternatywa dla Node od jego oryginalnego tw\u00f3rcy (kt\u00f3ra <a href=\"https:\/\/deno.com\/blog\/the-deno-company\">pocz\u0105tkiem roku pozyska\u0142a inwestor\u00f3w<\/a> i og\u00f3lnie coraz \u015bmielej sobie poczyna) cechuje si\u0119 naprawd\u0119 \u201cbogatymi\u201d releasami. Nie inaczej jest z <a href=\"https:\/\/deno.com\/blog\/v1.13\">wersj\u0105 1.13.<\/a><\/p>\n<p>Poza standardow\u0105 aktualizacj\u0105 zale\u017cno\u015bci (m.in. do V8 9.3, kt\u00f3re opisywali\u015bmy tydzie\u0144 temu), Deno 1.13 zdecydowa\u0142o si\u0119 na eksperymentalne wsparcie WebSocketStream API. Jest to opracowywana przez zesp\u00f3\u0142 Google Chrome <a href=\"https:\/\/github.com\/ricea\/websocketstream-explainer\">alternatywa dla \u201czdarzeniowych\u201c WebSocket\u00f3w<\/a>, oparta o reaktywnywne strumienie <a href=\"https:\/\/github.com\/w3ctag\/design-reviews\/issues\/394\">i nie b\u0119d\u0105ca na razie standardem W3C<\/a> .<\/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_6128bafd2b571.png\" alt=\"\" \/><figcaption>Jak wida\u0107 &#8211; nie tylko Safari dziedziczy brzydkie praktyki z Internet Explorera<\/figcaption><\/figure>\n<p>Kolejnym ciekawym dodatkiem w nowej wersji Deno jest stabilizacja wprowadzonego w Deno 1.9 \u00a0natywnego API serwera HTTP\/2. Dzi\u0119ki temu Deno mo\u017ce dzia\u0142a\u0107 jako serwer dla ruchu HTTP\/1.1 i HTTP\/2 bez \u017cadnych dodatkowych bibliotek. W sam raz do u\u017cycia z Waszymi Backend-for-Frontendami. Aczkolwiek \u017ceby ostudzi\u0107 zapa\u0142 &#8211; \u00a0w \u0142apy wpad\u0142a mi ostatnio interesuj\u0105ca <a href=\"https:\/\/portswigger.net\/research\/http2\">krytyka HTTP\/2 jako takiego<\/a> &#8211; z\u0142o\u017cono\u015b\u0107 tego standardu w r\u0119kach niedo\u015bwiadczonych u\u017cytkownik\u00f3w potrafi wybuchn\u0105\u0107 w twarz, a ma\u0142o kto realnie potrafi go wykorzysta\u0107.<\/p>\n<p>Dobra, ale nie b\u0119dziemy tutaj wymienia\u0107 wszystkiego, co pojawi\u0142o si\u0119 w nowym Deno. Tak naprawd\u0119 przecie\u017c wykorzysta\u0142em okazj\u0119 wspomnianej premiery po to, \u017ceby podzieli\u0107 si\u0119 z Wami jedn\u0105 z moich ulubionych serii YouTubowych. Pewnie jak wielu z Was wie (w gronie prawie 600 tys. subskrybent\u00f3w na pewno znajd\u0105 si\u0119 jacy\u015b nasi czytelnicy), Google posiada kana\u0142 <a href=\"https:\/\/www.youtube.com\/c\/GoogleChromeDevelopers\">Google Chrome Developers<\/a>. \u015aledzenie go jest dosy\u0107 m\u0119cz\u0105ce, bo jest na nim masa spamu (Vived KeepUp dla wideo na YouTube, ktokolwiek?), ale og\u00f3lnie warto, bo mo\u017cna te\u017c znale\u017a\u0107 tam sporo pere\u0142ek. Jedn\u0105Jend\u0105 z nich jest <a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">seria HTTP 203<\/a>, prowadzona przez \u200b\u200bJake Archibalda oraz Surm\u0119 (go\u015b\u0107 rzeczywi\u015bcie si\u0119 tak przedstawia ). Jest to regularny zbi\u00f3r zaawansowanych materia\u0142\u00f3w o HTTP i programowaniu webowym. Nie znajdziecie w niej framework\u00f3w i bibliotek &#8211; raczej protoko\u0142y i standardy sieciowe. Je\u017celi kiedy\u015b chcieli\u015bcie zobaczy\u0107, jak dw\u00f3ch bardzo inteligentnychinteligentych in\u017cynier\u00f3w rozmawia o takich tematach jak usability URL czy Web Workery &#8211; i to ju\u017c przez 8 sezon\u00f3w (!) &#8211; HTTP 203 jest miejscem dla Was.<\/p>\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Deno - HTTP 203\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/SYkzk_j3yb0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p>A sk\u0105d tu powi\u0105zanie z Deno? Ot\u00f3\u017c <a href=\"https:\/\/www.youtube.com\/watch?v=SYkzk_j3yb0\">ostatni odcinek \u201cprogramu\u201d dotyczy\u0142 w\u0142a\u015bnie Deno<\/a>, gdzie prowadz\u0105cy pr\u00f3bowali wyt\u0142umaczy\u0107, dlaczego jest to interesuj\u0105ca technologia, kt\u00f3r\u0105 warto si\u0119 zainteresowa\u0107. Co prawda zniszczyli mi tym narracje &#8211; dopiero co twierdzi\u0142em, \u017ce nie zajmuj\u0105 si\u0119 konkretnymi technologiami. Zrobili to jednak na tyle porz\u0105dnie, \u017ce mam nadziej\u0119 wybaczycie mi pewn\u0105 niesp\u00f3jno\u015b\u0107 przekazu. Polecam serdecznie!<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\"><strong>\u0179r\u00f3d\u0142a<\/strong><\/h3>\n<ul>\n<li><a href=\"https:\/\/deno.com\/blog\/v1.13\">1.13 Release Notes | Deno Blog<\/a><\/li>\n<li><a href=\"https:\/\/portswigger.net\/research\/http2\">HTTP\/2: The Sequel is Always Worse<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">HTTP 203 Video Series<\/a><\/li>\n<\/ul>\n<h2 id=\"2-hades-nadchodzi-w-react-native-0-65\" data-num=2>2. Hades nadchodzi\u2026 w React Native 0.65 \u2620\ufe0f<\/h2>\n<p>Kontynuuj\u0105c w\u0105tek \u201cnie do ko\u0144ca frontendowych\u201d nowych wyda\u0144 &#8211; <a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">React Native 0.65<\/a>. Przygl\u0105dnijmy si\u0119, co przynosi<\/p>\n<p>Rzecz\u0105, kt\u00f3ra mnie osobi\u015bcie najbardziej intryguje w \u015bwiecie React Native jest Hermes jest maszyna wirtualna JavaScript od Facebooka zoptymalizowana bezpo\u015brednio pod React Native. To w\u0142a\u015bnie ona dosta\u0142a te\u017c najwi\u0119cej nowo\u015bci w obecnej edycji. Poza standardowymi dodatkami, kt\u00f3rymi chwali si\u0119 ka\u017cda nowa technologia (wsparcie dla M1 ), tym co przyci\u0105ga oko przy czytaniu \u201cnotatek z wydania\u201d jest nowy Garbage Collector &#8211; Hades (kto\u015b, kto wymy\u015bla Facebookowi nazwy powinien dosta\u0107 podwy\u017ck\u0119). Ten obiecuje znacznie kr\u00f3tsz\u0105 faz\u0119 \u201cstop-the-world\u201d podczas od\u015bmiecania. Zmniejsza te\u017c zu\u017cycie procesora, a co za tym idzie pewnie baterii telefonu.<\/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_6128bafdb5524.gif\" alt=\"\" \/><figcaption>Aczkolwiek czytaj\u0105c <a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">dokumentacj\u0119<\/a> mo\u017cna znale\u017a\u0107, \u017ce dzieje si\u0119 to kosztem du\u017co wi\u0119kszej ilo\u015bci struktur po\u015brednich, co pewnie prze\u0142o\u017cy si\u0119 na zu\u017cycia pami\u0119ci &#8211; chcia\u0142bym zobaczy\u0107 benchmark. Na pewno silnik sta\u0142 si\u0119 du\u017co bardziej skomplikowany.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<p>Opr\u00f3cz tego React Native przynosi te\u017c poprawki w \u201cdost\u0119pno\u015bci\u201d oraz aktualizacje zale\u017cno\u015bci. Tak\u017ce wydanie z gatunku &#8211; Not great, not terrible.<\/p>\n<p>W tym miejscu pozwol\u0119 sobie na ma\u0142e por\u00f3wnanie popularno\u015bci React Native z jego najwi\u0119kszym konkurentem &#8211; Flutterem. Mimo, \u017ce projekt od Google ci\u0105gle nie do\u015bcign\u0105\u0142 swojego \u201cpodpi\u0119tego\u201d pod popularnego React.js przeciwnika, to cho\u0107by \u015bledz\u0105c coroczny raport StackOverflow mo\u017cna zobaczy\u0107, \u017ce ta granica zaciera si\u0119 bardzo dynamicznie. W pytaniu o \u201cTechnologi\u0119, kt\u00f3r\u0105 programi\u015bci u\u017cywali w zesz\u0142ym roku\u201d, tegoroczna edycja pokazuje 14.51% vs 13.55% z przewag\u0105 dla React Native. Bior\u0105c jednak pod uwag\u0119, \u017ce pr\u00f3g wej\u015bcia dla Fluttera jest niepor\u00f3wnywalnie wi\u0119kszy &#8211; nie do\u015b\u0107, \u017ce nie mo\u017cna dzieli\u0107 kodu z najpopularniejszym frameworkiem webowym, to jeszcze trzeba nauczy\u0107 si\u0119 nowego j\u0119zyka (!) &#8211; szala wydaje si\u0119 powoli przechyla\u0107 w jego kierunku. Zobaczymy, co poka\u017ce przysz\u0142o\u015b\u0107, ja osobi\u015bcie chyba kibicuj\u0119 rozwi\u0105zaniu Google &#8211; React Native mia\u0142 swoje pi\u0119\u0107 minut, kt\u00f3rych niestety nie wykorzysta\u0142 za dobrze.<\/p>\n<p>A to w \u015bwiecie technologii grzech \u015bmiertelny.<\/p>\n<p><strong>\u0179r\u00f3d\u0142a<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">Announcing React Native 0.65<\/a><\/li>\n<li><a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">The Hades Garbage Collector<\/a><\/li>\n<\/ul>\n<h2 id=\"3-angular-planuje-pozbyc-sie-kompilatora-jit\" data-num=3>3. Angular planuje pozby\u0107 si\u0119 kompilatora JIT<\/h2>\n<p>Na koniec &#8211; <a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">pytanie<\/a>, kt\u00f3re maj\u0105 do Was wszystkich (no\u2026 powiedzmy tym siedz\u0105cym bli\u017cej maszyny wirtualnej) tw\u00f3rcy Angulara. Chc\u0105 bowiem oni wy\u0142uska\u0107 ostatnie przypadki, w kt\u00f3rych nie mo\u017cna stosowa\u0107 kompilatora Just-In-Time, \u017ceby by\u0107 w zupe\u0142no\u015bci przej\u015b\u0107 na kompilator Ahead-Of-Time.<\/p>\n<p>Tw\u00f3rcy t\u0142umacz\u0105 to tym, \u017ce chocia\u017c pocz\u0105tkowo JIT by\u0142 rozwi\u0105zaniem domy\u015blnym, oczkiem w g\u0142owie tw\u00f3rc\u00f3w zawsze by\u0142o AOT. Ze wzgl\u0119du na skomplikowanie ca\u0142ej inicjatywy doczekali\u015bmy si\u0119 jej p\u00f3\u017aniej ni\u017c standardowego JITa, ale oferuje wi\u0119cej mo\u017cliwo\u015bci poprawy nie tylko User Experience (szybsze \u0142adowanie aplikacji) oraz Development Experience (mo\u017cliwo\u015b\u0107 bardziej inkrementalnego podej\u015bcia do kompilacji). Po tym, jak w Angularze 9 AOT sta\u0142o si\u0119 rozwi\u0105zaniem domy\u015blnym, teraz tw\u00f3rcy ostatecznie chc\u0105 ubi\u0107 JITa.<\/p>\n<p>Nie chc\u0105 jednak wylewa\u0107 dziecka z k\u0105piel\u0105, dlatego te\u017c chc\u0105 dowiedzie\u0107 si\u0119 od spo\u0142eczno\u015bci, czy istniej\u0105 jakie\u015b przypadki brzegowe, kt\u00f3re nie dzia\u0142aj\u0105 w trybie Ahead-of-Time. W komentarzach mo\u017cecie znale\u017a\u0107 sporo ciekawych, do\u015b\u0107 unikalnych zastosowa\u0107 Angulara &#8211; je\u015bli jeste\u015bcie ciekawi do jakich dziwnych zastosowa\u0144 mo\u017cna u\u017cy\u0107 tego frameworka (typu dokumentacja pozwalaj\u0105ca na edycj\u0119 opisywanych w niej komponent\u00f3w w czasie rzeczywistym ).<\/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_6128bb0180dce.gif\" alt=\"\" \/><figcaption>Wed\u0142ug niekt\u00f3rych komentarzy, pr\u00f3ba usuni\u0119cia JITa i przej\u015bcia na AOT czasem wygl\u0105da w\u0142a\u015bnie tak.<\/figcaption><\/figure>\n<p>Zaczynaj\u0105 si\u0119 pojawia\u0107 te\u017c <a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">pierwsze informacje na temat Angulara 13<\/a>. Tydzie\u0144 temu pojawi\u0142 si\u0119 nowy preview (v13.0.0-next.1). Przynosi on dwie \u201c\u0142ami\u0105ce\u201d zmiany &#8211; po pierwsze dodano nowy typ o nazwie FormControlStatus. Jest to Unia wszystkich mo\u017cliwych statusu dla kontrolek formularza, dzi\u0119ki temu programi\u015bci nie b\u0119d\u0105 musieli bazowa\u0107 ju\u017c na zwracane przez nie stringach. Dodatkowo, lekko zmieniono parsowanie urli w niekt\u00f3rych przypadkach brzegowych. Tak jak wida\u0107, na razie nie za wiele ciekawego, aczkolwiek jestem pewien, \u017ce Angular 13 przyniesie du\u017co wi\u0119cej (ju\u017c zapowiadane s\u0105 te\u017c zmiany w `compiler-cli`).<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">Angular 13 begins to take shape<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">RFC: Exploration of use-cases for Angular JIT compilation mode<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>W dzisiejszej edycji mamy dla Was nowe Deno (dlaczego piszemy o alternatywie Node w frontendowym przegl\u0105dzie &#8211; szczeg\u00f3\u0142y w \u015brodku), nowy React Native, a na samym ko\u0144cu &#8211; bardzo ciekawa architektoniczna zagwozdka Tw\u00f3rc\u00f3w Angulara. 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":[273],"tags":[],"class_list":["post-10095","post","type-post","status-publish","format-standard","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"estimated_reading_time":"6"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursday vol. 51 - 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\/frontend-thursday-vol-51\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursday vol. 51 - Vived\" \/>\n<meta property=\"og:description\" content=\"W dzisiejszej edycji mamy dla Was nowe Deno (dlaczego piszemy o alternatywie Node w frontendowym przegl\u0105dzie - szczeg\u00f3\u0142y w \u015brodku), nowy React Native, a na samym ko\u0144cu - bardzo ciekawa architektoniczna zagwozdka Tw\u00f3rc\u00f3w Angulara. Zapraszamy do lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-19T12:16:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.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\/frontend-thursday-vol-51\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Frontend Thursday vol. 51\",\"datePublished\":\"2021-08-19T12:16:39+00:00\",\"dateModified\":\"2022-09-19T11:16:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\"},\"wordCount\":1279,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\",\"url\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\",\"name\":\"Frontend Thursday vol. 51 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\",\"datePublished\":\"2021-08-19T12:16:39+00:00\",\"dateModified\":\"2022-09-19T11:16:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursday vol. 51\"}]},{\"@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":"Frontend Thursday vol. 51 - 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\/frontend-thursday-vol-51\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursday vol. 51 - Vived","og_description":"W dzisiejszej edycji mamy dla Was nowe Deno (dlaczego piszemy o alternatywie Node w frontendowym przegl\u0105dzie - szczeg\u00f3\u0142y w \u015brodku), nowy React Native, a na samym ko\u0144cu - bardzo ciekawa architektoniczna zagwozdka Tw\u00f3rc\u00f3w Angulara. Zapraszamy do lektury!","og_url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/","og_site_name":"Vived","article_published_time":"2021-08-19T12:16:39+00:00","article_modified_time":"2022-09-19T11:16:39+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.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\/frontend-thursday-vol-51\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Frontend Thursday vol. 51","datePublished":"2021-08-19T12:16:39+00:00","dateModified":"2022-09-19T11:16:39+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/"},"wordCount":1279,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png","articleSection":["Frontend"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/","url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/","name":"Frontend Thursday vol. 51 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png","datePublished":"2021-08-19T12:16:39+00:00","dateModified":"2022-09-19T11:16:39+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-51\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursday vol. 51"}]},{"@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-deno-113-implementuje-eksperymentaln%C4%85-alternatyw%C4%99-do-websocket%C3%B3w-oraz-serwer-http-20-%F0%9F%A7%91%E2%80%8D%F0%9F%94%AC\">1. Deno 1.13 implementuje eksperymentaln\u0105 alternatyw\u0119 do WebSocket\u00f3w oraz serwer HTTP 2.0 \u200d<\/h2>\nZacznijmy od newsa, kt\u00f3ry jest co prawda pod frontend mocno \u201cnaci\u0105gni\u0119ty\u201d, ale obiecuj\u0119 si\u0119 ostatecznie wybroni\u0107 . Nie martwcie si\u0119, Tomek wraca dzi\u015b z urlopu, zaraz sko\u0144cz\u0105 si\u0119 wi\u0119c moje dziwne wrzuty i ju\u017c za tydzie\u0144 wr\u00f3cimy do normalnej edycji (cho\u0107 mo\u017ce w\u0142a\u015bciwie nie za tydzie\u0144, ale na razie ). W tej edycji jednak hejterzy mojego stylu pisania i Frontendowi Maksymali\u015bci\u2026\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\" alt=\"\" \/><\/figure>\nNo, ale przejd\u017amy do konkret\u00f3w. Ot\u00f3\u017c w zesz\u0142ym tygodniu swoj\u0105 premier\u0119 mia\u0142o nowe Deno. Ta alternatywa dla Node od jego oryginalnego tw\u00f3rcy (kt\u00f3ra <a href=\"https:\/\/deno.com\/blog\/the-deno-company\">pocz\u0105tkiem roku pozyska\u0142a inwestor\u00f3w<\/a> i og\u00f3lnie coraz \u015bmielej sobie poczyna) cechuje si\u0119 naprawd\u0119 \u201cbogatymi\u201d releasami. Nie inaczej jest z <a href=\"https:\/\/deno.com\/blog\/v1.13\">wersj\u0105 1.13.<\/a>\n\nPoza standardow\u0105 aktualizacj\u0105 zale\u017cno\u015bci (m.in. do V8 9.3, kt\u00f3re opisywali\u015bmy tydzie\u0144 temu), Deno 1.13 zdecydowa\u0142o si\u0119 na eksperymentalne wsparcie WebSocketStream API. Jest to opracowywana przez zesp\u00f3\u0142 Google Chrome <a href=\"https:\/\/github.com\/ricea\/websocketstream-explainer\">alternatywa dla \u201czdarzeniowych\u201c WebSocket\u00f3w<\/a>, oparta o reaktywnywne strumienie <a href=\"https:\/\/github.com\/w3ctag\/design-reviews\/issues\/394\">i nie b\u0119d\u0105ca na razie standardem W3C<\/a> .\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_6128bafd2b571.png\" alt=\"\" \/>\n<figcaption>Jak wida\u0107 - nie tylko Safari dziedziczy brzydkie praktyki z Internet Explorera<\/figcaption><\/figure>\nKolejnym ciekawym dodatkiem w nowej wersji Deno jest stabilizacja wprowadzonego w Deno 1.9 \u00a0natywnego API serwera HTTP\/2. Dzi\u0119ki temu Deno mo\u017ce dzia\u0142a\u0107 jako serwer dla ruchu HTTP\/1.1 i HTTP\/2 bez \u017cadnych dodatkowych bibliotek. W sam raz do u\u017cycia z Waszymi Backend-for-Frontendami. Aczkolwiek \u017ceby ostudzi\u0107 zapa\u0142 - \u00a0w \u0142apy wpad\u0142a mi ostatnio interesuj\u0105ca <a href=\"https:\/\/portswigger.net\/research\/http2\">krytyka HTTP\/2 jako takiego<\/a> - z\u0142o\u017cono\u015b\u0107 tego standardu w r\u0119kach niedo\u015bwiadczonych u\u017cytkownik\u00f3w potrafi wybuchn\u0105\u0107 w twarz, a ma\u0142o kto realnie potrafi go wykorzysta\u0107.\n\nDobra, ale nie b\u0119dziemy tutaj wymienia\u0107 wszystkiego, co pojawi\u0142o si\u0119 w nowym Deno. Tak naprawd\u0119 przecie\u017c wykorzysta\u0142em okazj\u0119 wspomnianej premiery po to, \u017ceby podzieli\u0107 si\u0119 z Wami jedn\u0105 z moich ulubionych serii YouTubowych. Pewnie jak wielu z Was wie (w gronie prawie 600 tys. subskrybent\u00f3w na pewno znajd\u0105 si\u0119 jacy\u015b nasi czytelnicy), Google posiada kana\u0142 <a href=\"https:\/\/www.youtube.com\/c\/GoogleChromeDevelopers\">Google Chrome Developers<\/a>. \u015aledzenie go jest dosy\u0107 m\u0119cz\u0105ce, bo jest na nim masa spamu (Vived KeepUp dla wideo na YouTube, ktokolwiek?), ale og\u00f3lnie warto, bo mo\u017cna te\u017c znale\u017a\u0107 tam sporo pere\u0142ek. Jedn\u0105Jend\u0105 z nich jest <a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">seria HTTP 203<\/a>, prowadzona przez \u200b\u200bJake Archibalda oraz Surm\u0119 (go\u015b\u0107 rzeczywi\u015bcie si\u0119 tak przedstawia ). Jest to regularny zbi\u00f3r zaawansowanych materia\u0142\u00f3w o HTTP i programowaniu webowym. Nie znajdziecie w niej framework\u00f3w i bibliotek - raczej protoko\u0142y i standardy sieciowe. Je\u017celi kiedy\u015b chcieli\u015bcie zobaczy\u0107, jak dw\u00f3ch bardzo inteligentnychinteligentych in\u017cynier\u00f3w rozmawia o takich tematach jak usability URL czy Web Workery - i to ju\u017c przez 8 sezon\u00f3w (!) - HTTP 203 jest miejscem dla Was.\n\nhttps:\/\/www.youtube.com\/watch?v=SYkzk_j3yb0\n\nA sk\u0105d tu powi\u0105zanie z Deno? Ot\u00f3\u017c <a href=\"https:\/\/www.youtube.com\/watch?v=SYkzk_j3yb0\">ostatni odcinek \u201cprogramu\u201d dotyczy\u0142 w\u0142a\u015bnie Deno<\/a>, gdzie prowadz\u0105cy pr\u00f3bowali wyt\u0142umaczy\u0107, dlaczego jest to interesuj\u0105ca technologia, kt\u00f3r\u0105 warto si\u0119 zainteresowa\u0107. Co prawda zniszczyli mi tym narracje - dopiero co twierdzi\u0142em, \u017ce nie zajmuj\u0105 si\u0119 konkretnymi technologiami. Zrobili to jednak na tyle porz\u0105dnie, \u017ce mam nadziej\u0119 wybaczycie mi pewn\u0105 niesp\u00f3jno\u015b\u0107 przekazu. Polecam serdecznie!\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\"><strong>\u0179r\u00f3d\u0142a<\/strong><\/h3>\n<ul>\n \t<li><a href=\"https:\/\/deno.com\/blog\/v1.13\">1.13 Release Notes | Deno Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/portswigger.net\/research\/http2\">HTTP\/2: The Sequel is Always Worse<\/a><\/li>\n \t<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">HTTP 203 Video Series<\/a><\/li>\n<\/ul>\n<h2 id=\"2-hades-nadchodzi%E2%80%A6-w-react-native-065-%E2%98%A0%EF%B8%8F\">2. Hades nadchodzi\u2026 w React Native 0.65 \u2620\ufe0f<\/h2>\nKontynuuj\u0105c w\u0105tek \u201cnie do ko\u0144ca frontendowych\u201d nowych wyda\u0144 - <a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">React Native 0.65<\/a>. Przygl\u0105dnijmy si\u0119, co przynosi\n\nRzecz\u0105, kt\u00f3ra mnie osobi\u015bcie najbardziej intryguje w \u015bwiecie React Native jest Hermes jest maszyna wirtualna JavaScript od Facebooka zoptymalizowana bezpo\u015brednio pod React Native. To w\u0142a\u015bnie ona dosta\u0142a te\u017c najwi\u0119cej nowo\u015bci w obecnej edycji. Poza standardowymi dodatkami, kt\u00f3rymi chwali si\u0119 ka\u017cda nowa technologia (wsparcie dla M1 ), tym co przyci\u0105ga oko przy czytaniu \u201cnotatek z wydania\u201d jest nowy Garbage Collector - Hades (kto\u015b, kto wymy\u015bla Facebookowi nazwy powinien dosta\u0107 podwy\u017ck\u0119). Ten obiecuje znacznie kr\u00f3tsz\u0105 faz\u0119 \u201cstop-the-world\u201d podczas od\u015bmiecania. Zmniejsza te\u017c zu\u017cycie procesora, a co za tym idzie pewnie baterii telefonu.\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_6128bafdb5524.gif\" alt=\"\" \/>\n\n<figcaption>Aczkolwiek czytaj\u0105c <a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">dokumentacj\u0119<\/a> mo\u017cna znale\u017a\u0107, \u017ce dzieje si\u0119 to kosztem du\u017co wi\u0119kszej ilo\u015bci struktur po\u015brednich, co pewnie prze\u0142o\u017cy si\u0119 na zu\u017cycia pami\u0119ci - chcia\u0142bym zobaczy\u0107 benchmark. Na pewno silnik sta\u0142 si\u0119 du\u017co bardziej skomplikowany.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\nOpr\u00f3cz tego React Native przynosi te\u017c poprawki w \u201cdost\u0119pno\u015bci\u201d oraz aktualizacje zale\u017cno\u015bci. Tak\u017ce wydanie z gatunku - Not great, not terrible.\n\nW tym miejscu pozwol\u0119 sobie na ma\u0142e por\u00f3wnanie popularno\u015bci React Native z jego najwi\u0119kszym konkurentem - Flutterem. Mimo, \u017ce projekt od Google ci\u0105gle nie do\u015bcign\u0105\u0142 swojego \u201cpodpi\u0119tego\u201d pod popularnego React.js przeciwnika, to cho\u0107by \u015bledz\u0105c coroczny raport StackOverflow mo\u017cna zobaczy\u0107, \u017ce ta granica zaciera si\u0119 bardzo dynamicznie. W pytaniu o \u201cTechnologi\u0119, kt\u00f3r\u0105 programi\u015bci u\u017cywali w zesz\u0142ym roku\u201d, tegoroczna edycja pokazuje 14.51% vs 13.55% z przewag\u0105 dla React Native. Bior\u0105c jednak pod uwag\u0119, \u017ce pr\u00f3g wej\u015bcia dla Fluttera jest niepor\u00f3wnywalnie wi\u0119kszy - nie do\u015b\u0107, \u017ce nie mo\u017cna dzieli\u0107 kodu z najpopularniejszym frameworkiem webowym, to jeszcze trzeba nauczy\u0107 si\u0119 nowego j\u0119zyka (!) - szala wydaje si\u0119 powoli przechyla\u0107 w jego kierunku. Zobaczymy, co poka\u017ce przysz\u0142o\u015b\u0107, ja osobi\u015bcie chyba kibicuj\u0119 rozwi\u0105zaniu Google - React Native mia\u0142 swoje pi\u0119\u0107 minut, kt\u00f3rych niestety nie wykorzysta\u0142 za dobrze.\n\nA to w \u015bwiecie technologii grzech \u015bmiertelny.\n\n<strong>\u0179r\u00f3d\u0142a<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">Announcing React Native 0.65<\/a><\/li>\n \t<li><a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">The Hades Garbage Collector<\/a><\/li>\n<\/ul>\n<h2 id=\"3-angular-planuje-pozby%C4%87-si%C4%99-kompilatora-jit-%F0%9F%94%AA\">3. Angular planuje pozby\u0107 si\u0119 kompilatora JIT<\/h2>\nNa koniec - <a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">pytanie<\/a>, kt\u00f3re maj\u0105 do Was wszystkich (no\u2026 powiedzmy tym siedz\u0105cym bli\u017cej maszyny wirtualnej) tw\u00f3rcy Angulara. Chc\u0105 bowiem oni wy\u0142uska\u0107 ostatnie przypadki, w kt\u00f3rych nie mo\u017cna stosowa\u0107 kompilatora Just-In-Time, \u017ceby by\u0107 w zupe\u0142no\u015bci przej\u015b\u0107 na kompilator Ahead-Of-Time.\n\nTw\u00f3rcy t\u0142umacz\u0105 to tym, \u017ce chocia\u017c pocz\u0105tkowo JIT by\u0142 rozwi\u0105zaniem domy\u015blnym, oczkiem w g\u0142owie tw\u00f3rc\u00f3w zawsze by\u0142o AOT. Ze wzgl\u0119du na skomplikowanie ca\u0142ej inicjatywy doczekali\u015bmy si\u0119 jej p\u00f3\u017aniej ni\u017c standardowego JITa, ale oferuje wi\u0119cej mo\u017cliwo\u015bci poprawy nie tylko User Experience (szybsze \u0142adowanie aplikacji) oraz Development Experience (mo\u017cliwo\u015b\u0107 bardziej inkrementalnego podej\u015bcia do kompilacji). Po tym, jak w Angularze 9 AOT sta\u0142o si\u0119 rozwi\u0105zaniem domy\u015blnym, teraz tw\u00f3rcy ostatecznie chc\u0105 ubi\u0107 JITa.\n\nNie chc\u0105 jednak wylewa\u0107 dziecka z k\u0105piel\u0105, dlatego te\u017c chc\u0105 dowiedzie\u0107 si\u0119 od spo\u0142eczno\u015bci, czy istniej\u0105 jakie\u015b przypadki brzegowe, kt\u00f3re nie dzia\u0142aj\u0105 w trybie Ahead-of-Time. W komentarzach mo\u017cecie znale\u017a\u0107 sporo ciekawych, do\u015b\u0107 unikalnych zastosowa\u0107 Angulara - je\u015bli jeste\u015bcie ciekawi do jakich dziwnych zastosowa\u0144 mo\u017cna u\u017cy\u0107 tego frameworka (typu dokumentacja pozwalaj\u0105ca na edycj\u0119 opisywanych w niej komponent\u00f3w w czasie rzeczywistym ).\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_6128bb0180dce.gif\" alt=\"\" \/>\n\n<figcaption>Wed\u0142ug niekt\u00f3rych komentarzy, pr\u00f3ba usuni\u0119cia JITa i przej\u015bcia na AOT czasem wygl\u0105da w\u0142a\u015bnie tak.<\/figcaption><\/figure>\nZaczynaj\u0105 si\u0119 pojawia\u0107 te\u017c <a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">pierwsze informacje na temat Angulara 13<\/a>. Tydzie\u0144 temu pojawi\u0142 si\u0119 nowy preview (v13.0.0-next.1). Przynosi on dwie \u201c\u0142ami\u0105ce\u201d zmiany - po pierwsze dodano nowy typ o nazwie FormControlStatus. Jest to Unia wszystkich mo\u017cliwych statusu dla kontrolek formularza, dzi\u0119ki temu programi\u015bci nie b\u0119d\u0105 musieli bazowa\u0107 ju\u017c na zwracane przez nie stringach. Dodatkowo, lekko zmieniono parsowanie urli w niekt\u00f3rych przypadkach brzegowych. Tak jak wida\u0107, na razie nie za wiele ciekawego, aczkolwiek jestem pewien, \u017ce Angular 13 przyniesie du\u017co wi\u0119cej (ju\u017c zapowiadane s\u0105 te\u017c zmiany w `compiler-cli`).\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">Angular 13 begins to take shape<\/a><\/li>\n \t<li><a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">RFC: Exploration of use-cases for Angular JIT compilation mode<\/a><\/li>\n<\/ul>","innerContent":["<h2 id=\"1-deno-113-implementuje-eksperymentaln%C4%85-alternatyw%C4%99-do-websocket%C3%B3w-oraz-serwer-http-20-%F0%9F%A7%91%E2%80%8D%F0%9F%94%AC\">1. Deno 1.13 implementuje eksperymentaln\u0105 alternatyw\u0119 do WebSocket\u00f3w oraz serwer HTTP 2.0 \u200d<\/h2>\nZacznijmy od newsa, kt\u00f3ry jest co prawda pod frontend mocno \u201cnaci\u0105gni\u0119ty\u201d, ale obiecuj\u0119 si\u0119 ostatecznie wybroni\u0107 . Nie martwcie si\u0119, Tomek wraca dzi\u015b z urlopu, zaraz sko\u0144cz\u0105 si\u0119 wi\u0119c moje dziwne wrzuty i ju\u017c za tydzie\u0144 wr\u00f3cimy do normalnej edycji (cho\u0107 mo\u017ce w\u0142a\u015bciwie nie za tydzie\u0144, ale na razie ). W tej edycji jednak hejterzy mojego stylu pisania i Frontendowi Maksymali\u015bci\u2026\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_6128bafceb94f.png\" alt=\"\" \/><\/figure>\nNo, ale przejd\u017amy do konkret\u00f3w. Ot\u00f3\u017c w zesz\u0142ym tygodniu swoj\u0105 premier\u0119 mia\u0142o nowe Deno. Ta alternatywa dla Node od jego oryginalnego tw\u00f3rcy (kt\u00f3ra <a href=\"https:\/\/deno.com\/blog\/the-deno-company\">pocz\u0105tkiem roku pozyska\u0142a inwestor\u00f3w<\/a> i og\u00f3lnie coraz \u015bmielej sobie poczyna) cechuje si\u0119 naprawd\u0119 \u201cbogatymi\u201d releasami. Nie inaczej jest z <a href=\"https:\/\/deno.com\/blog\/v1.13\">wersj\u0105 1.13.<\/a>\n\nPoza standardow\u0105 aktualizacj\u0105 zale\u017cno\u015bci (m.in. do V8 9.3, kt\u00f3re opisywali\u015bmy tydzie\u0144 temu), Deno 1.13 zdecydowa\u0142o si\u0119 na eksperymentalne wsparcie WebSocketStream API. Jest to opracowywana przez zesp\u00f3\u0142 Google Chrome <a href=\"https:\/\/github.com\/ricea\/websocketstream-explainer\">alternatywa dla \u201czdarzeniowych\u201c WebSocket\u00f3w<\/a>, oparta o reaktywnywne strumienie <a href=\"https:\/\/github.com\/w3ctag\/design-reviews\/issues\/394\">i nie b\u0119d\u0105ca na razie standardem W3C<\/a> .\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_6128bafd2b571.png\" alt=\"\" \/>\n<figcaption>Jak wida\u0107 - nie tylko Safari dziedziczy brzydkie praktyki z Internet Explorera<\/figcaption><\/figure>\nKolejnym ciekawym dodatkiem w nowej wersji Deno jest stabilizacja wprowadzonego w Deno 1.9 \u00a0natywnego API serwera HTTP\/2. Dzi\u0119ki temu Deno mo\u017ce dzia\u0142a\u0107 jako serwer dla ruchu HTTP\/1.1 i HTTP\/2 bez \u017cadnych dodatkowych bibliotek. W sam raz do u\u017cycia z Waszymi Backend-for-Frontendami. Aczkolwiek \u017ceby ostudzi\u0107 zapa\u0142 - \u00a0w \u0142apy wpad\u0142a mi ostatnio interesuj\u0105ca <a href=\"https:\/\/portswigger.net\/research\/http2\">krytyka HTTP\/2 jako takiego<\/a> - z\u0142o\u017cono\u015b\u0107 tego standardu w r\u0119kach niedo\u015bwiadczonych u\u017cytkownik\u00f3w potrafi wybuchn\u0105\u0107 w twarz, a ma\u0142o kto realnie potrafi go wykorzysta\u0107.\n\nDobra, ale nie b\u0119dziemy tutaj wymienia\u0107 wszystkiego, co pojawi\u0142o si\u0119 w nowym Deno. Tak naprawd\u0119 przecie\u017c wykorzysta\u0142em okazj\u0119 wspomnianej premiery po to, \u017ceby podzieli\u0107 si\u0119 z Wami jedn\u0105 z moich ulubionych serii YouTubowych. Pewnie jak wielu z Was wie (w gronie prawie 600 tys. subskrybent\u00f3w na pewno znajd\u0105 si\u0119 jacy\u015b nasi czytelnicy), Google posiada kana\u0142 <a href=\"https:\/\/www.youtube.com\/c\/GoogleChromeDevelopers\">Google Chrome Developers<\/a>. \u015aledzenie go jest dosy\u0107 m\u0119cz\u0105ce, bo jest na nim masa spamu (Vived KeepUp dla wideo na YouTube, ktokolwiek?), ale og\u00f3lnie warto, bo mo\u017cna te\u017c znale\u017a\u0107 tam sporo pere\u0142ek. Jedn\u0105Jend\u0105 z nich jest <a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">seria HTTP 203<\/a>, prowadzona przez \u200b\u200bJake Archibalda oraz Surm\u0119 (go\u015b\u0107 rzeczywi\u015bcie si\u0119 tak przedstawia ). Jest to regularny zbi\u00f3r zaawansowanych materia\u0142\u00f3w o HTTP i programowaniu webowym. Nie znajdziecie w niej framework\u00f3w i bibliotek - raczej protoko\u0142y i standardy sieciowe. Je\u017celi kiedy\u015b chcieli\u015bcie zobaczy\u0107, jak dw\u00f3ch bardzo inteligentnychinteligentych in\u017cynier\u00f3w rozmawia o takich tematach jak usability URL czy Web Workery - i to ju\u017c przez 8 sezon\u00f3w (!) - HTTP 203 jest miejscem dla Was.\n\nhttps:\/\/www.youtube.com\/watch?v=SYkzk_j3yb0\n\nA sk\u0105d tu powi\u0105zanie z Deno? Ot\u00f3\u017c <a href=\"https:\/\/www.youtube.com\/watch?v=SYkzk_j3yb0\">ostatni odcinek \u201cprogramu\u201d dotyczy\u0142 w\u0142a\u015bnie Deno<\/a>, gdzie prowadz\u0105cy pr\u00f3bowali wyt\u0142umaczy\u0107, dlaczego jest to interesuj\u0105ca technologia, kt\u00f3r\u0105 warto si\u0119 zainteresowa\u0107. Co prawda zniszczyli mi tym narracje - dopiero co twierdzi\u0142em, \u017ce nie zajmuj\u0105 si\u0119 konkretnymi technologiami. Zrobili to jednak na tyle porz\u0105dnie, \u017ce mam nadziej\u0119 wybaczycie mi pewn\u0105 niesp\u00f3jno\u015b\u0107 przekazu. Polecam serdecznie!\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\"><strong>\u0179r\u00f3d\u0142a<\/strong><\/h3>\n<ul>\n \t<li><a href=\"https:\/\/deno.com\/blog\/v1.13\">1.13 Release Notes | Deno Blog<\/a><\/li>\n \t<li><a href=\"https:\/\/portswigger.net\/research\/http2\">HTTP\/2: The Sequel is Always Worse<\/a><\/li>\n \t<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PLNYkxOF6rcIAKIQFsNbV0JDws_G_bnNo9\">HTTP 203 Video Series<\/a><\/li>\n<\/ul>\n<h2 id=\"2-hades-nadchodzi%E2%80%A6-w-react-native-065-%E2%98%A0%EF%B8%8F\">2. Hades nadchodzi\u2026 w React Native 0.65 \u2620\ufe0f<\/h2>\nKontynuuj\u0105c w\u0105tek \u201cnie do ko\u0144ca frontendowych\u201d nowych wyda\u0144 - <a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">React Native 0.65<\/a>. Przygl\u0105dnijmy si\u0119, co przynosi\n\nRzecz\u0105, kt\u00f3ra mnie osobi\u015bcie najbardziej intryguje w \u015bwiecie React Native jest Hermes jest maszyna wirtualna JavaScript od Facebooka zoptymalizowana bezpo\u015brednio pod React Native. To w\u0142a\u015bnie ona dosta\u0142a te\u017c najwi\u0119cej nowo\u015bci w obecnej edycji. Poza standardowymi dodatkami, kt\u00f3rymi chwali si\u0119 ka\u017cda nowa technologia (wsparcie dla M1 ), tym co przyci\u0105ga oko przy czytaniu \u201cnotatek z wydania\u201d jest nowy Garbage Collector - Hades (kto\u015b, kto wymy\u015bla Facebookowi nazwy powinien dosta\u0107 podwy\u017ck\u0119). Ten obiecuje znacznie kr\u00f3tsz\u0105 faz\u0119 \u201cstop-the-world\u201d podczas od\u015bmiecania. Zmniejsza te\u017c zu\u017cycie procesora, a co za tym idzie pewnie baterii telefonu.\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_6128bafdb5524.gif\" alt=\"\" \/>\n\n<figcaption>Aczkolwiek czytaj\u0105c <a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">dokumentacj\u0119<\/a> mo\u017cna znale\u017a\u0107, \u017ce dzieje si\u0119 to kosztem du\u017co wi\u0119kszej ilo\u015bci struktur po\u015brednich, co pewnie prze\u0142o\u017cy si\u0119 na zu\u017cycia pami\u0119ci - chcia\u0142bym zobaczy\u0107 benchmark. Na pewno silnik sta\u0142 si\u0119 du\u017co bardziej skomplikowany.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\nOpr\u00f3cz tego React Native przynosi te\u017c poprawki w \u201cdost\u0119pno\u015bci\u201d oraz aktualizacje zale\u017cno\u015bci. Tak\u017ce wydanie z gatunku - Not great, not terrible.\n\nW tym miejscu pozwol\u0119 sobie na ma\u0142e por\u00f3wnanie popularno\u015bci React Native z jego najwi\u0119kszym konkurentem - Flutterem. Mimo, \u017ce projekt od Google ci\u0105gle nie do\u015bcign\u0105\u0142 swojego \u201cpodpi\u0119tego\u201d pod popularnego React.js przeciwnika, to cho\u0107by \u015bledz\u0105c coroczny raport StackOverflow mo\u017cna zobaczy\u0107, \u017ce ta granica zaciera si\u0119 bardzo dynamicznie. W pytaniu o \u201cTechnologi\u0119, kt\u00f3r\u0105 programi\u015bci u\u017cywali w zesz\u0142ym roku\u201d, tegoroczna edycja pokazuje 14.51% vs 13.55% z przewag\u0105 dla React Native. Bior\u0105c jednak pod uwag\u0119, \u017ce pr\u00f3g wej\u015bcia dla Fluttera jest niepor\u00f3wnywalnie wi\u0119kszy - nie do\u015b\u0107, \u017ce nie mo\u017cna dzieli\u0107 kodu z najpopularniejszym frameworkiem webowym, to jeszcze trzeba nauczy\u0107 si\u0119 nowego j\u0119zyka (!) - szala wydaje si\u0119 powoli przechyla\u0107 w jego kierunku. Zobaczymy, co poka\u017ce przysz\u0142o\u015b\u0107, ja osobi\u015bcie chyba kibicuj\u0119 rozwi\u0105zaniu Google - React Native mia\u0142 swoje pi\u0119\u0107 minut, kt\u00f3rych niestety nie wykorzysta\u0142 za dobrze.\n\nA to w \u015bwiecie technologii grzech \u015bmiertelny.\n\n<strong>\u0179r\u00f3d\u0142a<\/strong>\n<ul>\n \t<li><a href=\"https:\/\/reactnative.dev\/blog\/2021\/08\/17\/version-065\">Announcing React Native 0.65<\/a><\/li>\n \t<li><a href=\"https:\/\/hermesengine.dev\/docs\/hades\/\">The Hades Garbage Collector<\/a><\/li>\n<\/ul>\n<h2 id=\"3-angular-planuje-pozby%C4%87-si%C4%99-kompilatora-jit-%F0%9F%94%AA\">3. Angular planuje pozby\u0107 si\u0119 kompilatora JIT<\/h2>\nNa koniec - <a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">pytanie<\/a>, kt\u00f3re maj\u0105 do Was wszystkich (no\u2026 powiedzmy tym siedz\u0105cym bli\u017cej maszyny wirtualnej) tw\u00f3rcy Angulara. Chc\u0105 bowiem oni wy\u0142uska\u0107 ostatnie przypadki, w kt\u00f3rych nie mo\u017cna stosowa\u0107 kompilatora Just-In-Time, \u017ceby by\u0107 w zupe\u0142no\u015bci przej\u015b\u0107 na kompilator Ahead-Of-Time.\n\nTw\u00f3rcy t\u0142umacz\u0105 to tym, \u017ce chocia\u017c pocz\u0105tkowo JIT by\u0142 rozwi\u0105zaniem domy\u015blnym, oczkiem w g\u0142owie tw\u00f3rc\u00f3w zawsze by\u0142o AOT. Ze wzgl\u0119du na skomplikowanie ca\u0142ej inicjatywy doczekali\u015bmy si\u0119 jej p\u00f3\u017aniej ni\u017c standardowego JITa, ale oferuje wi\u0119cej mo\u017cliwo\u015bci poprawy nie tylko User Experience (szybsze \u0142adowanie aplikacji) oraz Development Experience (mo\u017cliwo\u015b\u0107 bardziej inkrementalnego podej\u015bcia do kompilacji). Po tym, jak w Angularze 9 AOT sta\u0142o si\u0119 rozwi\u0105zaniem domy\u015blnym, teraz tw\u00f3rcy ostatecznie chc\u0105 ubi\u0107 JITa.\n\nNie chc\u0105 jednak wylewa\u0107 dziecka z k\u0105piel\u0105, dlatego te\u017c chc\u0105 dowiedzie\u0107 si\u0119 od spo\u0142eczno\u015bci, czy istniej\u0105 jakie\u015b przypadki brzegowe, kt\u00f3re nie dzia\u0142aj\u0105 w trybie Ahead-of-Time. W komentarzach mo\u017cecie znale\u017a\u0107 sporo ciekawych, do\u015b\u0107 unikalnych zastosowa\u0107 Angulara - je\u015bli jeste\u015bcie ciekawi do jakich dziwnych zastosowa\u0144 mo\u017cna u\u017cy\u0107 tego frameworka (typu dokumentacja pozwalaj\u0105ca na edycj\u0119 opisywanych w niej komponent\u00f3w w czasie rzeczywistym ).\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_6128bb0180dce.gif\" alt=\"\" \/>\n\n<figcaption>Wed\u0142ug niekt\u00f3rych komentarzy, pr\u00f3ba usuni\u0119cia JITa i przej\u015bcia na AOT czasem wygl\u0105da w\u0142a\u015bnie tak.<\/figcaption><\/figure>\nZaczynaj\u0105 si\u0119 pojawia\u0107 te\u017c <a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">pierwsze informacje na temat Angulara 13<\/a>. Tydzie\u0144 temu pojawi\u0142 si\u0119 nowy preview (v13.0.0-next.1). Przynosi on dwie \u201c\u0142ami\u0105ce\u201d zmiany - po pierwsze dodano nowy typ o nazwie FormControlStatus. Jest to Unia wszystkich mo\u017cliwych statusu dla kontrolek formularza, dzi\u0119ki temu programi\u015bci nie b\u0119d\u0105 musieli bazowa\u0107 ju\u017c na zwracane przez nie stringach. Dodatkowo, lekko zmieniono parsowanie urli w niekt\u00f3rych przypadkach brzegowych. Tak jak wida\u0107, na razie nie za wiele ciekawego, aczkolwiek jestem pewien, \u017ce Angular 13 przyniesie du\u017co wi\u0119cej (ju\u017c zapowiadane s\u0105 te\u017c zmiany w `compiler-cli`).\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/www.infoworld.com\/article\/3629473\/angular-13-begins-to-take-shape.html\">Angular 13 begins to take shape<\/a><\/li>\n \t<li><a href=\"https:\/\/github.com\/angular\/angular\/issues\/43133\">RFC: Exploration of use-cases for Angular JIT compilation mode<\/a><\/li>\n<\/ul>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10095","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=10095"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10095\/revisions"}],"predecessor-version":[{"id":10626,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10095\/revisions\/10626"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}