メインコンテンツへ移動

Node.js 発展史

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

考古学者最前線速報、Node.js の 2009 年から現在までの年表

誕生

Ryan Dahl は 2009/3/3 のこのコードコミットで、殻の中の NodeJS プロジェクトを node と命名しました。从此、世界に Node.js が 1 つ増えました

2009

Package Manager は最初に考慮すべきことで、コード复用の問題を解決することを目的としています:

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.

一連のモジュール定義規範を通じて复用を実現し、目標は:

  • 宣言しやすく公開しやすい:package を定義して公開するのが非常に簡単

  • インストールしやすく引用しやすい:オープンソースモジュールを簡単に引用でき、多くの package メタ情報を提供する必要がなく、インストール後にその機能を非常に簡単に引用できる

  • すぐに使用可能:package のバージョン、検証、設定、インストール位置などは気にする必要がなく、可用性に明らかな影響を与えないすべての問題は先送りすべき

  • 集中管理:同じ package を共有し、維持管理に便利

迄今(2019/6/29)まで、npm は依然としてこれらの特徴を持ち、早期の設計によって決定されたものです

同年、Ryan Dahl は JSConf で Node.js に関する初の公開講演を行い、外に出ていこうと試みました

2010

Express と Socket.io は生態発展の必然的な産物で、Express は Node.js 生態の中で最も資格の古い Web 開発フレームワークとして、今でもいくつかの代替困難な優勢を持っています(例えば成熟信頼できる生態サポートなど)

Heroku は Node.js に実験的なサポートを提供し、これは外に一歩踏み出したことを意味します。同時に、一方では推廣(Google Tech Talk)、一方では継続的に進化(v0.2.0 をイテレーション)

2011

一連の初心者チュートリアルの登場は、みんなが Node.js の(学習)価値を発見したことを意味し、その後 LinkedIn、Uber が次々に船に乗ったことはこれを裏付け、Node.js が正式に本番使用に投入されたことを示し、重要なマイルストーンと言えます

Node.js 誕生 2 年後、その Package Manager がようやく正式に面世し、npm と呼ばれます。最後に Node.js インストールパッケージに統合され、Node モジュール管理の事実上の標準になりました:

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

同時に、Reddit フォーラム、Youtube で物語を語る方式を通じてコミュニティと連動し、より多くの思想を集めました

2012

libuv をリファクタリングした後、Node.js コア部分はほぼ完成し、創始者 Ryan Dahl は功成り名遂げて退き、決定権を npm の創始者 Isaac Schlueter に渡しました

Node.js 発展が成熟に向かうもう 1 つの標識は、生態の中に企業向けソリューションが登場したことです。例えば 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 組み合わせプラクティス、Web 開発フレームワークの更新、CMS の登場はNode.js 生態発展が百花繚乱の段階に入ったことを意味します

別の側面では、企業シーンでの大規模応用に伴い、Node.js 自身のいくつかの潜在的な問題も徐々に露呈しました。例えば メモリ管理

2014

_Node.js は再びバトンを渡し*、プロジェクト中で常に重要な役割を果たしてきた Timothy J Fontaine が引き継ぎました

同年、Joyent 公司(Node.js 創始者が所属する会社で、Node.js 商標を所有)は顧問委員会の設立を提案し、完全開放から自治に向かうつもりでした:

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.

これは発言権が開放的なオープンソースコミュニティから、Node.js を使用している数社の大手企業(Joyent、Netflix など)の手に移ることを意味します:

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.

この措置はオープンソースコミュニティの強い抵抗を招き、そのため IO.js を fork し、完全開放のコミュニティ駆動モードで急速に発展し続けました:

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

至此、Node.js は初めて分裂に向かいました

2015

Q1

この 1.0 バージョンへの競争レースは IO.js の勝利で終わりました。続いて、顧問委員会中の数社の大手企業が联手して Node.js 財団を設立し、コミュニティ駆動の開放管理模式を支持する態度を表明しました:

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

紧接着オープンソースコミュニティはこれに応え、和解を提案しました。管理模式上の衝突がすでに消除されたためです

Q2

Node.js 財団設立後不久、3 代目リーダー TJ Fontaine が離脱を宣言し、財団とコミュニティに管理を委ねました

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.

紧接着、和解の後、IO.js が Node.js に合流し、分裂から統一に向かいました

另外、npm はプライベートモジュールサポートも提供し、Github プライベートリポジトリ に類似し、商用へのサポートと言えます

Q3

