Node.js has been around since 2009 and has since grown into a major player that supports Linux, OSX, and Windows environments, has its own package manager, and which has, through rapid growth, since reached major version 7 (current) or 6 (LTS).
It would be remiss to not mention the fact that Node.js is used by everyone, from the solo programmer, working on their pet project, to a megacorporation, which is building a system that will serve millions of users.
Node.js can thus be used in all kinds of projects. Be it a tiny microservice or a giant monolithic server, it can do it all.
There is no doubt that Node.js is an extremely versatile piece of technology. It has a huge following, a gigantic set of existing libraries, and it is very easy to setup and run in both a “traditional” server environment or with specialized containerized continuous integration systems.
Node.js took the concepts of Ruby’s Event Machine and Python’s Twisted even further. It relies on an event loop, which is entered after input script execution, exited after the last callback has been performed, and which generally behaves like the one in browsers, i.e. it is hidden from the user.
The whole runtime was built with HTTP efficiency in mind, which makes it a perfect candidate for web libraries and/or frameworks.
There are apps that run on several major versions of Node.js currently in production, the latest LTS version at the time of this writing being version 6.10.2, the current version 7.9.0, and v8.0.0 nightlies are available.
Version 6.10.2 LTS, has 99% support for features of ES2015 and 100% support for features of ES2016, though it lags a bit in ES2017 features, of which it only covers 23%.
The current version 7.9.0, however, covers 99% of ES2015, 100% of ES2016, and 54% of ES2017 features.
The version 8.0.0 nightlies raise the stakes even more to 65% of ES2017 features. Due to this being a development branch, it is not yet suited for production use.
You can check node.green for latest information on support of the various ES standards.
Project and Package Management
Npm and yarn use different file management philosophies but are compatible with each other, as both use the Node.js project configuration file package.json, which records project metadata, dependencies, scripts etc.
All these are reasons why we simply must recommend that you give Node.js some serious consideration. And once you decide it is the right choice for your needs, our Node.js programmers will be more than happy to assist you in fulfilling them in all stages — from planning to final sign-off.