Just 2 years ago the whole thing was in flux, was Flash or Silverlight going to take the interactive web crown? Was a backend focused toolkit like GWT going to save the day and keep the developers on the back end? I would say that the score was not settled until as late as mid last year.
Around the time that jQuery was crowned king. Their is no doubt now where web development is heading, disconnected browser apps communicating to the server via REST and JSON. (can I take a moment to tell all the haters, I told you so). All kidding aside, now it just remains to be decided what the traditional pieces of that client stack are.
Dojo offers a compelling and robust toolkit, that I personally like very much and recommend to people doing large apps in the browser. Then there is jQuery, the juggernaut, with something like 40% of the mindshare it hard to not declare jQuery the winner and move on.
The problem is for large application jQuery on it's own falls down miserably. It has to be paired with the likes of backbone.js and underscore.js to provide any basis for large app development and even then it is still a little more spartan to develop with the jQuery/backbone stack than it is Dojo.
While it is very easy to just call the game for jQuery, Dojo provide a scrappy underdog and a dark horse in this race. The point is, once "the one" toolkit is decided I think you will see more developer migrate over, and I think jQuery's dominance is starting to become that transition point. Making them feel comfortable about what they are investing their learning time in. This is an area where developers cant afford too many missteps and false starts in, if one wants to remain marketable they must choose the technologies that offer the greatest prospects, until recently that was not very clear on the client side.
For me, as of now, I keep one foot on each side of the fence until the dominate framework of the client side emerges. I think Dojo still has a long shot in this as people come over and realize that Dojo is the most robust toolkit available.
No. Javascript is at best a nod toward better-designed languages implemented two decades ago, or more. Look at Self, and Lisp before that. It's really appalling that the sort of flexibility Javascript provides is just now reaching the mainstream, in two-thousand fucking eleven.
If I'm missing something (and you're well-versed in the history of programming language design), feel free to tell me otherwise.
http://oreilly.com/catalog/9780596517748
And of course there's all these fancy new things being built on top of it, like CoffeeScript. I just recently realized that it's not the horrible monster I always thought it was.
Incidentally you can find most of them in any decent scripting language, including Perl, Python, Ruby and Clojure.
As for why so many do hate on it, many workmen come to have strong opinions on their tools. JavaScript is a flawed tool that you're forced to use. So if its deficiencies grate on you, there is plenty of opportunity for them to grate more.
Incidentally your PHP comment is completely irrelevant. Sure, lots of people like PHP despite the fact that it is a horrible language. But on the whole, in my experience, it is a more widely hated language than JavaScript. This despite the fact that people aren't forced to use PHP.
While _Javascript: The Good Parts_ is good, it's hardly a ringing endorsement.
Lua is a very similar language, but had over a decade longer to develop, with a smaller circle of active users. It's fixed many of Javascript's design flaws.