Node.js

Node.js is an open source, cross-platform runtime environment for server-side applications. It provides an event-driven architecture and a non-blocking I/O esssential for application scalability. Runtimes are available for Mac OS X, Microsoft Windows and Linux.

At its core Node.js uses the Google V8 JavaScript engine to execute code. It is based on single-threaded execution, although Node.js uses multiple threads for file and network events. By leveraging non-blocking I/O calls, it supports thousands of concurrent connections by enforcing callback functions to all I/O activities.

The V8 JavaScript execution engine (open sourced by Google, written in C++) compiles JavaScript source code machine code instead of interpreting, thus gaining massive performance

NPM (Node Package Manger) is a core technology of Node.js Platform that allows developers to download/install thousands of open source packages from the NPM registry.These packages allow developers to add server-side pre-built application logic. The packages range from essential helper classes to complete modules for I/O, filesystem access, database access, data object modeling and web server services.

With the maturity of client-side JavaScript architecture enforcing MVC (Mode-View-Controller) design pattern, such as AngularJS from Google, developers can now use JavaScript for programming both client-side and server-side logic.