SERIES: Why not Node
The tricky thing about toxic relationships is that it might not always be obvious that you're in one. In fact, chances are you’re in a toxic relationship with NodeJS and just don’t know it. As soon as you’ve chosen NodeJS for a project you’re in the hole, and will continue to invest into getting out of it as your project scales, with very little in return.
With NodeJS you’re giving more than you’re receiving, the essence of an unfair and toxic relationship. I'm not talking about Javascript, which is the best we've got for building the front-end (unless we want to use compile-to-js alternatives like Elm). I'm talking about using NodeJS for anything beyond the simplest use cases or server-side rendering of JS applications.
In this article I’ll back up this claim as best as I can, and use a few different examples of newer languages (specifically Go, Rust and Elixir) that I believe should be chosen for new projects moving forward.
I don't mean to be alarmist or to sensationalize this topic, and if you're already using NodeJS there's no need to throw it all out and start over. However, if you're starting a new project and your gut is to pick NodeJS I'd recommend you read this article before making that commitment to your future ex.