Kurz po wydaniu React 18 jeszcze na dobre nie opadł, a zespół odpowiedzialny za bibliotekę już zapowiada co czeka nas w jej kolejnych wersjach. Poza tym Deno zgarnęło pokaźną rundę finansowania w wysokości 21 milionów dolarów, a życie Node 16 zostało skrócone o całe 7 miesięcy. Przygotujcie sobie coś zimnego do picia, rozsiądźcie się wygodnie i zapraszamy do lektury!
1. Jak będzie wyglądać przyszłość Reacta?
React 18 był dużym wydaniem, nad którym zespół odpowiedzialny za bibliotekę pracował kilka lat. Najbardziej wyczekiwaną funkcjonalnością było współbieżne renderowanie, czyli możliwość priorytetowania renderów oraz przerywania ich przed zakończeniem (więcej na ten temat dowiecie się z 81 edycji tego przeglądu). Od momentu wydania React 18 minęły już trzy miesiące i doczekaliśmy się 2 wersji minor, które wprowadzały głównie bugfixy. Jeśli zastanawialiście się co czeka w kolejnych latach Reacta, to zespół rozwijający go postanowił rozwiać wątpliwości i podzielił się nad inicjatywami nad którymi obecnie pracuje. Co ważne, nie jest to typowa roadmapa, bo poszczególne inicjatywy nie posiadają ram czasowych, ani deadlinów.
Server Side Components
Od kiedy komponenty renderowane po stronie serwera zostały zaprezentowane światu przez Dana Abramova minęło już prawie półtora roku. Jeśli nie kojarzycie koncepcji, to w dużym skrócie React umożliwiał będzie wyrenderowanie pojedynczego komponentu po stronie serwera i przesłanie kodu HTML do klienta. Mi podejście takie mocno przypomina na PHP, bo możliwe jest wykonywanie zapytań do bazy danych bezpośrednio z komponentów. Jeśli jesteście ciekawi szczegółów to polecam wspomnianą prezentację sprzed półtora roku:
Server Side Components doczekały się ostatnio kilku drobnych zmian w API. Najważniejsze jest jednak to, że współbieżne funkcjonalności Reacta 18 umożliwiły wreszcie rozpoczęcie prac nad ostateczną wersją funkcjonalności. To oznacza, że z dużym prawdopodobieństwem komponenty renderowane po stronie serwera zobaczymy w finalnej wersji jeszcze przed wydaniem React 19.
Offscreen
Offscreen to kolejna funkcjonalność, która została odblokowana dzięki wydaniu React 18. Ma ona umożliwić renderowanie komponentów poza ekranem, bez konieczności montowania ich do struktury HTML. Komponenty takie nie będą więc wpływać na wydajność naszych aplikacji, bo dzięki współbieżnym renderowaniu traktowane będą jako nisko priorytetowe.
Komponenty renderowane poza ekranem będziemy mogli wykorzystać chociażby do ładowania kolejnych stron jakie odwiedzi użytkownik w przyszłości użytkownik. Dzięki temu wszystkie potrzebne dane będą już załadowane, a animacja przejścia między stronami jeszcze płynniejsza. Innym świetnym przykładem jest implementacja nieskończonej wirtualnej listy, która poza ekranem wyrenderuje elementy, które załadowane zostaną zaraz po rozpoczęciu scrollowania.
Optymalizacja Kompilatora
Pamiętacie jeszcze prezentację z ostatniego React Conf, obiecującą, że już nigdy więcej nie będziemy musieli używać `useMemo` i `useCallback`? Jeśli nie, to ponownie posłużę jako Wasza pamięć zewnętrzną i poniżej znajdziecie tą właśnie prezentację (TLDR: Magiczna biblioteka/kompilator doda za was useMemo i useCallback tam gdzie jest to potrzebne)
Od grudnia wieści o projekcie trochę umilkły. Na szczęście nie został on zamknięty i zespół Reacta nadal pracuje nad jego implementacją. Ja czekam niecierpliwie, bo im mniej powtarzalnego i wtórnego kodu tym lepiej (tak, na Ciebie patrzę Angular).
To oczywiście nie wszystko nad czym obecnie pracuje zespół Reacta. W podlinkowanej poniżej notatce znajdziecie wzmianki chociażcby o dalszej pracy nad nową dokumentacją czy usprawnieniami dla renderowania po stronie serwera. Muszę przyznać, że nowe funkcjonalności zapowiadają się naprawdę świetnie. Szkoda tylko, że większość z nich nie jest jeszcze osadzona w czasie. No cóż, pozostaje nam tylko trzymać kciuki, że tym razem pójdzie szybciej niż w przypadku współbieżnego renderowania, nad którym prace trwały kilka lat i wielokrotnie zmieniał on swoje API.
Źródła:
https://reactjs.org/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022.html
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Deno zgarnia 21 milionów dolarów
Deno to środowisko uruchomieniowe JavaScript od twórcy Node.js, który postanowił naprawić błędy projektowe jakie popełnił przy projektowaniu poprzedniego projektu. Jakie to błędy? No cóż, nikt nie wytłumaczy tego lepiej niż on sam
Rok temu Deno przekształciło się z projektu otwarto źródłowego w pełnoprawny startup z finansowaniem opiewającym na 5 milionów dolarów. Firma obiecywała skupić się na rozwoju swojej własnej chmury mocno inspirowanej CloudFlare. Po roku działania firmy Deno Deploy nadal jest w becie, ale firmie udało się już znaleźć kilku ciekawych klientów. Zarówno Supabase (otwartoźródłowa alternatywa Firebase) jak i Netlify postanowiły oprzeć swoje Edge Functions właśnie o chmurę Deno.
W minionym tygodniu Deno Company poinformowało, że fundusz inwestycyjny Sequoia Capital postanowił zainwestować w firmę 21 milionów dolarów. Z notatki informującej o kolojnej rundzie finansowanie dowiadujemy się, że firma nie zmienia swoich priorytetów i kontynuować będzie pracę nad swoją chmurą. Kolejny zastrzyk gotówki na pewno Deno nie zaszkodzi, a trochę konkurencji na rynku środowisk uruchomieniowych działa tylko na korzyść programistów.
Źródła:
https://deno.com/blog/series-a
https://deno.com/blog/the-deno-company
https://deno.com/blog/netlify-edge-functions-on-deno-deploy
https://deno.com/blog/supabase-functions-on-deno-deploy
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Node 16 pożyje siedem miesięcy krócej
Node posiada bardzo jasną politykę wspierania kolejnych wersji. Jeśli wersja posiada numer nieparzysty, to wspierana jest przez 6 miesięcy, jeśli parzysty to jest to wersja LTS i łatki bezpieczeństwa otrzymywać będzie przez 30 miesięcy. Innymi słowy wersje LTS ukazują się co 2 lata i przeplatane są wersjami z krótszym wsparciem.
W minionym tygodniu na blogu Node pojawiła się notatka informująca o skróceniu wsparcia dla Node 16 (a więc wersji LTS) o całe 7 miesięcy. Oznacza to, że Node 16 dokona swojego żywota w październiku 2023. Do końca wsparcia zostało jeszcze trochę czasu, ale jeśli utrzymujecie jakiś serwis na tej wersji to jak najszybciej przygotujcie sobie taska na migrację.
Skąd wynika decyzja o skróconym wsparciu dla jednej z wersji LTS? Jest to związane z końcem wsparcia dla protokołu Open SSL 1.1.1 z którego korzysta Node 16. Jak donoszą twórcy, rozważana była również alternatywa w postaci migracji do OpenSSL 3 lub skorzystanie z OpenSSL 1.1.1 od CentOS, ale obie opcje zostały odrzucone ze względu na problemy z kompatybilnością.
Źródła:
https://nodejs.org/en/blog/announcements/nodejs16-eol/
https://nodejs.org/en/about/releases/