Główne logo strony
📅 03.01.2024 - 07.01.2024

Frontendówka #37

Wsparcie dla JavaScript w MySQL

MySQL wprowadza wsparcie dla programowania proceduralnego w JavaScript 😯

Dzięki integracji z środowiskiem uruchomieniowym GraalVM, deweloperzy mogą teraz tworzyć m.in. funkcje i procedury w JS. Funkcjonalność ta jest dostępna w wersji Preview dla MySQL Enterprise Edition i można ją pobrać z Oracle Technology Network (OTN). Dodatkowo, MySQL-JavaScript jest dostępny w usłudze chmurowej MySQL Heatwave na OCI, AWS i Azure.

MySQL-JavaScript otwiera nowe możliwości w projektowaniu aplikacji, umożliwiając deweloperom efektywniejsze przetwarzanie danych w bazach danych. Jest on również zintegrowany z GraalVM Enterprise Edition, co umożliwia korzystanie z zaawansowanych funkcji tego środowiska, jak optymalizacje kompilatora, wydajność i funkcje bezpieczeństwa, bez dodatkowych kosztów.

MySQL-JavaScript to zdecydowanie krok naprzód w umożliwianiu deweloperom wyrażania skomplikowanej logiki programistycznej bezpośrednio w MySQL. Pozwala to na redukcję kosztów przenoszenia danych i wykorzystanie popularności JavaScript.

JavaScript everywhere! 💪

Źródło: https://blogs.oracle.com/mysql/post/introducing-javascript-support-in-mysql

Plany największych frameworków na 2024 rok

Zobaczmy, jakie plany posiadają autorzy kilku najpopularniejszych frameworków i bibliotek JavaScript (Angular, Next.js, React i Solid).

Angular w 2024 roku: Opcjonalny Zone.js

Angular skupia się na dalszym rozwoju reaktywności oraz wprowadza opcjonalne wykorzystanie Zone.js. Zone.js, który dotychczas był kluczowym elementem w Angularze, odpowiada m.in. za śledzenie zmian w kontekście asynchronicznym. Jego opcjonalność ma przyczynić się do szybszego czasu ładowania i renderowania. Angular planuje także rozwój hybrydowego renderowania (SSG i SSR) oraz ulepszenia w dokumentacji i procesie tworzenia komponentów.

Next.js: Nowy kompilator w przygotowaniu

Next.js, pod kierownictwem Vercel, kontynuuje rozwój swojego nowego serwera aplikacji wspierającego komponenty serwerowe React (RSC) i server actions. Interoperacyjność z poprzednim serwerem pozwala na stopniowe wdrażanie nowych funkcji. W planach jest uproszczenie zarządzania pamięcią podręczną oraz wprowadzenie nowego kompilatora opartego na Rust, który ma zwiększyć wydajność startu aplikacji.

React w 2024 roku: Dalszy rozwój RSC

Eli White z zespołu React w Meta podkreśla, że 2024 rok będzie rokiem dalszego rozwoju Komponentów Serwerowych (React Server Components, RSC). RSC to zmiana paradygmatu Reacta, który przestaje być tylko warstwą UI, a staje się kluczowym elementem architektury aplikacji. W planach jest rozwój narzędzi jak React Forget, auto-memoizujący kompilator, oraz prace nad Static Hermes, natywnym kompilatorem JavaScript dla React Native, co może znacząco przyspieszyć aplikacje i zmienić sposób wykorzystania JavaScriptu.

Solid w 2024 roku: Koncentracja na podstawach

Twórca Solid, Ryan Carniato, zapowiada SolidStart 1.0 i Solid.js 2.0 na 2024 rok. SolidStart to meta-framework bazujący na Solid.js, podobny do SvelteKit. SolidStart ma ułatwić zarządzanie komponentami aplikacji webowej, takimi jak bazy danych, serwery, frontend, bundlery czy cache. Wyróżniającą cechą SolidStart jest jego elastyczność i mniejsza ilość kodu do utrzymania, co daje deweloperom większą kontrolę. Solid 2.0 będzie się skupiał na systemie reaktywnym i obsłudze asynchroniczności, łącząc kontrolę z wydajnością.

Źródło: https://thenewstack.io/2024-predictions-by-javascript-frontend-framework-maintainers/

Storybook w 2024 roku

W 2023 roku autorzy Storybooka skupili się na spłacie technicznego długu, co znacząco poprawiło ten produkt. Najnowsze wersje, jak Storybook 7.0, przyniosły istotne innowacje, takie jak wsparcie dla Vite i pnpm, ulepszony Component Story Format 3, oraz odświeżony interfejs użytkownika. Dodano również nowe funkcje, jak wsparcie dla Tailwind czy SvelteKit, a także usprawniono narzędzia testowe.

