io.jsのバージョン1.0がリリースされた – ただし,このプラットフォームが“実用レベル”に達した,という意味ではない。
io.jsプロジェクトは論争の中で,Node.jsのフォークとしてスタートした。今回のリリースでNodeを追い越したことになるが,FAQには,その意図が明確に記されている。
“リリースを1.0.xとしたのは,実用レベルと見なされるべき,という意味ではありません。Node.jsよりも上のメジャーバージョンを保証するのに十分な,重要なバージョンであったからなのです。”
親にあたるNode.js v10.35からの重要な変更点については,io.jsのChangeLogに詳説されている。その内容としては,
- バンドルされているV8 JavaScriptエンジンが,Node.js v0.10.35の3.14.5.9,v0.11.14の3.26.33から,io.js v1.0.0では3.31.74.1に大きくアップグレードされました。これによって多数の修正やパフォーマンス向上だけでなく,ES6の言語機能が新たにサポートされています!この件に関する詳しい情報は,io.jsのES6のページを参照してください。
- その他のバンドルテクノロジについても,アップグレードされています。
- c-ares: 1.9.0-DEV から 1.10.0-DEV に
- http_parser: 1.0 から 2.3 に
- ibuv: 0.10.30 から 1.2.0 に
- npm: 1.4.28 から 2.1.18 に
- openssl: 1.0.1j から 1.0.1k に
- punycode: 1.2.0 から 1.3.2.に
- プラットフォーム全体のパフォーマンスと安定性が向上しました。
2014年12月に投稿されたブログ記事 “io.js”では,筆者であるプロジェクトチームメンバのIsaac Schlueter氏が,週毎のリリースやアクティブな開発,“V8の各バージョンのサポート”といった,フレームワークの目標を列記している。それと同時に,“Node.jsを対象としてこれまで開発されてきたnpmエコシステムとの互換性を持ったリリースを,規則性を高めながら達成する”という,チームとしての意図も表明された。
そして,早くも1ヶ月後には,V8 4.1.7を備えたio.jsバージョン1.03がリリースされる。
“ES6 on io.js”の記事にもあるように,1.03には,“joynet/node@0.12.xに同梱されるバージョン 3.26.33を凌駕する,豊富なES6機能が実装”されている。さらに,V8で安定していると思われるすべての機能が “io.jsではデフォルトで有効になっているので,実行時フラグの類いは一切不要”だ。
1.03ではこの他にも,npmが2.2.0に,V8が3.3.1から4.1にアップグレードされるなどの変更が含まれている。
JavaScriptコミュニティからの反応は総じて好意的である。ただし一部 -- Hacker Newsのio.jsディスカッションなど -- では,io.jsが開発“フォーク”ではなく“スポーク(spork)”とされている点について,疑問の声も上がった。この意味については,Elisée Maury氏が次のように説明している。
彼らがNode.jsをどうしてもフォークしたくないと言うので,ちょっとした遊び心です。io.jsはNode.jsと一緒に発展していくつもりですし,コアチームとしては,いつでもNode.jsにマージバックしてもよいと思っています。
io.jsとNodejsのパフォーマンスを比較したGeekregator.comの先日の記事では,この2つに"明確な勝者"は存在しない,とされている。
iojs/io.js GitHubリポジトリのメンテナンスはTC(Technical Committee)と,彼らが継続的に募集している協力者によって行われている。io.jsチームでは,プロジェクトへのコントリビュートは誰でも可能だ,としている。io.jsの行動規約とコントリビューション,コントリビュータシップはすべて,“オープンガバナンスモデル”に従ったものだ。