Earlier quoted context omitted.
It's more like the ease of Web programming opened up programming to an entire new slice of the population that would never have had the opportunity to become programmers before. These people don't have computer science degrees, so they spend a lot of time reinventing wheels. But lots of it works well enough despite all that, and as time passes, they learn and get better. The messiness is a good sign, not a bad one. T…
Being an egalitarian, I have to keep reminding myself of this, even if I recoil at how messy some of the results are. Still, it behooves us to pause and reflect, and maybe consider if there is a better way? The first comment I read in this thread said that Obj-J and Cappuccino were hell to deal with, and much as I scoff at the idea, some people (read: a whole lot of web developers) aren't willing to spend a couple of…
The landscape is littered with C frameworks, C++ frameworks, Java frameworks, .NET frameworks, and so on for every other language, that serves to abstract so much from the basics that it becomes so difficult to do basic things the -way. The problem is that instead of being ancillary and supporting productivity, they are opinionated and try to do EVERYTHING for you, which just makes them really crappy DSLs.
This just happens to occur on the web a lot more because what we have to work with is inconsistent, sometimes poorly implemented, and confusing as hell to new players. So everyone and their dog tries to "solve" developing web applications by making you believe the DOM doesn't exist (jQuery, MooTools, etc). Some think HTML and CSS are too complicated and try to get you to believe those don't exist either (Ext, etc). Then some want you to forget that Javascript ever existed, or to make Javascript less Javascripty (GWT, Prototype/MooTools, etc).
The end result is a lot of opinionated dogma that rarely actually help us get things done (or get in the way more than help). If you pick a big framework, it's usually very good at whatever it was designed to build. But if you want to build something even slightly outside of that set, it becomes a massive cluster-fuck of WTF-inducing horrifying debugging and pain. Only the lightweight libraries that are massive value adds without enforcing a specific dogma on the user have been extremely successful.
The problem is that everyone is too opinionated and makes their software try to do your job for you. It's not really about the ease of use, it's about the ease of integration, extension, and whether they make our jobs easier or nightmarish. Yes, the web foundation is far from perfect, or even great, but most of these frameworks are far, far worse, since they massively and arbitrarily limit what you can do for the sake of some vision of simplicity.
The same problem exists in the native world. There is no consistent presentation layer that rivals the web, and even it isn't fully consistent (all browsers are different, and even the same browser on different platforms can behave differently). But it's a far cry from anything else.
As an aside, since JS isn't assembly, using it as a compile target to build applications foregoes a lot of the other fundamental technologies in a web browser. Sure, you might be able to compile into JS and have an application run in the browser, but that necessarily implies you're doing things like building the DOM manually, and sites like this tend to have significant performance issues. If you want it to work well, the best way currently is by using HTML/CSS/JS and by not letting a gigantic framework pretend that those things don't exist.