W tym tygodniu mamy dla Was poważny bug w nowym Safari, kolejną rundę finansowania Vercel i nowe werjse Next.js 11 i Deno 1.11.
1. Nowe Safari psuje wsparcie dla IndexedDB
Piszę to na tym blogu nie po raz pierwszy i mam mocne przeczucie, że nie po raz ostatni: Safari to nowy Internet Explorer. Nowe funkcjonalności dostarczane są ze sporym opóźnieniem względem reszty rynku, a lista API zachowujących się odrobinę inaczej niż u konkurencji jest naprawdę długa. Od dawna też nie słyszy się o Safari w kontekście wprowadzania innowacyjnych rozwiązań, a coraz częściej mówi się wręcz o tym, że Apple celowo spowalnia rozwój webowych technologii (za przykład niech posłuży odwieczny brak pełnego wsparcia dla PWA na iOS). Niestety, o ile programiści raczej sceptycznie patrzą na Safari, to użytkownicy nie są już tak krytyczni i przeglądarka ta wciąż ma bardzo mocną pozycję na rynku (na naszym blogu 28% ruchu pochodzi właśnie z Safari, a globalne statystyki mówią o 18% udziału w rynku).
Kończąc ten przydługawy wstęp, przejdźmy do clue dzisiejszego newsa. W wydanym ostatnio Safari 14.1.1 na macOS 11.4 i iOS 14.6 wprowadzono bug do IndexedDB, który objawia się losowym niepowodzeniem pierwszych operacji związanych z bazą. Na razie nie wiadomo kiedy Apple planuje wypuścić łatkę naprawiającą błąd (po raz pierwszy został on zgłoszony już 2 czerwca!), a sprawa jest o tyle poważna, że na ten moment IndexedDB to powszechnie sugerowane rozwiązanie do zapisu danych na frontendzie. Ze względu na brak publicznych informacji o pracach nad naprawą buga sporo aplikacji wypracowało już rozwiązania wyłapujące niepowodzenie operacji i ponawiające ją do skutku. Szczególnie w tym kontekście podoba mi się pomysł dodania na frontendzie chaos testów, które zakładają, że operacje związane z IndexedDB spadają w losowych momentach.
Źródła:
https://www.theregister.com/2021/06/16/apple_safari_indexeddb_bug
https://bugs.webkit.org/show_bug.cgi?id=226547#c0
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Vercel otrzymał kolejną rundę finansowania + Next.js 11
To jest zdecydowanie dobry rok, jeśli chodzi o finansowanie frontendowych projektów (chociaż zespół odpowiedzialny za Babela mógłby się nie zgodzić z tym sformułowaniem). Nie tak dawno informowaliśmy Was o powstaniu i pierwszych rundach finansowania Rome Inc. oraz Deno Company, a dziś kolejną rundę finansowania otrzymał Vercel, czyli firma stojąca za Next.js. Jest to już trzecia runda finansowania i opiewa ona na kwotę bagatela 102 milionów dolarów. To ponad 12 razy więcej niż sumarycznie udało się zebrać dwóm wyżej wymienionym firmom! Jeszcze bardziej imponujące jest chyba zestawienie z pierwszą rundą finansowania. Kiedy Vercel rozpoczynał zbieranie funduszy udało im się przekonać inwestorów, że ich rozwiązania są warte inwestycji 20 milionów dolarów. Po roku pracy inwestorzy skłonni są zainwestować w firmę pięciokrotnie więcej. Pozostaje tylko życzyć Vercelowi utrzymania tak dynamicznego wzrostu i trzymać kciuki, że reszta powstałych wokół otwartych rozwiązań firm zacznie rozwijać się równie szybko.
Nie odchodząc zbyt daleko od tematu Vercela, w zeszłym tygodniu ukazała się nowa wersja Next.js oznaczona numerem 11. Do nowego wydania trafiły wreszcie usprawnienia UX, o których nie tak dawno wspominał Google w ramach ogłoszenia projektu Aurora. Dodane zostało `next/script`, które ma pozwolić priorytetyzować zaciąganie zewnętrznych dependencji i `next/image`, które ma usprawnić ładowanie obrazków i zredukować zmiany w układzie strony związane z doładowywaniem treści. Next.js dołącza też do grona rozwiązań domyślnie wspierających Webpack 5. Po ośmiu miesiącach od wydania możemy chyba powoli oswajać się z myślą, że to właśnie wersja 5 jest rynkowym standardem.
Na zakończenie zostawiłem sobie małą wisienkę. Wraz z Next.js 11 pojawiło się preview Next.js Live, czyli rozwiązania, które mają umożliwiać współpracę nad rozwojem aplikacji w Next przy użyciu przeglądarki. Szczerze mówiąc wygląda to bardzo podobnie do rozwiązania, które na Google I/O zapowiedział StackBlitz (oba rozwiązania wykorzystują pod spodem WebAssembly i ServiceWorker) i jestem ciekawy, czy pod spodem wykorzystane są te same komponenty, czy też obie firmy pracowały równolegle nad właściwie identycznym rozwiązaniem.
Źródła:
https://nextjs.org/blog/next-11
https://nextjs.org/live
https://vercel.com/blog/series-c-102m-continue-building-the-next-web
https://vercel.com/blog/series-b-40m-to-build-the-next-web
https://www.crunchbase.com/organization/vercel/company_financials
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Deno 1.11
Jedenaście to zdecydowanie szczęśliwa liczba tego tygodnia, bo oprócz Next.js, pojawiło się również Deno oznaczone tym numerem. Lista zmian jest raczej krótka i nie znajdziecie tam nic rewolucyjnego, ale dobrze widzieć, że konkurencja dla Node nie zwalnia tempa (ostatni release miał miejsce niespełna miesiąc temu!) i stabilnie dokłada coraz więcej nowych funkcjonalności. Jeśli jesteście zainteresowani nowościami to poniżej znajdziecie krótkie TLDR, a po więcej odsyłam Was do źródeł.
Zmiany w Deno 1.11:
- W Dockerhub pojawiły się oficjalne obrazy z Deno
- Dle metody fetch dodane zostało wsparcie dla anulowania zapytań
- Do Web Crypto API dodane zostały crypto.subtle.digest i crypto.randomUUID
- deno lint jest teraz stabilne i o 100% szybsze niż ESLint
- BroadcastChannel wspiera teraz API to nadawania wiadomości do WebWorkerów