W dzisiejszej edycji mamy dla Was nowe Deno (dlaczego piszemy o alternatywie Node w frontendowym przeglądzie – szczegóły w środku), nowy React Native, a na samym końcu – bardzo ciekawa architektoniczna zagwozdka Twórców Angulara. Zapraszamy do lektury!
1. Deno 1.13 implementuje eksperymentalną alternatywę do WebSocketów oraz serwer HTTP 2.0
Zacznijmy od newsa, który jest co prawda pod frontend mocno “naciągnięty”, ale obiecuję się ostatecznie wybronić . Nie martwcie się, Tomek wraca dziś z urlopu, zaraz skończą się więc moje dziwne wrzuty i już za tydzień wrócimy do normalnej edycji (choć może właściwie nie za tydzień, ale na razie ). W tej edycji jednak hejterzy mojego stylu pisania i Frontendowi Maksymaliści…
No, ale przejdźmy do konkretów. Otóż w zeszłym tygodniu swoją premierę miało nowe Deno. Ta alternatywa dla Node od jego oryginalnego twórcy (która początkiem roku pozyskała inwestorów i ogólnie coraz śmielej sobie poczyna) cechuje się naprawdę “bogatymi” releasami. Nie inaczej jest z wersją 1.13.
Poza standardową aktualizacją zależności (m.in. do V8 9.3, które opisywaliśmy tydzień temu), Deno 1.13 zdecydowało się na eksperymentalne wsparcie WebSocketStream API. Jest to opracowywana przez zespół Google Chrome alternatywa dla “zdarzeniowych“ WebSocketów, oparta o reaktywnywne strumienie i nie będąca na razie standardem W3C .
Kolejnym ciekawym dodatkiem w nowej wersji Deno jest stabilizacja wprowadzonego w Deno 1.9 natywnego API serwera HTTP/2. Dzięki temu Deno może działać jako serwer dla ruchu HTTP/1.1 i HTTP/2 bez żadnych dodatkowych bibliotek. W sam raz do użycia z Waszymi Backend-for-Frontendami. Aczkolwiek żeby ostudzić zapał – w łapy wpadła mi ostatnio interesująca krytyka HTTP/2 jako takiego – złożoność tego standardu w rękach niedoświadczonych użytkowników potrafi wybuchnąć w twarz, a mało kto realnie potrafi go wykorzystać.
Dobra, ale nie będziemy tutaj wymieniać wszystkiego, co pojawiło się w nowym Deno. Tak naprawdę przecież wykorzystałem okazję wspomnianej premiery po to, żeby podzielić się z Wami jedną z moich ulubionych serii YouTubowych. Pewnie jak wielu z Was wie (w gronie prawie 600 tys. subskrybentów na pewno znajdą się jacyś nasi czytelnicy), Google posiada kanał Google Chrome Developers. Śledzenie go jest dosyć męczące, bo jest na nim masa spamu (Vived KeepUp dla wideo na YouTube, ktokolwiek?), ale ogólnie warto, bo można też znaleźć tam sporo perełek. JednąJendą z nich jest seria HTTP 203, prowadzona przez Jake Archibalda oraz Surmę (gość rzeczywiście się tak przedstawia ). Jest to regularny zbiór zaawansowanych materiałów o HTTP i programowaniu webowym. Nie znajdziecie w niej frameworków i bibliotek – raczej protokoły i standardy sieciowe. Jeżeli kiedyś chcieliście zobaczyć, jak dwóch bardzo inteligentnychinteligentych inżynierów rozmawia o takich tematach jak usability URL czy Web Workery – i to już przez 8 sezonów (!) – HTTP 203 jest miejscem dla Was.
A skąd tu powiązanie z Deno? Otóż ostatni odcinek “programu” dotyczył właśnie Deno, gdzie prowadzący próbowali wytłumaczyć, dlaczego jest to interesująca technologia, którą warto się zainteresować. Co prawda zniszczyli mi tym narracje – dopiero co twierdziłem, że nie zajmują się konkretnymi technologiami. Zrobili to jednak na tyle porządnie, że mam nadzieję wybaczycie mi pewną niespójność przekazu. Polecam serdecznie!
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Hades nadchodzi… w React Native 0.65 ☠️
Kontynuując wątek “nie do końca frontendowych” nowych wydań – React Native 0.65. Przyglądnijmy się, co przynosi
Rzeczą, która mnie osobiście najbardziej intryguje w świecie React Native jest Hermes jest maszyna wirtualna JavaScript od Facebooka zoptymalizowana bezpośrednio pod React Native. To właśnie ona dostała też najwięcej nowości w obecnej edycji. Poza standardowymi dodatkami, którymi chwali się każda nowa technologia (wsparcie dla M1 ), tym co przyciąga oko przy czytaniu “notatek z wydania” jest nowy Garbage Collector – Hades (ktoś, kto wymyśla Facebookowi nazwy powinien dostać podwyżkę). Ten obiecuje znacznie krótszą fazę “stop-the-world” podczas odśmiecania. Zmniejsza też zużycie procesora, a co za tym idzie pewnie baterii telefonu.
Oprócz tego React Native przynosi też poprawki w “dostępności” oraz aktualizacje zależności. Także wydanie z gatunku – Not great, not terrible.
W tym miejscu pozwolę sobie na małe porównanie popularności React Native z jego największym konkurentem – Flutterem. Mimo, że projekt od Google ciągle nie doścignął swojego “podpiętego” pod popularnego React.js przeciwnika, to choćby śledząc coroczny raport StackOverflow można zobaczyć, że ta granica zaciera się bardzo dynamicznie. W pytaniu o “Technologię, którą programiści używali w zeszłym roku”, tegoroczna edycja pokazuje 14.51% vs 13.55% z przewagą dla React Native. Biorąc jednak pod uwagę, że próg wejścia dla Fluttera jest nieporównywalnie większy – nie dość, że nie można dzielić kodu z najpopularniejszym frameworkiem webowym, to jeszcze trzeba nauczyć się nowego języka (!) – szala wydaje się powoli przechylać w jego kierunku. Zobaczymy, co pokaże przyszłość, ja osobiście chyba kibicuję rozwiązaniu Google – React Native miał swoje pięć minut, których niestety nie wykorzystał za dobrze.
A to w świecie technologii grzech śmiertelny.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Angular planuje pozbyć się kompilatora JIT
Na koniec – pytanie, które mają do Was wszystkich (no… powiedzmy tym siedzącym bliżej maszyny wirtualnej) twórcy Angulara. Chcą bowiem oni wyłuskać ostatnie przypadki, w których nie można stosować kompilatora Just-In-Time, żeby być w zupełności przejść na kompilator Ahead-Of-Time.
Twórcy tłumaczą to tym, że chociaż początkowo JIT był rozwiązaniem domyślnym, oczkiem w głowie twórców zawsze było AOT. Ze względu na skomplikowanie całej inicjatywy doczekaliśmy się jej później niż standardowego JITa, ale oferuje więcej możliwości poprawy nie tylko User Experience (szybsze ładowanie aplikacji) oraz Development Experience (możliwość bardziej inkrementalnego podejścia do kompilacji). Po tym, jak w Angularze 9 AOT stało się rozwiązaniem domyślnym, teraz twórcy ostatecznie chcą ubić JITa.
Nie chcą jednak wylewać dziecka z kąpielą, dlatego też chcą dowiedzieć się od społeczności, czy istnieją jakieś przypadki brzegowe, które nie działają w trybie Ahead-of-Time. W komentarzach możecie znaleźć sporo ciekawych, dość unikalnych zastosować Angulara – jeśli jesteście ciekawi do jakich dziwnych zastosowań można użyć tego frameworka (typu dokumentacja pozwalająca na edycję opisywanych w niej komponentów w czasie rzeczywistym ).
Zaczynają się pojawiać też pierwsze informacje na temat Angulara 13. Tydzień temu pojawił się nowy preview (v13.0.0-next.1). Przynosi on dwie “łamiące” zmiany – po pierwsze dodano nowy typ o nazwie FormControlStatus. Jest to Unia wszystkich możliwych statusu dla kontrolek formularza, dzięki temu programiści nie będą musieli bazować już na zwracane przez nie stringach. Dodatkowo, lekko zmieniono parsowanie urli w niektórych przypadkach brzegowych. Tak jak widać, na razie nie za wiele ciekawego, aczkolwiek jestem pewien, że Angular 13 przyniesie dużo więcej (już zapowiadane są też zmiany w `compiler-cli`).