IO.js が合流した後、Node.js は真の意味での 1.0 バージョンを迎���、[バージョン帝](/articles/windowslinux 下 node 更新/#articleHeader1) は正式に混乱した 0.x から 4.x 時代に入りました

Q4

最初の LTS バージョンをリリースし、Node.js が安定リリース段階に入ったことを示しました

同時に、Yahoo、RisingStack などの大手企業も次々に財団に加入し、Node.js 建設に共同で参加しました。此外、初めての Node Interactive 大会も開催され、Node.js の本番での応用価値を共有しました

2016

Q1

1 つの騒がしいニュースは leftpad 事件 で、npm 設計/管理上のいくつかの問題を露呈しました:

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.

另外、Express はインキュベートプロジェクト(incubated project)に組み込まれ、Node.js 財団の技術サポートを受けることになります:

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.

同時に、Google も Node.js 財団に加入し、隊伍はますます壮大になりました

Q2

npm 登録ユーザーが 21 万人を突破し、その中で 7 万多人が package をリリースしました。npm はすでに相当庞大なものになり、Node.js 生態の中で代替不可能な役割を果たしています

Q3

npm の変化も Node.js の発展に関係し、統合インストールパッケージのように一緒にバインドされています。另外、2 回目の Node Interactive 大会が欧州で開催されました

Q4

Yarn が時機よくリリースされ、npm クライアントの強化版と言えます

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

サーバーサイドは引き続き npm registry を使用し、これは揺るぎません

初の LTS バージョン(v4.2.0)に続き、v6.0 が 2 番目の LTS バージョンになりました。同時に、IBM、Microsoft などの巨頭が発力を始め、Node.js を 8.0 バージョンに押し上げました

另外、引き続き狂ったように会議を開催し、3 回目の Node Interactive は北米で開催されました

2017

Q1

Node.js の高速発展は業界の伝統的な技術スタックに衝撃を与え、企業が直面する人材スキル問題を解決するために、Node.js 財団は開発者認証計画を推出し、認証を受けた開発者が Node.js 開発能力を備えることを期待しています

NASA が船に乗ったことは*「Node.js が天に上がった」*ことを示しました……冗談ですが、大型企業が船に乗ることはもはや珍しくありません

Q2

Node.js v8.0 がリリースされ、巨頭の発力は一段落し、最も重要なのは N-API サポート でしょう:

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.

コミュニティ + 財団の開放管理模式下では、財団がリーダーを交代することは、顧問委員会を設立したような大きなことではなくなりました

Q3

特性は継続的にイテレーションし、最新の V8 エンジンを借りて一波の性能向上を得ました

もう 1 つ注目すべきことは、Node.js 財団下の TSC(Technical Steering Committee、技術指導委員会)の実行力問題のため、Node.js は再び分裂に向かいました(新しい fork は Ayo と呼ばれ、IO.js を念じています)

Q4

公式報告書から見ると、Node.js はすでに相当大規模な応用に達しました

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.

同時に、v8.9.0 が 8.x の初版 LTS になり、安定段階に入りました

另外、npm は安全性でも一歩前進し、アカウント 2 要素認証をサポートしました

2018

Q1

  • ケース展示を集める:[Announcing The Node.js Application Showcase](https://medium.com/ @nodejs/announcing-the-node-js-application-showcase-9fbaaa3e4824)

  • JS Interactive 大会を創立:[Introducing JS Interactive: An Event for the JavaScript Ecosystem](https://medium.com/ @nodejs/introducing-js-interactive-an-event-for-the-javascript-ecosystem-a60811194b54)

財団はサイトを設立して Node.js 応用ケースを集め、Application Showcase を参照:

Amazing apps, products and projects built with Node.js

別の側面では、Node.js と JavaScript は密接不可分であるため、一緒に会議を開催することにしました。JS Interactive と呼びます

Q2

npm 6 は安全面でより多くのことを行い、セキュリティ問題のある package に対していくつかの管理措置を講じました。例えば npm audit

HTTP2 などの最先端特性も継続的に推進され、ユーザー調査も止まらず、Node.js 応用トレンドに注目しています

別の側面では、8.x 時代が終わり、10.x に入り、V8 エンジン v6.6 を搭載することを期待しています

Q3

9 年後、Node.js の創始者 Ryan Dahl は Node.js の 10 の設計ミスを指摘しました。Promise API の追加と削除、セキュリティ問題、GYP ビルドシステム、package.json 入口フィールド、node_modules 構造などを含みます

振り返って見ると、npm 上の大量のケースは、バージョン跨ぎ(6.x から 10.x)の N-API サポートが実際に実践意義があることを示しています

Q4

実験的サポート(Node.js 8.5.0 (2017-09-12))に続き、正式な ES Module サポートがようやく議題に入りました

2019

Q1

初めて財団内部の作業メカニズムを紹介し、さらに公開透明にしました。紧接着、Node.js 財団と JS 財団が合併し、OpenJS 財団を設立しました

Q2

Node.js 創始者が再度出発し、より良い Node.js を再構築することを希望しています。つまり deno です:

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

同時に、Node.js は実験的な ES Module サポートを強化し、動的導入(import())などを含み、V8 エンジンバージョンアップグレードと ES 特性サポートに伴い、12.x イテレーションに入りました

另外、npm は経営上でいくつかの変化があり、一波の人事変動が発生しました。Node.js の発展に関係する可能性があります:

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.

Node.js 言語の発展と盈利性質の npm 会社が一緒にバインドされているため、一直以来都是个隐患

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?

参考資料

コメント

コメントはまだありません

コメントを書く