Wizją na 2024 rok jest rozszerzenie możliwości Storybooka o rozwój full-stackowych aplikacji, wsparcie dla frameworków nie opartych na React, oraz ułatwienie generowania "storysów". Planuje się między innymi integrację z nowym systemem budowania Angulara oraz oficjalne wsparcie dla Svelte.

Ciekawym rozwiązaniem jest też StorybookGPT, wykorzystujące duże modele językowe do automatycznego generowania historyjek dla komponentów.

Co z tego wszystkiego wyjdzie, zobaczymy już za 12 miesięcy 🙂

Źródło: https://storybook.js.org/blog/future-of-storybook-2024/

2023 JavaScript Rising Stars

W poprzedniej frontendówce (i trochę później również w tej 😉) wspominałem o prognozach związanych z rozwojem ekosystemu JavaScript w 2024 roku.

Tym razem jednak rzućmy jeszcze raz okiem na rok 2023 i na projekty, które w minionym roku zyskały największą popularność.

Zacznijmy od projektu, który zrobił prawdziwą furorę: shadcn/ui. To kolekcja pięknie zaprojektowanych komponentów UI do Reacta, które możesz łatwo skopiować i wkleić do swoich aplikacji. Co wyróżnia shadcn/ui na tle innych bibliotek? Nie jest to tradycyjny pakiet NPM do pobrania. Zamiast tego, komponenty integrujesz za pomocą polecenia w terminalu, które instaluje zależności i kopiuje kod źródłowy komponentów bezpośrednio do Twojego projektu, umożliwiając dalsze modyfikacje.

Drugim wartym uwagi projektem jest Bun - narzędzie, które od 2022 roku zdobwa ogromną popularność. Bun to szybkie, wszechstronne narzędzie do uruchamiania, budowania, testowania i debugowania aplikacji JavaScript i TypeScript. Ciekawostką jest, że twórcy Bun mają ambitny cel na 2024 rok: zastąpienie Node.js jako domyślnego środowiska uruchomieniowego JavaScript na serwerze.

A jak to wygląda w przypadku innych frameworków i bibliotek? Wszystkie informacje znajdziesz w poniższym linku 👇

Źródło: https://risingstars.js.org/2023/en

Everything!!!

W ostatnim czasie rejestr pakietów npm został zalany przez ponad 3000 pakietów, w tym jeden nazwany "everything" oraz inne o podobnych nazwach. Pakiet "everything" jest interesujący, ponieważ jego pobieranie stopniowo ściąga każdy pakiet npm, który kiedykolwiek został opublikowany w rejestrze npmjs.com, co może spowodować brak miejsca na dysku komputera. Ale to tylko część problemu. W rzeczywistości, te 3000+ pakietów zawiera każdy pakiet npm jako swoją zależność, co sprawia, że autorzy pakietów npm, którzy kiedykolwiek opublikowali w rejestrze npm, nie mogą już dowolnie usuwać swoich pakietów z powodu polityki npm.

Co mogło zacząć się jako prosty żart, skończyło się mając poważne konsekwencje dla wszystkich autorów w ekosystemie npm. Instalacja pakietu "everything" mogła spowodować jedynie, że komputer mógłby szybko zabraknąć miejsca na dysku i zwolnić, ale samo istnienie tego pakietu w npmjs.com uniemożliwia autorom, niezwiązanym z tym pakietem, usunięcie swoich pakietów z największego rejestru oprogramowania JavaScript na świecie.

Autor "everything", znany jako PatrickJS, przeprosił za wszelkie trudności, które spowodował ten pakiet, i skontaktował się z administratorami npm, aby rozwiązać problem. W przeciwieństwie do niektórych rejestrów oprogramowania open-source, takich jak Maven Central, które są niezmienne i generalnie uniemożliwiają autorom usuwanie ich opublikowanych komponentów, npm i PyPI tradycyjnie pozwalały programistom na usuwanie lub "wycofywanie" swoich wydań według własnego uznania.

Po incydencie z 2016 roku, gdy autor pakietu left-pad usunął swój pakiet npm w proteście, co spowodowało poważne problemy w Internecie, npm uczyniło trudniejszym dla autorów usuwanie pakietów. Jedna z takich zmian polityki polegała na tym, że autorzy mogą usuwać pakiety tylko wtedy, gdy żaden inny pakiet w rejestrze npm nie jest od nich zależny. Ironią jest to, że ta polityka również uniemożliwiła PatrickJS, autorowi "everything", łatwe usunięcie swoich żartobliwych pakietów, biorąc pod uwagę długą łańcuchową zależność, którą stworzył.

Źródło: https://www.bleepingcomputer.com/news/security/everything-blocks-devs-from-removing-their-own-npm-packages/

Chcesz podyskutować na jeden z powyższych tematów?

discord iconPrzejdź na Discord