Something that really fascinates me is the difference between diffing versus declaration of dynamic content. In React and Vue it is a runtime function to know what changed and how to apply it. In Ember and Svelte it is a compile time calculation based on markers in the template.
I guess it comes down to personal preference. I’m quite the fan of a declarative style template that gets converted/compiled to a machine under the hood instead of diffing at runtime.
If your components are large enough to warrant this simply break them down.
I also find separation of concerns conceptually more sound and powerful.
These complaints sound a bit like saying "man, compilers are so complicated, hopefully this trend is dying and we can get some sanity back."
>it has left a permanent mark on the field
It sure has, an indelible stain
The same can be said about libraries like React and websites. Honestly, your position is completely untenable because it's the classic "everyone is dumb except me." Ah yes, all these million and billion dollar companies decided to use React because they're bored and not because it brings any value. You're the only genius, if only everyone realized that the Ideal Website was just handcrafted js.
There are thousands of websites written in React today, and they bring value to their users. That's not disputable. To suggest that there's no benefits is just an astounding level of arrogance.
Just do a quick search on HN, Twitter, Mastodon. You’ll see that’s actually not at all hard to find articles questioning its effectiveness.
The epiphany I had a few years ago is that React is very good for hiring, being hired, managing a team and has very little to do with writing and maintaining a website. At least that’s what I tell myself to find some peace. If you don’t think the JS world is mad, I don’t know if I can convince you in a HN thread.
Just because style, logic, and result are logically grouped it doesn’t mean you’re losing “separation of concerns”. If in fact your definition of that is so shallow it amounts to simply having things in different files, you can do that anyway. It’s an organisational choice.
Perhaps pair it with a typescript library for composing it. There's nothing sacred about HTML for describing the DOM, but that it what it was created for, and the language the browser will report it.