Pomimo wielu przeciwności losu w ten czwartek mamy dla Was kolejną edycję naszego frontendowego przeglądu. Największą informacją jest oczywiście pojawienie się wyników State of JS 2021, ale zbliżające się Chrome i Firefox 100 oraz Typescrirpt 4.6 są co najmniej równie ciekawe. Rozsiądźcie się wygodnie i zapraszamy do lektury!
1. State of JS 2021
Najpopularniejsza ankieta dotycząca ekosystemu JavaScript, czyli State of JS wczoraj wreszcie doczekała się publikacji wyników z roku 2021. Standardowo już każdemu, kto z frontendem ma chociażby najdrobniejsze doświadczenie, polecam samodzielne zapoznanie się z rezultatami ankiety. Nawet jeśli nie interesuje Was opinia społeczności o poszczególnych frameworkach, to jest to prawdziwa skarbnica wiedzy o nowych funkcjonalnościach języka i przeglądarek oraz kompendium wartościowych kursów i podcastów.
Również standardowo już poniżej dzielę się z Wami moimi spostrzeżeniami z wyników. Jeśli chcielibyście dodać coś od siebie lub drastycznie nie zgadzacie się z którymś z podpunktów, to zapraszam do dyskusji na Facebooku.
Ankietę wypełniło 16 tysięcy deweloperów. To o 8 tysięcy mniej niż rok temu i o 6 tysięcy mniej niż 2 lata temu. Mniejsza popularność ankiety może mieć związek z spadkiem zaufania wynikającym z potencjalnego wycieku danych, o którym pisaliśmy w 72 edycji naszego przeglądu. Nagły spadek popularności nie jest jednak tym, na co chciałbym zwrócić uwagę. Analizując wyniki warto pamiętać, że 16 tysięcy to zaledwie mały wycinek deweloperów mających na co dzień do czynienia z JavaScriptem. Dla porównania w samym Krakowie zatrudnionych jest 82 tysiące ekspertów IT.
Właściwie wszystkie biblioteki i frameworki, które są z nami już od dłuższego czasu zaliczają powolny, stabilny spadek z zadowolenia programistów korzystających z nich. Dla przykładu w 2017 roku 4.4% osób deklarowało, że nie chce korzystać z Reacta, a w 2021 roku jest to już 13.1%. Podobnie w przypadku Vue statystyka to 2% w 2017 roku do 10,3% w 2021 roku. Jedynie Angular w ostatnich latach zalicza w tej kategorii drobny wzrost. Jest to jednak śmiech przez łzy, gdyż obecnie 29,8% deweloperów deklaruje niechęć do frameworku od Google i jest to zdecydowanie najgorszy wynik w całej ankiecie.
Część osób w internecie doszukuje się w zaistniałej sytuacji skutków pandemii, która negatywnie wpłynęła na deweloperów. Ja jednak podpisuje się pod teorią mówiącą, że okres miesiąca miodowego dla tych frameworków minął i wraz z rozrastającymi się projektami deweloperzy zaczęli dostrzegać również ich wady.
Środowisko JavaScript na przestrzeni ostatnich lat zdecydowanie dojrzało. W kategorii wykorzystania w projektach kolejność właściwie się nie zmienia. Nawet Svelte, który ugruntował swoją pozycję jako czwarty najpopularniejszy frontendowy framework, a który w mojej głowie ciągle jest świeżynką ma już ponad 5 lat!
Jak to mówią: wieś z człowieka wyjdzie, ale człowiek ze wsi nigdy. Podobnie jest chyba z frontend deweloperami, bo pomimo że statystyki wykorzystania mówią co innego, to pod względem zainteresowania i satysfakcji grupa ta wciąż jest zafascynowana nowinkami. Za dowód niech poświadczy nieprzyzwoicie wysokie zainteresowanie frameworkiem Solid, który w stabilnej wersji został opublikowany dopiero w tym roku.
2021 rok zdecydowanie był rokiem frameworków do Server Side Renderingu. W zestawieniu Backendowych frameworków zdecydowaną większość stanowią świeżynki takie jak SvelteKit, Remix czy Eleventy. Rosnąca konkurencja i umocnienie się Next.js na rynku źle wpłynęło niestety na starego wyjadacza w postaci Gatsby.js . W porównaniu z 2019 rokiem satysfakcja z tegoż spadła o prawie 40 punktów procentowych.
Vite jest narzędziem, którego nie można pominąć. W całej ankiecie został on najlepiej oceniony pod względem zarówno satysfakcji jak i zainteresowania.
Dla projektów Evana You nie był to jednak rok idealny. Vue pod względem satysfakcji zaliczyło spadek o 5 punktów procentowych i większość głosów jest zgodna, że wynika to z ciężkiej i pracochłonnej migracji do Vue 3.
Pomimo nieustannie rosnącej popularności TypeScript, deweloperzy deklarują, że najbardziej w JavaScript brakuje im wsparcia dla statycznego typowania.
Źródła:
https://2021.stateofjs.com/en-US/
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Chrome i Firefox zbliżają się do wersji 100, czyli kolejne wcielenie buga milenijnego
Chrome doczeka się wersji oznaczonej numerkiem 100 29 marca, natomiast Firefox 3 maja. Informacja ta z pozoru wydaje się nieistotna, bo z okazji okrągłych wersji raczej nie należy się spodziewać rewolucyjnych funkcjonalności. Jak się jednak okazuje wydania te mogą zepsuć sporą część internetu, a twórcy przeglądarek już opracowują plany minimalizacji szkód. Skąd bierze się problem? Sporo aplikacji samodzielnie lub wykorzystując zewnętrzne biblioteki wyciąga informację o wersji przeglądarki z UserAgent. Część z implementacji ściśle bazuje na założeniu, że do przechowywania wersji major potrzebne są 2 znaki. Z analogiczną zmianą do czynienia mieliśmy ponad 12 lat temu, więc zgodnie z prawem murphyego, należy zakładać, że aplikacji takich jest sporo.
Jak twórczy przeglądarek planują zminimalizować szkody? Mozilla przygotowała specjalną stronę, na której zgłaszać będzie można popsute aplikacje. Jeśli liczba zgłoszonych stron będzie przytłaczająca, to Firefox zostanie zamrożony na wersji 99. Strategia Chrome jest odrobinę bardziej zawiła. W przypadku przekroczenia masy krytycznej zepsutych aplikacji Chrome planuje formułować UserAgent w następujący sposób `99.101.4988.0`. Na pierwszy rzut oka wydaje mi się, że taka zmiana może być jeszcze gorsza w skutkach, ale ufam, że ludzie z Google wiedzą co robią.
Jeśli chcecie przetestować czy Wasze aplikacje mogą ucierpieć na wydaniu nowych wersji przeglądarek, to w źródłach znajdziecie instrukcję jak ustawić odpowiednie flagi, tak aby zasymulować przeglądarkę w wersji 100.
Źródła:
https://hacks.mozilla.org/2022/02/version-100-in-chrome-and-firefox/
3. TypeScript 4.6 w wersji Release Candidate
O pojawieniu się bety TypeScript 4.6 informowaliśmy Was już kilka tygodni temu w 73 edycji naszego przeglądu. Dlatego jeśli ominęły Was informacje o zbliżających się nowościach, to odsyłam Was właśnie tam. W minionym tygodniu natomiast doczekaliśmy się pierwszego Release Candidate, co oznacza, że stabilnej wersji możemy spodziewać się już w najbliższych tygodniach. Dla formalności wspomnijmy, że względem wersji beta odrzucone zostało wsparcie dla ES2022 oraz usprawnione wsparcie dla rozpoznawania typów dla unii typów. No cóż, może funkcjonalności tych doczekamy się w wersji 4.7.
Źródła:
https://devblogs.microsoft.com/typescript/announcing-typescript-4-6-rc/
Zainstaluj teraz i czytaj tylko dobre teksty!
Bonus: Czy React umrze wraz z Metą?
Meta w minionym tygodniu zaliczyła jeden z największych spadków w historii giełdy. W ciągu zaledwie 24 godzin firma straciła na wartości o ponad 25%, co przekłada się na 230 miliardów dolarów. Jako główny powód spadku podaje się mocne deklaracje Marka Zuckerberga o opuszczenia Europy przez firmę ze względu na nowe regulacje Unii Europejskiej. Szerszy kontekst zapewne przybliży Wam Artur w sobotniej edycji naszego przeglądu. Ja natomiast wszystkim z Was, którzy szukają typowo kawowej lektury, polecam dyskusję na HackerNewsach dotyczącą spekulacji na temat śmierci Mety oraz wpływu jaki mogłoby to mieć na Reacta.
Źródła:
https://www.theverge.com/2022/2/3/22916007/facebook-meta-stock-drop-history-invest
https://news.ycombinator.com/item?id=30209117