Someone at Google was getting very frustrated at the pace of the Internet advancing. Web browser technology was frustrating, out-dated and lazy. So, Google did what Google does best: they approached the problem from the ground up. In fact, they literally solved the problem by building a browser from the ground up: Chrome. This time, they chose to build the actual JavaScript interpreter as a stand-alone project. They called this new JavaScript engine “V8”.

V8 was awesome. It was insanely fast. It was stable. It was beautiful. They used almost every possible computer science trick in-the-book to optimize how JavaScript was executed. This was back in 2008.

In 2009, a guy named Ryan Dahl had a brilliant idea. He thought to himself “Google Chrome is a great web browser partly because of the V8 engine, but what if I moved V8 to the server side and executed JavaScript on the server?”

This idea was, and still is, brilliant.

Why, you may ask?

JavaScript is a programming language. For all intents and purposes, it is a full-fledged programming language with all the necessary capabilities to build a web (software) application. The way you could develop in PHP, or Python, or Ruby, you can also build in JavaScript. The same way PHP code is executed using the PHP interpreter, JavaScript is also executed using V8.

So, Ryan took V8 to the server, built a small layer around it (to manage the runtime capabilities of JavaScript on the server) and called this new interpreter Node.js.

node.js

Developers jumped for joy. Here is why:

  • They don’t have to switch languages between the browser and the server. Developing the entire application in JavaScript now became possible. Yeah, all that stuff you did in Python and PHP, you are now doing in JavaScript.
  • Technologically superior because of its non-blocking, event-driven model.  Node.js can handle far more traffic, on far less hardware, with a far smaller development team, iterating new features in far less time. Yeah, it really is that badass.
  • Blank canvas – all the lessons learned from the past 30 years were now being ported over to Node.js. Libraries, methodologies, etc., were all being built from the ground up. No “legacy” code. No nasty libraries built by inexperienced scripters from the 1990s. All brand new.
  • Node.js package management. Similar to pip, yum, composer – Node.js has its own package manager called npm. Everything we all ever learned about package management was finally done right! Go to npm and see for yourself. Beautiful, clean, solid modules. Over 100,000 of them available for you to build your app like a Lego set.
  • Economics – with all these advantages, you can understand why the enterprise began to put its weight behind Node.js. Today, you have companies like Walmart, Yahoo, PayPal, and eBay all running Node.js on the front end.

Omed Habib, Quora