Birth
- Named Node: Major refactoring: program name now "node"
Ryan Dahl's code submission on 2009/3/3 named the NodeJS project in its eggshell as node,从此,世界上多了一个 Node.js
2009
-
Discuss npm (Node package manager): First very early preview of npm, the Node package manager
-
First public evolution: Ryan Dahl's (Creator of Node.js) Original Node.js Talk
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 born: Express: A Node.js web development framework
-
Socket.io born: Socket.io initial release
-
Heroku provides Node.js support: Experimental Node.js Support on Heroku
-
Second public speech: Ryan Dahl's Google Tech Talk on Node.js
-
Node.js releases v0.2.0: Node.js 0.2.0 released
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
-
Beginner tutorial appears: Node.js Guide
-
Forum opened: Ryan Dahl's AMA on Reddit
-
npm officially released: npm 1.0: Released
-
Beginner tutorial ebook appears: The Node Beginner Book, an introduction to Node.js, is now complete
-
Put into production use: LinkedIn uses Node.js
-
Tell Node.js story: Ryan Dahl talks about the history of Node.js and why he created it
-
Another large enterprise started using it: Node.js in production at Uber
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
-
Founder leaves: Node.js creator Ryan Dahl steps away from Node's day-to-day
-
Node.js releases v0.8.0: Node.js v0.8.0 [stable] is out
-
Commercial solution framework appears: Hapi, a Node.js framework
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
-
CMS appears: Ghost: Blogging with Node.js
-
Ecosystem technology stack combination best practice appears: The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
-
eBay boards ship: How We Built eBay's First Node.js Application
-
Memory problem exposed: Node.js Memory Leak at Walmart
-
PayPal open sources Express-like framework: PayPal releases Kraken, a Node.js framework
-
Radical web development framework appears: Koa - Web framework for Node.js
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
-
Hand over baton again: TJ Fontaine takes over Node project
-
Establish advisory board: Node.js Advisory Board
-
Netflix boards ship: Node.js in Flame Graphs - Netflix
-走向分裂: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
-
IO.js first moves to 1.0: IO.js 1.0.0
-
Establish Node.js Foundation: Joyent Moves to Establish Node.js Foundation
-
IO.js and Node.js reconcile: IO.js and Node.js reconciliation proposal
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
-
npm supports private modules: npm Private Modules
-
Third leader leaves: Node lead TJ Fontaine is stepping down and leaving Joyent
-
IO.js merges into Node.js: Node.js and io.js are merging under the Node Foundation
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
-
First LTS release: Node v4.2.0, first Long Term Support release
-
New member joins foundation: Apigee, RisingStack and Yahoo join the Node.js Foundation
-
Node Interactive conference: Node Interactive
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 new CTO: CJ Silverio becomes the CTO of npm
-
First Node Interactive conference in Europe: The first Node Interactive in Europe
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
-
Launch developer certification program: Node.js Certification Program to be launched by the Node Foundation
-
NASA boards ship: NASA's Node.js Case Study Released
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
-
Release v8.0: What's new in Node 8
-
N-API support: N-API: Next generation Node.js APIs for native modules
-
Foundation new leader: Mark Hinkle becomes the new executive director of the Node Foundation
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
-
Native HTTP2 support: HTTP2 Arrives into the Node.js Core
-
First Node.js survey report: The Node.js Survey of 2017 Released
-
Welcome new V8 engine: A new V8 is coming, Node.js Performance is Changing
-
Equipped with new V8 engine: Node.js 8.3.0 is now available shipping with the Ignition + TurboFan execution pipeline
-走向分裂 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
-
First official development status report: Node.js State of the Union 2017
-
8.x enters stable stage: Node.js 8 Moves into Long-Term Support and Node.js 9 Becomes the New Current Release Line
-
Continue crazy conferencing: Node.js Interactive 2017 Vancouver
-
npm account security improvement: Two-factor authentication & read-only tokens arrive to npm
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
-
Collect case showcase: Announcing The Node.js Application Showcase
-
Create JS Interactive conference: Introducing JS Interactive: An Event for the JavaScript Ecosystem
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
-
Support HTTP2 push feature: Node.js can HTTP/2 push!
-
Open 10.x: The Node.js Project Introduces Latest Release Line: Node.js 10.x
-
Release npm 6: Announcing npm @6
-
Release third annual survey report: Third Annual Node.js User Survey Data Now Available
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
-
Node.js founder reveals 10 regrets: Ryan Dahl: 10 Things I Regret About Node.js
-
Google App Engine supports Node.js deployment: Now, you can deploy your Node.js app to App Engine standard environment
-
Cross-LTS N-API support: N-API: Next generation APIs for Node.js native addons available across all LTS release lines
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
-
Conferencing, crazy conferencing: Node+JS Interactive 2018 Videos released
-
10.x welcomes LTS, 11.x on agenda: October Brings Node.js 10.x to LTS and Node.js 11 to Current!
-
Replan ES Module: ECMAScript modules in Node.js: the new plan
After experimental support (Node.js 8.5.0 (2017-09-12)), formal ES Module support finally enters agenda
2019
Q1
-
Introduce Node.js working groups: Introducing Node.js Working Group Series: From Security to Performance
-
nodejs.dev goes online: Node.js Selected by Google for .dev Top Level Domain Early Access
-
Node.js Foundation + JS Foundation = OpenJS Foundation: Introducing the OpenJS Foundation: The Next Phase of JavaScript Ecosystem Growth
-
Prepare for conference: Now Open! Call For Papers for Node+JS Interactive 2019
First introduce foundation's internal working mechanism, further open and transparent. Immediately after, Node.js Foundation and JS Foundation merge, establish OpenJS Foundation
Q2
-
Welcome new experimental ES Module support: Announcing a new --experimental-modules
-
npm personnel changes: Nice People Matter? NPM may stand for Not Politely Managed – job cuts leave staff sore
-
Node.js founder starts deno: Ryan Dahl: Deno, a new way to JavaScript
-
Release Node.js 12: Introducing Node.js 12
-
npm open source and profit contradiction: The Economics of Open Source by C J Silverio
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?
No comments yet. Be the first to share your thoughts.