| I can't believe people still bash JavaScript. I can't believe people actually like it. It might be understandable if you're comparing it to enterprisey Java, but I'm baffled that anyone could prefer ES5 to Python or Ruby. (I will acknowledge that ES6 puts it somewhere in the area of Python 2.5). It's an incredibly powerful, expressive language. Not if you want super advanced features like a hashtable with non-string keys, or checking if two objects are equal. It lets you do stuff like redefine entire objects, properties or methods at runtime (for stubbing). As does any other dynamic language. Also, JS is great for writing asynchronous logic. As is any other language with first-class functions. And with others you don't have to do silly contortions to work around JavaScript's broken "this". I think its a shame that some people just didn't seriously try JavaScript. Tried it, have written it professionally for many years, and as a result am very much looking forward to WebAssembly. |
Also, there is something to the whole "modules are records/hashes" idea which is quite elegant, IMO. I'm not sure why we still put up with the idea that the module system needs to be a whole different language with different rules. But I'm not sure if there is a type system capable of modelling this very well.