Skip to main content

Node.js Development History

Free2019-06-30#Node#NodeJS history#NodeJS birthday#NodeJS Timeline#Node.js发展历程#Nodejs历史

Archaeology scholar frontline express, Node.js timeline of major events from 2009 to present

Birth

Ryan Dahl's code submission on 2009/3/3 named the NodeJS project in its eggshell as node,从此,世界上多了一个 Node.js

2009

Package Manager is the first thing to consider, aiming to solve code reuse problems:

There are a lot of very useful modules out there, but it's tricky right now to actually use more than one of them together.

Achieve reuse through a set of module definition specifications, goals are:

  • Easy to declare and publish: Easy to define a package and publish it

  • Easy to install and reference: Should be able to easily reference open source modules, without needing to provide too much package metadata, and after installation can conveniently reference its functionality

  • Ready to use: Package version, verification, configuration, installation location etc. don't need to be concerned, all issues that don't obviously affect usability should be deferred

  • Centralized management: Share the same package, convenient for maintenance

To this day (2019/6/29), npm still has these characteristics, also determined by early design

Same year, Ryan Dahl gave first public speech about Node.js at JSConf, trying to go out

2010

Express and Socket.io are inevitable products of ecosystem development, Express as the most senior web development framework in Node.js ecosystem, still has some irreplaceable advantages today (such as mature and reliable ecosystem support)

Heroku provided experimental support for Node.js, this means took a small step forward. Meanwhile, promoting (Google Tech Talk) while continuously evolving (iterating v0.2.0)

2011

Series of beginner tutorials appearance means everyone discovered Node.js's (learning) value, afterwards LinkedIn, Uber boarded ship successively further confirmed this, also marks Node.js officially put into production use, considered an important milestone

2 years after Node.js birth, its Package Manager finally officially launched, called npm. Finally integrated into Node.js installation package, became de facto standard for Node module management:

Ultimately I included NPM in the Node distribution, which much made it the defacto standard.

Meanwhile, through Reddit forum, Youtube storytelling way to link with community, let more thoughts gather together

2012

After refactoring libuv, Node.js core part has tended towards complete, founder Ryan Dahl retires in glory, hands decision power to npm's founder Isaac Schlueter

Another mark of Node.js development tending towards maturity is enterprise-oriented solutions appeared in ecosystem, such as Hapi:

hapi is a simple to use configuration-centric framework with built-in support for input validation, caching, authentication, and other essential facilities for building web and services applications.

2013

MEAN combination practice, web development framework iteration, CMS appearance means Node.js ecosystem development enters stage of blooming

On the other hand, accompanied by large-scale application in enterprise scenarios, also gradually exposed some potential problems of Node.js itself, such as memory management

2014

-走向分裂:IO.js - Evented I/O for V8 Javascript

Node.js hands over baton again, by Timothy J Fontaine who always played important role in project takes over

