Menu
O mnie Kontakt

W najnowszym odcinku kanału Fireship autor przedstawia kontrowersje związane z rozwojem Reacta, ulubionej biblioteki UI programistów. W filmie porusza on spór pomiędzy zwolennikami prostoty narzędzi React a obozem, który promuje bardziej rozbudowaną infrastrukturę chmurową i usługi hostingowe. Dziś, 5 maja 2025 roku, Fireship podsumowuje obie strony dyskusji, aby widzowie mogli być na bieżąco z dramatami Reacta, kiedy będą czekać w kolejce na zupę. Początkowo React zyskał popularność dzięki temu, że pomógł programistom skupić się na stanie aplikacji, a nie na złożoności jej renderowania. Z czasem jednak React ewoluował, wprowadzając komponenty serwerowe, które zmieniają zasady gry, pozwalając na bardziej efektywne obliczanie UI i poprawiając doświadczenia użytkowników.

Komponenty serwerowe są innowacyjnym podejściem, które pozwala aplikacjom React przejąć kontrolę nie tylko na kliencie, ale także na serwerze. Fireship wyjaśnia, że pozwalają one na dostarczenie jedynie końcowego wyniku obliczeń do klienta, zamiast przesyłania całej biblioteki JavaScript. Dzięki temu aplikacje stają się bardziej wydajne, ponieważ dostarczają użytkownikom funkcjonalności znacznie szybciej, co znacząco zmienia oblicze pracy z Reactem. Chociaż sama idea kompozycji w React pozostaje, nowe funkcjonalności mogą wprowadzać więcej trudności i wymagań technicznych, co z kolei może frustrować niektórych programistów.

W obliczu nowego modelu, Fireship zauważa, że zmienia się także współpraca między zespołem React a Next.js. Choć Next.js zapewnia potrzebną infrastrukturę, w obozach programistycznych pojawiają się obawy, że przywiązanie ich do platformy Vercel może być problematyczne. Użytkownicy, którym nie podoba się ta tendencja, mogą odczuwać przymus przeniesienia swoich aplikacji na serwer. Fireship podpowiada, że istnieją alternatywy, takie jak React Router w wersji 7 czy TanStackStart, które mogą okazać się mniej skomplikowane i bardziej niezależne.

Kolejnym interesującym elementem jest kurs sponsorowany przez React.gg, który oferuje intensywną interaktywność i praktyczne wyzwania dla uczących się Reacta. Kurs ten jest dostosowany zarówno dla początkujących, jak i dla tych, którzy chcą nadrobić najnowsze funkcje z React 19. Fireship zachęca widzów do skorzystania z 25% zniżki w czasie trwania promocji, co czyni ten kurs jeszcze bardziej atrakcyjnym. Z perspektywy społeczności programistycznej, tego typu kursy są niezwykle wartościowe, ponieważ uczą nie tylko teorii, ale także praktycznego zastosowania nowych funkcji React i wzmacniają umiejętności programistów.

Na chwilę pisania tego artykułu, film Fireshipa zgromadził 675447 wyświetleń oraz 23059 polubień. Te statystyki świadczą o rosnącym zainteresowaniu tematem i kontrowersjom wokół nowego podejścia do Reacta. Widać, że dyskusja trwa, a programiści wciąż poszukują rozwiązań, które mogą ułatwić rozwój aplikacji w ekosystemie związanym z Reactem. Fireship dostarcza zatem nie tylko wiedzę, ale także narzędzia do lepszego zrozumienia zmieniającego się krajobrazu w świecie programowania.

Toggle timeline summary

  • 00:00 Wprowadzenie do napięcia w społeczności programistów React.
  • 00:06 Przegląd dwóch stron w debacie dotyczącej React.
  • 00:20 Zestawienie treści wideo skupiające się na ostatnich zmianach w React.
  • 00:30 Dyskusja na temat ewolucji React i jego rosnącej złożoności.
  • 00:42 Wyjaśnienie, jak React upraszcza zarządzanie stanem UI.
  • 00:49 Wprowadzenie komponentów serwerowych React i ich korzyści.
  • 01:44 Dyskusja na temat korzyści płynących z komponowania komponentów w React.
  • 02:12 Wyjaśnienie, jak działają komponenty serwerowe z priorytetyzacją.
  • 02:25 Wprowadzenie do frustracji społeczności związanych z komponentami serwerowymi.
  • 02:40 Szczegóły dotyczące wyzwań związanych z wdrażaniem komponentów serwerowych.
  • 03:13 Badanie partnerstwa React z Next.js w kontekście architektury.
  • 03:56 Dyskusja na temat trudności w oddzieleniu React od Next.js.
  • 04:05 Wzmianka o wpływie Vercel na kierunek React.
  • 04:18 Alternatywne opcje dla deweloperów chcących uniknąć Vercel.
  • 04:53 Wprowadzenie React.gg jako zasobu edukacyjnego.
  • 05:30 Ostateczne myśli na temat nauki React i oferta zniżkowa od React.gg.

Transcription

Don't tell anyone, but while AI has been taking their jobs, React devs have been too busy fighting their own civil war to even notice. On one side of the battlefield, you have the rebels, fighting for their women, children and the simplicity of React tooling. On the other, you have Team Iceland from the Mighty Ducks, trying to sell you cloud infrastructure and hosting services. In today's video, we'll break down both sides of the debate, so you can be informed on all the latest React drama when you're standing in line at the soup kitchen. It is May 5th, 2025, and you're watching the Code Report. If you've been feeling happy or fulfilled over the last few years, you probably missed that React, everyone's favorite fun and flirty UI library hit puberty, started rage listening to Limp Bizkit, and seemingly changed its whole identity. When React first launched, despite some early hate, it quickly grew in popularity because it made the view a function of your application's state, and all you had to do was worry about how the state of your application changed and React would handle the rest. React today follows the same ethos, but that's only half of the picture now. What used to be a client-only library has metastasized across the network to take over the server. Take this code for example. This is a perfectly valid React server component. It doesn't need to follow the traditional rules of React, like not fetching data during render, because it doesn't have the same constraints as a typical React component. In a way, you can think of server components as fancy serializable HTML template generators. Their entire job is to compute the UI and ship it to the client. Conceptually, this is pretty simple, but it enables some pretty cool stuff. Take this one for example. If this were a traditional React component, the entire popup library would be included in the JavaScript bundle, that the user would need to download before sending anything on the screen. With server components, all that's shipped to the client is the end result of the computation, in this case just the final table and some instructions for React to follow during hydration. And more important than the bundle may be the compositional benefits. Again, React pioneered the idea of bringing composition to the front end by allowing you to create a UI by composing different components together, all of which could be isolated from one another and each manage their own state. If done correctly, composition can lead to a more flexible, more maintainable, and more scalable codebase. It's what allows you to build complex UIs out of simple building blocks, and it's what allows you to then reuse those building blocks in a variety of different contexts. Combined with suspense, which is a React component that allows you to display a fallback UI while React works on rendering its children, the server components allow you to prioritize showing the user something immediately, and then stream the rest of it as it becomes available. Composition across the network. This sounds awesome, so why is everyone so upset? Well mostly because they contain more magic than that night in Las Vegas when David Blaine hypnotized me and told me to make JavaScript tutorials. When a new React feature comes out, you can usually just npm install react-at-latest and you're good to go. With server components though, that's not the case. In reality, you need three things to make them work. One, a bundler that can process and differentiate between server components and client components. Second, a server that can take the bundle that the bundler generates and stream it into the client. And third, a client-side router that can request and process the stream from the server. Since the average JavaScript developer doesn't understand what a bundler is without asking chat GPT, they usually can't get past number one. So how did the React team solve this? By partnering with the Next.js team and making a multi-year long bet that this new server components architecture would become the primary way to use React, and therefore so would Next.js. However, that bet, according to many in the React ecosystem, has failed. And there are really two separate problems here, depending on which camp you fall into. If you're a developer, it's not so much that Next.js is bad, it's that it's an implementation of the React team's full stack architecture vision, and unless you're building a web app that benefits from that architecture, it might not be worth the complexity. And if you're a framework author in the React ecosystem, the partnership between React and It kind of feels like that winter your dad kept missing visitation days only to be seen with your step-brother on Instagram skiing in Tahoe. But really both problems stem from the same place. It's becoming increasingly difficult to separate React from Next.js, and even harder to separate Next from Vercel. If you don't like that Vercel's ultimate goal is to sell you Next.js hosting services, you probably also don't like that React's new goal is to have you move as much of your app to the server as possible, regardless of how unrelated those two things may or may not be. If you're building a React app today and want to avoid the Vercel money machine, what are your options? Well, first you've got React Router version 7, formerly known as Remix. With a focus on web standards, React Router is the most popular routing library for React, and it can be paired with Vite to create a full stack React framework, if that's your thing. Next, you've got TanStackStart. Powered by TypeScript and the man who single-handedly put the whole React ecosystem on his back for the last five years, TanStackStart comes with full document SSR, streaming, server functions, bundling, and much, much more. It's still in beta, but that never stopped me from shipping to prod. And finally, if your app has constraints not well served by existing frameworks, at least according to the React team, you might just want to build your own. And the best way to learn how to do that is with the sponsor and provider of the visuals for today's video, React.gg. I've seen a lot of programming courses in my time, and React.gg may be the best. It's so good because the entire thing has been developed to be as interactive as possible. For every topic, you get a video, some text, and visuals that represent core React topics, in addition to a bunch of practical challenges that you can work through, like leet code for React. And just to make the course as real-world as possible, the sickos even built and published a hooks library called use-hooks that now gets over 300,000 downloads per week, and you'll recreate it throughout the course. Whether you're new to React or just need to learn all the latest React 19 features like server components, actions, and transitions, I don't think there's a better way to do it than React.gg. And for the next week, you can get 25% off during their launch sale. This has been The Code Report, thanks for watching, and I will see you in the next one.