Having cut their teeth on a language tends to leave the programmer with a worldview where any language which doesn't have the same features which are present in their beloved language is an inferior language.
I believe Paul Graham refers to this as 'The Blub Paradox'[0].
Most of the complaints surrounding javascript stem from the fact that it was initially designed to be a lightweight scripting language.
At the time that javascript was created I think that very few people envisioned the web growing into what it has become. Javascript wasn't created with 100,000 line programs in mind.
Therefore it is currently missing some abstractions which people creating and maintaining programs in the large have come to rely on such as classes, interfaces and modules.
Also javascript has a very simple standard library which leads to people feeling that they need to reinvent the wheel in most cases.
Finally Javascript has prototypal inheritance as opposed to the more traditional class based inheritance which so many programmers are used to.
Of course many of the things mentioned above have already been solved or are currently being solved.
The ECMAScript standards body is in the process of adding classes and modules. Libraries such as underscore.js are fleshing out the standard library. And tools such as Coffeescript are providing a more class based inheritance model (if that is your thing).
Nonetheless reading them it just made javascript even more repellent to me.
It looks like a cup of bad tea to which you need to add some corrections and addons in the first place to taste at least as decent as the other teas. But still it's generally preferred to much better alternatives because it comes with this kind of unique (not true anymore) feature of non-blocking IO.
What some programmers don't realize in this, is that this inducted preference is just the result larger and larger scale profits needs, influencing the programming world.
If a competitor enterprise which operates in the same market as yours can answer to 10000 more concurrent visits than you do, then you are out of the market. Or: Internet marketing rules will tell you that if your visitors are not engaged in your website in about 5 seconds they'll leave.
This is why we are now forced to learn javascript.
And... programmatically speaking, it's really sad.
But being completely familiar with Java, CoffeeScript/JavaScript feels nice. I really like underscore.js. When googling for why people don't like JavaScript, it seems that CoffeeScript has already fixed all those problems.