The ideal scenario is that you only serialize state, download and execute code for the parts of the app that are actually interactive. This is now called “partial hydration”.
- it derives its initial client state from the HTML, rather than re-running the initialization which already ran on the server
- it doesn’t render top down, it resumes interactive components on demand (on first user interaction by default)
- it doesn’t load any of that code at all by default; if your page is fully static, none of the code ever gets loaded
This is similar to frameworks like Astro which use a technique called “partial hydration”, but with Qwik it’s handled by the compiler. Another which is somewhere in between (and has been doing all this for years; I’m not sure exactly where its most recent release sits on the spectrum) is Marko.
It is all common sense, and I feel like the language reinvention is an attempt to make old things new, not new things better, because everyone wants to performatively demonstrate how far up the curve they are.