@physicalscience: It sounds like you've had some bad experiences with Javascript. As a full stack web dev focusing on front end, I admit there are a lot of things that are bad about Javascript. That team passing around an object for everything? Sounds like they didn't quite know what they were doing. It's pretty easy to define constants/environment level variables in Node (especially since they're integrated the majority of the ES6 spec, and you can actually make them constants). Every language has dependencies, and unfortunately, JS tends to have a lot of smaller ones. It's getting better, but there is a lot of room for improvement. And the callback hell you're referring to? That's gone by the wayside now that we have promises, but it is just as easily mitigated by using a pattern that is appropriate to your application. Maybe an observer pattern would have worked better there?
There are excellent use cases for Javascript, even on the back end. Being asynchronous and single threaded can be good, especially if you need to keep things lightweight. All of these sound more like bad practices by programmers who weren't quite sure of what they were doing, rather than faults of the language itself.
You have to remember that Javascript has an extremely low bar of entry. It runs in any web browser, and you can do a "Hello World" in a single line. Compare that to Java or C++, where you need a compiler, or the SDK, and might even need to get comfortable with the command line. Granted, the bar of entry is getting lower with sites like TutorialsPoint and CodeAcademy doing the heavy lifting of compilation and offering some good, basic tutorials of what the languages can do. Javascript is still great at what it does at it's core: client side code on web sites and web applications.
If you really want to compile a binary for a web app, though, keep an eye on WASM. There are folks writing compilers for it already.
Log in to comment