Node.jsの最新バージョンとなるNode.js 10がリリースされました。

Node.jsは12カ月ごとに偶数バージョンの長期サポート対象リリース（LTS：Long Term Support）が登場することになっており、今回リリースされたNode.js 10も半年後の10月から2年半、長期サポート対象のバージョンとなります。

と同時にこの4月末で、2年半前に登場したNode.js 4.xの長期サポートが終了（EOL：End-of-Life）しました。

2015年9月に最初のリリースが登場し、10月から長期サポートに入ったNode.js 4.x（コード名Argon）は、Node.jsの開発者たちが分裂してNode.jsとio.jsの2つに分かれた後に再び両者が統合し、統一組織であるNode Foundationを結成して初めてリリースされたLTSです。

あれから2年半が過ぎ、Node.jsははじめて長期サポートのサイクルを1つ回したことになります。

Node.jsはAWS Lambdaのようなサーバレスコンピューティングの基盤としても使われ、アプリケーションのインフラとして重要なソフトウェアと見なされるようになりました。そのNode.jsが無事に長期サポートサイクルを1つ回したことで、このソフトウェアに対する信頼もまた高まったと言えるのではないでしょうか。

Node.js APIが正式版となり、JavaScriptエンジンが入れ替え可能に

Node.js 10の最大の特徴は、これまで実験的実装だったNode.js API（N-API）が正式サポートとなったことです。Node.jsはJavaScriptエンジンとしてV8を採用し、V8に依存した実装になっていました。これをAPIを策定することで切り離し、JavaScriptエンジンをプラガブルにしたのがN-APIです。

これによってV8がメジャーバージョンアップしたとしてもNode.js側で再コンパイルなどをすることなく組み込むことができるようになっただけでなく、V8以外のJavaScriptエンジン、例えばマイクロソフトが開発しているChakraCoreなども利用できるようになります。

実際に実験的なリリースとしてNode.jsのJavaScriptエンジンにChackraCoreを組み込んだNode-ChackraCoreリリースが公開されています。

ChackraCoreリリースでは、実行時の情報を記録し、アプリケーションがクラッシュなどのエラーを起こしたときに記録を基に何が起きたかを再現しつつVisual Studioの拡張機能を用いてデバッグできるTime-Travel Debuggingなどが可能になっています。