Do yourself a favor and avoid all those three. Starting from the worst:
There is no "general" future proof stack. Pick the stack that's now the best for the job and not because they have biggest marketing claims (cough MongoDB cough). When I start a new project i basicly follow this plan:
Is it a website or an app (eg blog vs dataviz)
Which frontend framework (if app)
What type of data do you have
If you find that Node is slow, there is something horribly wrong in the way your app is either written or deployed.
Next, every languages represent code as "text files"... compiled or not makes no difference. Code is a human readable set of instructions. The fact that it is not compiled does mean possible runtime uncaught exceptions. This is why we have linting, unit tests and acceptance tests... If, regardless of thise you still get errors, it brings me back to my first point: you're doing something horribly wrong.
An application is, in essence a group of tools, like a db, an http server, some caching, etc. With the language simply acting as a glue between them. I don't beleive that a language can be categoricaly inferior or superior to another one- just that they all have their perks. JS for APIs is a real breeze.
If you need some help setting it up, hit me up, my fees are reasonnable ;)
The glorified text field was refering to no type system that protects you. Unit test are no replacement for a type system.
Node is slow. I did a few benchmarks before choosing my Stack and node was the slowest of them. My Haskell server could handle twice as many clients before maxing out my test rig.
Js is not a breeze, it's horrible. The express API is the worst API i have ever seen. I would never even consider node for anything more than a prototype.
To each its own, innit?
Nodejs is awesome if you REALLY KNOW nodejs. So is anything else you REALLY KNOW...
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.