Language: EN


Brief history and evolution of Node.js

The history of Node.js began in 2009 when its author, Ryan Dahl, first presented 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, such as Apache HTTP Server, had problems handling a large number of simultaneous connections.

On May 27, 2009, Dahl officially presented Node.js as an open-source JavaScript runtime environment on the server side. It worked 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 did not simply interpret JavaScript, but compiled it to machine code.

In addition, it combined it with a non-blocking event loop and a low-level I/O API. It allowed Node.js to efficiently handle thousands of simultaneous connections, marking a significant difference compared to existing technologies at the time.

This marked the beginning of a new era in web development, where developers could use JavaScript on both the client and server sides, making it easier to create fast and scalable web applications.

Growth and popularization

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

This was a huge boost for Node.js. Without a doubt, NPM is one of the great pillars and reasons for the success of Node.js, due to its collaboration and library and module reuse capabilities.

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

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 for worse, but they were talking about it.

This expansion was followed by changes in project leadership, with Ryan Dahl handing over management to Isaac Schlueter in January 2012, and subsequently to Timothy J. Fontaine in 2014. It began 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 governance and community responsiveness.

Subsequently, the Node.js Foundation was formed in February 2015, which aimed to reunify Node.js and io.js. This was accomplished in September 2015 with version 4.0 of Node.js.

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

In short, a bit of “drama” that usually happens in all projects that end up becoming big. And that we comment on to have a bit of industry culture and computer history…

Versions and improvements

Node.js, as a tool, has continued to evolve with improvements in performance, security, and functionality. 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 applications in production. While non-LTS versions have the latest changes and improvements, but are not intended for use in production.

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

In 2018, native support for HTTP2 was included. In 2019, native support for ECMAScript was added. In 2023, support for .env files was included, improvements in the module API, and experimental support for the cppgc garbage collection library for C++ add-ons.

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

Of course, it has had different alternatives and competitors. But, today, it is the leading representative of its kind, and is a tool with a long life ahead.