Olenin Slava
2 min readMay 28, 2022

--

Let me put it this way. I am not agains framworks, but I do think that framworks should be aligned with foundation stuff. By simple I also mean "simple to use for rutine work" I would say. For example, you might use fancy UI library and quicky scaffold layout with it and embed lets say custom HTML views in it. It should not feel like a crime. I do not like CL tools that generate project so complex that you need CL tool for that. But React it seems going farther by announcing their intention to bring React Native to the web. My whole rant started from the fact that they added double mount/unmount to DevTools to make sure that your component is ready for the future where it would be normal... they say it should not affect you most of the time but then sent a lot of time explaning how you can fight with it.

And specifically about Virtual DOM. Here I would agree with you. So many people screaming about how fast Virtual DOM without realizing that Virtual is a main weakness of declaritive concept. First we ingore all advancements made by browsers in past 20 years, then we trevers whole DOM in JavaScript which insainly slow, and we add Virtual DOM as a solution to compensate that doing it is slow so we wanna wanna identify what actually changed.

That is another thing that I mentioned in my post - we blindly trying to make everything "Reactish" to the point where we are tying to solve problems that would not even exist without React. For example, this whole direction with async component rendering because rendering the whole react tree with animations is slow. Wouldn't better to make friendly API to manage such elements in pure JS while react component will be like a wrapper? Wrapper that do not feel like you are fighting with your own tools. Browsers already doing all those optimisations.

--

--

Olenin Slava
Olenin Slava

Written by Olenin Slava

Passionate Software Developer with a strong focus on Web, 3D, Mobile, and pretty much any interactive computer graphics.

Responses (1)