Why are two presentation frameworks used with a language called Javascript bolted on top, rather than a powerful programming language?
Why are two presentation frameworks used with a language called Javascript bolted on top, rather than a powerful programming language?
Funny, have a friend that does desktop dev because he "hates web dev", built his own UI building framework on top of Swing :
menu.addChild(item)
...
Now he's building an XML dtd to automate it...An alternative would be to use a more powerful language that would let you express the kinds of things you often need with CSS as macros and have no CSS at all.
The problem is that you want to organize the content of the document (HTML+DOM) with annotations and whatnot, and then style it to look pretty or position it just-so (CSS), and then finally maybe add some goofy runtime logic or updating (Javascript).
We've got tools that have evolved already to solve these three problems, so why not use them? One of the happiest days in my life was getting to do UI development on the web instead of an AWT/SWT/Swing behemoth (CAD software in Java) or really clean but subgreat visualization/menu framework (C with OpenGL, C++ with rendering interface, various other toolkits over time).
Because they are not powerful enough.
...can you show us an alternative?
It's fascinating anyone starts using smartphones.
Simple declarative DSLs (such as CSS) are head-and-shoulders above a general-purpose programming language, especially in a situation where logic is not really needed or required. CSS, fugly though it can be, very neatly and thoroughly solves the issue of "How do I style this content?" without adding the complexity of a programming language.
Not all things want to be programmable and flexible.
Can you automatically compute pixels or colors with CSS based on values of other elements in CSS? Or combined with values coming from a user's preferences?
Seemingly trivial logic can reduce presentation complexity enormously. With a powerful programming language you have a better grip over the complexity than you do with CSS.