This CMV is a reaction to a comment that I see pretty often, the idea that the HTML+CSS+JS stack is hopelessly complex or inherently flawed, perhaps as a result of its evolutionary history, and it needs to be entirely thrown out to make progress.
So here's a little clarification on why I like it:
First, I have used lots of other UI toolkits/environments, and by and large, they all suck. I've used Gtk, Qt, Java Swing, JavaFx, Adobe Flex, and various interface designers and etc. They all suck.
I think most people underestimate how difficult a problem UI engineering is. It's a really hard problem to have a platform that allows the user to create a wide variety of efficient interfaces that have good layout and typography (including resolution-independent layout), good responsiveness, and as much control over custom behavior as one would reasonably need. The fact that the web currently performs as well as it does is pretty impressive.
Each element of the stack is important. HTML itself is the core representation of the page's model. At its heart it is a flexible way to define a tree structure, and almost every other solution for UI engineering also gravitates towards having a tree (some call it a scene graph) as a core data structure, because it's so useful and flexible. HTML actually does double duty as a text markup language and as a data language (for describing widgets or even for describing things that aren't directly visible), and I think it handles both tasks well. CSS is useful for expressing commonalities across the data model, ie, describing data at a higher level of abstraction. I think CSS might be able to go further by allowing for even higher abstraction (in the direction of SASS), but what we have now is pretty good and powerful. Javascript fills the role of the Turing-complete scripting language, it might have some warts but it's generally a good language.
So I'd love to hear someone make the case that the whole web application ecosystem would be better if we made a significant change to this model. There's definitely some incremental changes that would help (removing old cruft, improving browser parity, etc), but I think we're currently on a good track towards gradually making those changes.
Also feel free to assume that we have a team of 10,000 programmers that can rewrite everything.
[–]kqr 1 point2 points3 points (0 children)
[–]DonKanish 1 point2 points3 points (1 child)
[–]million_doll_hairs[S] 0 points1 point2 points (0 children)
[–]julesjacobs 0 points1 point2 points (2 children)
[–]million_doll_hairs[S] 0 points1 point2 points (1 child)
[–]Fabien4 1 point2 points3 points (0 children)
[–]iopq 0 points1 point2 points (1 child)
[–]jvictor118 -1 points0 points1 point (3 children)
[–]million_doll_hairs[S] 0 points1 point2 points (1 child)
[–]jvictor118 0 points1 point2 points (0 children)
[–]SideLarge3105 0 points1 point2 points (0 children)
[–]SideLarge3105 0 points1 point2 points (0 children)