On the other hand, many of us decided the exact opposite.
Check the history ?. Declarative UIs has been around for, what 30-40 years, and they don't seem to be actually gaining any share.
They invariably look super-useful and productive when you build "my first app". Typically it is a "ToDo list".
Then you start using it to build something larger and then you swear a lot, and eventually realize that the whole premise is flawed, and then you decide never to use declarative UIs again, ever. lol.
10 years ago, it was Sencha, DOJO, etc.
As for native, every OS provides component-based UI toolkit.
Really? Because HTML seems to be by far the most popular environment these days. many are even trying to push it to the desktop.
"Then you start using it to build something larger and then you swear a lot, and eventually realize that the whole premise is flawed, and then you decide never to use declarative UIs again, ever. lol."
What other abstractions are you using? If it was manipulating things based in jQuery selectors then I'd agree. But I find a combination with an MVVM framework (like knockout) it scales incredibly well.
However there may be opportunities elsewhere . . .
In reality I'm expecting html+css to keep evolving and removing most of the pain points. Grids for example:
But I think ultimately everything is being done to extend a legacy technology that was meant to add hyperlinking to texts and nothing more. I think a first-principles re-approach will be so much more powerful and free of the gravity of html+css constraints allowing developers to reach escape velocity.
Starting from scratch could be better in theory, but I'm doubtful that it will happen in practice anytime soon.
The first demo of this on the other hand, has html embedded in javascript strings. A program of any complexity written like this would quickly turn into a big ball of mud.
And arguably, if you choose a language based upon its ability to help you define what is "dynamic" vs. "static" you've made some mistakes.
Please elaborate.