Node.js 4.0について、Mikeal Rogers氏とのQ&A

先日取り上げたように、Node.jsとそのフォークであるio.jsが一つのコードベースになり、最初のリリースが行われた。InfoQでは、Node.js FoundationのコミュニティマネージャであるMikeal Rogers氏に詳しく話を聞いた。

InfoQ: 今回のリリースと最初のコード統合について、Node.jsコミュニティ、またJavaScriptコミュニティ全体からの反応は、全体としてどうでしたか?

Rogers: これは大きな勝利です。フォークが統合されるのはまれなことですが、私たちは大変な労力を注いで、これを成し遂げました。

今回のリリースには、Node.jsとio.jsのコミュニティが一体となって貢献しました。また、これまで以上のコントリビュータと会社が手助けしてくれました。1年前を考えると、これは信じられないことです。

私たちはプロジェクトのコアバリューを犠牲にすることなく、すばらしいものを作り上げたと思っています。引き続き、もっと多くのコードをすばやくリリースしていきたいです。

InfoQ: 去年の12月にio.jsがNode.jsをはじめてフォークしたとき、どうなると思っていましたか? この9ヶ月が容易であったと誰も思わないでしょうが、その道のりであなたを驚かせたことは何ですか?

Rogers: コミュニティは本当にすばらしいと感じました。プロジェクトのほぼ全ての面で、コントリビュータが増えました。想定をはるかに超えて、今も成長し続けています。

InfoQ: io.jsの意図は常にNode.jsと一体となることでした。それにかかった時間についてはどう感じていますか? 予想外にすばやく実現して驚きましたか、それとも逆に、期待していたよりも時間がかかりましたか?

Rogers: 新たなリリースに要した時間について、実に満足しています。今回のリリースに含まれている、すばらしい機能を考えるとなおさらです。io.js (version 3) の最新バージョンは、ビルドプロセスの加速に役立つベータ版だったと捉えています。

これは多くの人に互換性のテストをしてもらうのに役立ちました。ネイティブアドオンをNAN(Native Abstractions for Node)にアップグレードし、多数の変更に備える助けになりました。そして、バグやパフォーマンス問題を早期発見するのに、とても役立ちました。

InfoQ: 「Fragmentation」で、あなたはコミュニティが分断するという懸念はほとんど根拠のないことだ、と読者を安心させました。Nodeコミュニティは思っていた以上に強固だと感じていますか? 4.0をリリースした今、Node.jsコミュニティのムードは2014年と比べてどうですか?

Rogers: この数ヶ月、一体となったio.jsとnode.jsのコントリビュータたちはうまく協力してきました。4.0をリリースできて、ほっとしています。これでコードベースを統合する作業を終えて、node.jsをイテレーティブに発展させることに完全にフォーカスできます。

InfoQ: io.jsができた結果、Nodeにもたらされた一番の技術的改善は何ですか、最も顕著だと思うものを教えてくれませんか?

Rogers: Node.jsにはio.jsのすばらしい機能がいくつも含まれています。io.jsプロジェクトから、REPLサポート、TLS暗号化、PPCビルド、dgraph、node、bufferモジュールに対する修正などがもたらされましたが、おそらく最も注目すべきことは、JavaScriptのES2015仕様でしょう。また、アイドルメモリ利用は0.12.xのときの約1/4になりました。これは私たちにとって非常に大きいことです。

InfoQ: 重要な変更の一つに、V8エンジンのアップデートがありますよね。

今年の初め、TJ Fontaine氏が「V8の新しいバージョンを単に受け入れて、Node.jsのリリースサイクルをV8のアップストリームに負わせてはいけない」、代わりに「V8の変更からNode.jsを切り離して、さまざまなランタイムに門戸を開くべきだ」と述べました。もちろん、あなたはFontaine氏の意見に賛同できないでしょうが、こうした意見が出るのももっともだと思いますか?

Rogers: V8チームはランタイムを大きく改善しており、すべてのnode.jsユーザがそのメリットを享受しています。

もちろん、そうしたメリットを取り入れるのを今すぐやめたいとは思いませんが、ネイティブモジュールエコシステムは、V8チームの開発と同じスピード(6週おき)でV8の新しいバージョンを取り入れることができないことも認識しています。

ネイティブエコシステムにとって、年に2回のメジャーリリース、うち1つをLTSサポートとするのが、安定性とイテレーティブな改善のちょうど良いバランスだと考えています。

最新リリースについて、詳しくは技術ブログ「Node v4.0.0 (Stable)」を参照してほしい。Node.jsに貢献したい読者は、Working Groupsのリストhttps://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.mdを眺めて、コントリビューションガイドhttps://github.com/nodejs/io.js/blob/master/CONTRIBUTING.mdを読んでみよう。