| JavaScript: There's nothing wrong with JavaScript. It's a beautiful, powerful language if you know it. Fragmentation: Seriously? One code-base with a few cross-device tweaks is, in my opinion, infinitely better than n native apps. Just because n is currently 2 does not make it scaleable. Lack of APIs: I don't know what you mean by this. Sandboxes: That's a feature not a bug Morons: You get that everywhere. Memory management: Ditto. Poor support: That's really just a rant against JS again isn't it? Cross domain "BS" is easily solved with allow-origin, and if you don't own the 3rd party server then you really shouldn't be programatically accessing it. IE: Meh, it's not as bad as it was. Nor is it popular enough to make it worth worrying about for lots of people. |
All numbers are 64-bit double-precision floating-point. Interacting with binary protocols or cryptographic libraries is painful.
All strings are UCS-2, not true UTF-16. Characters outside the BMP are second-class citizens.
Those are two issues that I can think of in JavaScript-the-language. The most common use of JavaScript-the-stack, providing interactive functionality in a web browser, is riddled with gotchas like bizarre inconsistencies and arcane corner cases.
That's not to say that you can't do great things with JavaScript (plenty of evidence for that), or that the situation isn't changing (Mozilla added arrays of all the various integral types, but the individual elements still get treated as floating-point when extracted). But you have to be very careful (or use a framework made by someone who was careful), which IMHO makes it anything but "beautiful".