It is just much more difficult to have tooling since the tools cannot know for sure what the program is doing (and neither can another human looking at it).
You are entitled to your opinion but many developers disagree and want some more structure in the programming model. The very fact that many people are trying so hard to come up with some solution to JS means that there are significant problems worth fixing. If you don't see these problems or have them then that's great for you.
Is it really not out for 2 years? Really? That seems like a long time for not that much changes. Any improvement is welcome, but still. I don't know if this will keep pace with Dart and other options. It seems way too slow.
People love new things and the story of the new guy overtaking the evil status quo. Node and JS in general seems very hyped right now. Every day there is a new blog about accomplishing something in these technologies that was entirely possible with alternatives for the last many years. But its new and exciting and blogged about. Because it is so new, there are not really any accounts of what a Node architecture does to your maintenance, refactoring, upkeep on a 5 year old application that no one cares about anymore (and the team that built it left).
Maybe it's a sign that the hipsters are rising as the neckbeads retire.
Yes I like the direction dart is going in (except would prefer the type system had more actual meaning than just annotations for tooling, but still).
My pipe dream:
- Google implements a VM for dart or equivalent.
- Dart, Java, C#, ActionScript, Python, Ruby, whatever, can compile to this VM.
- VM/bytecode is initially just in chrome, which is fine as far as I am concerned (no problem saying our app works in chrome only). You can transpile to JS if you want to target other browsers.
- Because of native VM implementation in chrome, the best web applications are in chrome. Chrome increases in popularity.
- Other vendors are forced to implement this VM.
- We get to something like a client VM (lets call it CVM) standard for all browsers.
- Developer productivity improves and browser based apps start not sucking so bad in comparison to their native brothers.
No real classes. No type systen (optional at least would be good). No packages. No modules. No generics. No annotations, mix-ins, actors. No properties. No interfaces. No abstract classes. Horrible to maintain on large projects. Horrible tooling. Bad performance compared to VM or Native code. So much more.
There is a increasing trend: many people do not want to code in JavaScript. This is happening because more and more engineers with experience in other languages are forced to deal with JS now days and they are trying to come up with alternate approaches.
I for one hope something succeeds, but would prefer more of a bytecode in browser solution than transpiling to JS. One can dream.
I don't think you can dismiss someones dislike for a language as "they don't know how to use it". Common, many people have been building applications on client and server for 15+ years using JS and whatever exists on the backend. And 90% of the time, the backend language is better, and has way better tooling.
So you can understand and master JS (including prototypical programming) and still hate it.
JS has lots and lots of fundametal issues. Weird OO implementation (argue all you want but prototype inheritance is not what the prevailing wisdom is on how to do OO), no type system (at least give the option!), no packages/modules, no generics.
Don't people want dev tools to better help them building and refactoring web code? Web dev is like 15 years behind server development.
A byetcode/VM approach would be an improvement on the web client. This has been used successfully for 10+ years on the server (JVM, CLR), so why not learn from things and advance the state of web development.
I don't understand why people defend JS so passionately. It was build in like 2 weeks, wasn't designed to build large complex applications, and hasn't really advanced at all since its inception. There are better options out there and the web development community should welcome any improvements to close the gap from Native to web.