Agreed. To me the most hateful thing about using javascript is that I typically write it to be executed in a browser. It's an absolutely a terrible environment to develop, test, and debug in. Plugins make this better, but it is still problematic. Server side javascript is a decidedly better development experience.
> It's an absolutely a terrible environment to develop, test, and debug in.
For large, essential apps I can see that. Although there are tools that make the experience much better.
But man do I love what JavaScript and browsers have blossomed into. I've always wanted a really nice, simple environment where I can just write a small, self contained app with little overhead, little fuss, and wide ability for it to be adopted. JavaScript plus the new HTML5 goodies fulfills that wish far better than anything else in the past. I've grown to really fall in love with the little bastard language :)
I find that with firebug, client-side javascript development is pretty comfortable. Most frustrating is debugging a script that works in Firefox, but doesn't work in IE.
I haven't used JS server side so I don't have a comparison, though.
http://jsonlint.com I find this immensely helpful when testing json data. There's something that happens in jQuery I ran into where $.get() on a relative json resource was being retrieved, but the callback function wasn't executing. The data was retrieved according to the network analyzer, and ajaxError() was firing, but that was it. Ran the json file through jsonlint and found some problems I needed to fix. Then it worked.
I agree, JavaScript development can be maddening, even with (and because of!) helpful plug-ins like Firebug. Lispers spoiled by swank/slime in emacs may like https://github.com/ivan4th/swank-js as a JavaScript dev environment.
Very, very true. Client-side javascript suffers a debilitating flaw: it's largely used to manipulate the DOM, which is sadly still an ugly task despite over a decades' worth of effort. Provided you can sandbox that part of your code away from the rest, client-side javascript is every bit as palatable as the rest.