DEV Community

Discussion on: Angular Universal is the Problem, not Angular

Collapse
 
jdgamble555 profile image
Jonathan Gamble

Compared to Solid, Svelte, Vue, Qwik and even Preact, React is very slow. Angular and React are on a different level. My point about React being dead was that NextJS is a big reason it is as popular as it is.

Collapse
 
quanla profile image
Quan Le

Oh, you mean "not moving" when you say dead. Yeah, I agree it doesn't change much, but it doesn't bother me, since not changing means stable and mature. Who need to change when you are already good enough. Like "pencils" are dead, because they stay the same since forever... yeah.

Anyway, I don't even use Next, so I don't think Next is what keeping React alive. Have built many complicated React systems with the bare minimum (React 6) and still eager to build more with it.

Could be more convincing if you can give examples of how those "super fast" libs can build complex apps comparing to React... or if they can build at all (other than todo list).

Anyway, it's great if you can checkout the Mac OS that I built using React, it's packed with features and silky smooth. Can't complain

Thread Thread
 
jdgamble555 profile image
Jonathan Gamble

My article is NOT about React, although I'm glad it works for you. Not sure how to respond to your assumption that React is the only library that can build more than a todo app. Solid and Qwik are new, but many have used them for complex production. The features are insane. Svelte is mature now, and Vue is nearly as old as React and Angular. Preact can support most React packages, and Qwik and Solid can too.

People don't spend years developing Frameworks, especially meta frameworks with SSR, to build just todo apps. These frameworks have more features than Angular for SSR, and arguably simpler.

All frameworks have something great to offer, and they learn and build off each other. Angular is just slow on the SSR front. I'm hoping that changes.

Thread Thread
 
spock123 profile image
Lars Rye Jeppesen • Edited

Most React people assume React is the only thing in existence. It's the equivalent of iOS users who think iPhone is the only smart phone there is. A good mix of cult and ignorance

Thread Thread
 
quanla profile image
Quan Le

Yeah, except that I have almost 20 years of experience and have gone through many things before settling with React (Angular, JQuery, PrototypeJS, Java Swing, .NET, ... ). Call me ignorant, I don't care, have seen so many flashy new techs before. Build something awesome with it (like my MacOS), then we talk

Thread Thread
 
spock123 profile image
Lars Rye Jeppesen

Not talking about you, about generic React beginners. It is a framework that most beginners start with, and get stuck with.

 
quanla profile image
Quan Le

Ok, I take it as React is NOT dead.

Anyway, I just looked at both Solid and Qwik, quite nice. Basically I only care if a lib use Virtual DOM or not. I don't think Solid have a future, just like Angular

And why you bring up Preact? It's basically React. Geez

Thread Thread
 
spock123 profile image
Lars Rye Jeppesen

Virtual DOM? Really?

Thread Thread
 
quanla profile image
Quan Le

Yes. Virtual DOM. What is wrong. I think the naming is stupid but it is the defining feature of React and the like (Vue, Preact or Qwik). What is the problem here?

Thread Thread
 
thien2218 profile image
Huynh Ngoc Thien • Edited

Virtual DOM is an abstraction to DOM. If you already know about the DOM, you know the web. Virtual DOM is another layer of DOM that is created by frontend frameworks that uses it.

Every time you make a change to state of a component, it a new Virtual DOM snapshot of that component is created, replace the old one, and only then is reflected in the DOM. This means that every time you update a state at one place, the entire component re-renders itself.

The changes made to the update the state is called reactivity, and Virtual DOM is the old-fashioned reactivity paradigm which was used by many popular frameworks that dated back in 2012 when state management is a huge overhead and updating states surgically in one place is extremely hard. The way that Virtual DOM works is simple: Re-render everything when there is a change. Therefore, there is no overhead of developing libraries using Virtual DOM and performance is acceptable, at least when the library is not large

However, in modern day frameworks, such reactivity is too expensive and inefficient as the price of performance gets higher and higher as the ecosystem grows. Many benchmarks have shown that Virtual DOM frameworks like Vue, Angular and React, in fact, are very slow, especially React. One single state update in React could last up to 100ms.

This is due to:

  1. Hydration: The web has to install ALL javascript before reactivity gets in action. This means that the cold start is very expensive.
  2. Large update: Updating the entire DOM or parts of the DOM that is responsible for rendering a component being updated is more costly than just updating the place in which the change happens. This is quite obvious so I'm not gonna bother explaining the deeper details.

For these 2 reasons, modern frameworks started to move away from Virtual DOM and design their own reactivity paradigm, most well-known ones being Svelte and SolidJS as they're able to surgically update the state, while Astro and Qwik introduced new hydration strategies and significantly reduce JavaScript bundle.

Hope this help!