What I’ve learned, though, is that it’s actually a reasonably decent language — yes, it has some misfeatures, and some things don’t behave as I think they should (
for (i in object), for example, which sets
Even discounting Internet Explorer for the moment, things aren’t perfect; I’ve run into problems because, for example, Firefox allows things that Opera doesn’t, when Opera’s behaviour is actually the correct behaviour (but of course, I can’t code to Opera’s strict standards-compliance, because discounting Internet Explorer was only wishful thinking, and IE7 doesn’t support the correct way of doing things that Opera mandates).
Not supporting large chunks of the DOM (DOM level 2 or 3, if I remember correctly) is okay, though, because I can just extend the
Node object to provide wrappers — if
getElementByTagNameNS isn’t defined, fake it using
getElementByTagName instead. But oh, wait, Internet Explorer doesn’t let you extend the built-in DOM objects. Why? No idea, but it means that I have to write a wrapper function for every browser to use, even if it supports the necessary methods natively. So much for that plan.
ed, which makes do with one —
? — but they aren’t much more helpful), so it’s back to
alert() and popping up the value of variables at a dozen different points throughout the application. (I assume Microsoft expect people to fork out for Visual Studio or something to get access to a debugger. Sod that, all I want is useful error messages and a DOM inspector)