historia-de-nodejs

Brief history and evolution of Node.js

  • 4 min

The history of Node.js begins in 2009 when its author, Ryan Dahl, first introduced this platform at the JSConf EU conference.

Dahl was looking for a way to create highly scalable real-time web servers. They had the problem that servers of the time, like Apache HTTP Server, struggled to handle a large number of simultaneous connections.

On May 27, 2009, Dahl officially presented Node.js as an open-source, server-side JavaScript runtime environment. It ran exclusively on Linux and Mac OS X.

Node.js worked with Google Chrome’s V8 engine, which had been released on September 2, 2008. It stood out for its speed, as it didn’t simply interpret JavaScript, but compiled it to machine code.

Furthermore, it combined this with a non-blocking event loop and a low-level I/O API, allowing Node.js to efficiently handle thousands of simultaneous connections, marking a significant difference compared to existing technologies of the era.

This marked the beginning of a new era in web development, where developers could use JavaScript on both the client and server sides, facilitating the creation of fast and scalable web applications.

Growth and Popularization

In January 2010, NPM, the Node.js package manager, was introduced. NPM allowed programmers to manage Node.js projects, and easily install, share, and publish reusable code packages.

That was a huge boost for Node.js. Without a doubt, NPM is one of the great pillars and reasons for Node.js’s success, due to its capacity for collaboration and reuse of libraries and modules.

By June 2011, Microsoft and Joyent had implemented a native version of Node.js for Windows. This greatly expanded the tool’s reach and audience. After all, Windows has a 90% market share on Desktop.

Node.js quickly became a popular and everyday tool. It was the “hype” technology of the moment. Everyone was talking about Node.js. For better or worse, but they were talking about it.

This expansion was followed by changes in the project’s leadership, with Ryan Dahl handing over management to Isaac Schlueter in January 2012, and subsequently to Timothy J. Fontaine in 2014. It came to be maintained by the company Joyent, which hired Ryan Dahl as an employee.

In 2014, tensions arose around the governance of Node.js, leading Fedor Indutny to create a fork called io.js, which sought to be an alternative with more open and community-responsive governance.

Later, the Node.js Foundation was formed in February 2015, with the goal of reunifying Node.js and io.js. This was achieved in September 2015 with Node.js version 4.0.

Subsequently, the JS Foundation and the Node.js Foundation merged into the OpenJS Foundation, which is currently in charge of Node.js development.

In short, a bit of “drama” that tends to happen in all projects that end up becoming large. And we mention it to have a bit of industry culture and computing history.

Versions and Improvements

Node.js, as a tool, has continued to evolve with improvements in performance, security, and features. Like many other developments, in 2015 Node.js adopted the form of LTS and non-LTS versions.

LTS (Long-Term Support) versions offer stability and long-term support for production applications. While non-LTS versions have the latest changes and improvements, they are not intended for use in production.

Since 2013, Node.js has changed a lot. Improvements have been included in the performance of the V8 engine, and optimization for multi-core architectures.

In 2018, native support for HTTP/2 was included. In 2019, native support for ECMAScript modules was added. In 2023, support for .env files was included, improvements to the module API, and experimental support for the cppgc garbage collection library for C++ addons.

That is, as we can see, Node.js is a tool that continues to evolve with each version, adding new features and improvements.

Of course, various alternatives and competitors have emerged. But, to this day, it is the leading representative of its kind, and is a tool with a long life ahead of it.