Same year, Joyent company (Node.js founder's company, owns Node.js trademark) proposes establishing advisory board, plans to move from completely open to self-governance:

As the community becomes more complex, it is important that we find ways to balance the needs of all constituents and provide a platform for these organizations to come together and to provide input into the project.

This means speaking power will transfer from open source community to several large companies using Node.js (Joyent, Netflix etc.):

Previously, Node.js was run via mailing lists, GitHub issues, and anyone could contribute their idea. This idea started getting some hate because it brought control away from your average, everyday contributor and moved the power to the "big shots": companies such as Walmart, Yahoo, IBM, Microsoft, Joyent, Netflix, and PayPal.

This move provoked strong resistance from open source community, thus forked out IO.js, continue to develop rapidly with completely open community-driven model:

This repository began as a GitHub fork of joyent/node where contributions, releases, and contributorship are under an open governance model.

At this point, Node.js first走向分裂

2015

Q1

This race towards version 1.0 ended with IO.js victory. Subsequently, several large companies in advisory board joined hands to establish Node.js Foundation,表态 support community-driven open management model:

Joyent, IBM, Microsoft, PayPal, Fidelity, SAP and The Linux Foundation Join Forces to Support Node.js Community With Neutral and Open Governance, Resources for Developers

Immediately open source community responds, proposes reconciliation, because management model conflict has been eliminated

Q2

Shortly after Node.js Foundation establishment, third leader TJ Fontaine announces departure, handed over to Foundation and Community management:

It's because of this strong team, community, and the formation of the Foundation that it makes it the right time for me to step back.

Immediately after, after reconciliation, IO.js merges into Node.js, from division走向统一

Additionally, npm also provides private module support, similar to Github private repositories, considered support for commercial use

Q3

After IO.js merge, Node.js welcomes true 1.0 version, [version emperor](/articles/windowslinux 下 node 更新/#articleHeader1) officially enters 4.x era from chaotic 0.x

Q4

Released first LTS version, marks Node.js enters stable release stage

Meanwhile, Yahoo, RisingStack and other large companies also joined foundation, participate in Node.js construction together. Additionally, held first Node Interactive conference, share Node.js application value in production

2016

Q1

A boiling news is leftpad incident, exposed some problems in npm design/management:

This hasn't been the first time that members of the community have disagreed over a name. In a global namespace for unscoped modules, collisions are inevitable. npm has a package name dispute resolution policy for this reason. That policy encourages parties to attempt an amicable solution, and when one is impossible, articulates how we resolve the dispute.

Additionally, Express was incorporated as incubated project, will receive Node.js Foundation technical support:

The Node.js Foundation Incubator Program was launched last year. Projects under the Node.js Foundation Incubator Program receive assistance and governance mentorship from the Foundation's Technical Steering Committee and related working groups. The Incubator Program is intended to support the many needs of Node.js users to maintain a competitive and robust ecosystem.

Meanwhile, Google also joined Node.js Foundation, team growing larger

Q2

npm registered users broke through 210,000, among them more than 70,000 published packages. npm has become quite large thing, plays irreplaceable role in Node.js ecosystem

Q3

npm changes also relate to Node.js development, bound together like integrated installation package. Additionally, second Node Interactive conference held in Europe

Q4

Yarn launched at appropriate time, considered npm client enhancement version:

The product of that work is called Yarn — a fast, reliable, and secure alternative npm client.

Server side still uses npm registry, this is unshakable

After first LTS version (v4.2.0), v6.0 became second LTS version. Meanwhile, IBM, Microsoft and other giants start exerting force, push Node.js to version 8.0

Additionally, continue crazy conferencing, third Node Interactive selected in North America

2017

Q1

Node.js's high-speed development caused impact on industry traditional technology stacks, to solve talent skill problems enterprises face, Node.js Foundation launches developer certification program, expects certified developers possess Node.js development capability

NASA boarding ship marks "Node.js went to heaven"... joke, after all large enterprise boarding ship is no longer novel

Q2

Node.js v8.0 released, giant exertion paused, most important should be N-API support:

This API will be Application Binary Interface (ABI) stable across versions of Node.js. It is intended to insulate Addons from changes in the underlying JavaScript engine and allow modules compiled for one version to run on later versions of Node.js without recompilation.

Under community + foundation open management model, foundation changing leaders is no longer big deal like establishing advisory board

Q3

-走向分裂 again: Node.js Forked Again Over Complaints of Unresponsive Leadership

Features continue iterating, and borrowed latest V8 engine to get wave of performance improvement

Another noteworthy thing is, because of Node.js Foundation's TSC (Technical Steering Committee) execution power problem, Node.js走向分裂 again (new fork called Ayo, still rhymes with IO.js)

Q4

From official report, Node.js has reached quite large scale application:

Every day there are more than 8.8 million Node instances online, that number has grown by 800,000 in the last nine months alone. Every week there are more than 3 billion downloads of npm packages. The number of Node.js contributors has grown from 1,100 contributors last year to more than 1,500 contributors today.

Meanwhile, v8.9.0 became 8.x's first LTS version, enters stable stage

Additionally, npm also took small step in security, supports account two-factor authentication

2018

Q1

Foundation builds site to collect Node.js application cases, see Application Showcase:

Amazing apps, products and projects built with Node.js

On the other hand, because Node.js and JavaScript are inseparable, might as well cooperate to conference together, called JS Interactive

Q2

npm 6 did more things in security aspect, has some control measures for packages with security problems, such as npm audit

HTTP2 and other cutting-edge features also continue advancing, user survey also didn't stop, pay attention to Node.js application trends

On the other hand, 8.x era ends, enters 10.x, expects to carry V8 engine v6.6

Q3

9 years later, Node.js's founder Ryan Dahl points out Node.js's 10 major design mistakes, including Promise API added then removed, security issues, GYP build system, package.json entry field, node_modules structure etc.

Looking back, large number of cases on npm shows cross-version (from 6.x to 10.x) N-API support indeed has practical significance

Q4

After experimental support (Node.js 8.5.0 (2017-09-12)), formal ES Module support finally enters agenda

2019

Q1

First introduce foundation's internal working mechanism, further open and transparent. Immediately after, Node.js Foundation and JS Foundation merge, establish OpenJS Foundation

Q2

Node.js founder sets out again, hopes to rebuild better Node.js, namely deno:

A secure JavaScript/TypeScript runtime built with V8, Rust, and Tokio

Meanwhile, Node.js enhanced experimental ES Module support, including dynamic import (import()) etc., and accompanied by V8 engine version upgrade and ES feature support, enters 12.x iteration

Additionally, npm seems to have some changes in operation, appeared wave of personnel changes, may relate to Node.js development:

The actual concern I have is that the JavaScript package manager and language commons are in the hands of a VC-funded company, which may or may not be having financial trouble, If they're not okay, this is something the entire JavaScript language community needs to pay attention to now.

Because Node.js language development is bound together with for-profit npm company, has always been a hidden danger:

The JS package commons is in the hands of a for-profit entity. We trust npm with our shared code, but we have no way to hold npm accountable for its behavior. A trust-based system cannot function without accountability, but somebody still has to pay for the servers. How did we get here, and what should JavaScript do now?

Reference Materials

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment