数年前であれば、JavaScriptがサーバサイドのプログラミング言語として重要な存在になるという考えは、一笑に付されたかもしれない。しかし、Node.jsのおかげで今やJavaScriptは、ウェブ開発だけでなく、「Cloud Foundry」といったPaaSの開発でも欠かせない言語となっている。実際のところ、Stack Overflowが6万4000人のプログラマーを対象に実施した年次調査「Developer Survey」によると、Node.jsはあらゆる開発者向けフレームワークのなかで最も人気が高いものになっているという。
Node.js FoundationのエグゼクティブディレクターであるMark Hinkle氏は「800万を超えるNode.jsインスタンスがオンライン上に存在しており、ユーザーの4人に3人が今後12カ月の間にNode.jsの利用を拡大する計画だとしている」と述べている。
なぜだろうか?それは「このアプリケーションプラットフォームによって、開発者の満足度と生産性が高まるとともに、コスト削減やアプリケーションパフォーマンスの向上というメリットがもたらされている」ためだという。また、ビジネスという観点から見た場合、Node.jsはその市場を拡大しつつある。
Hinkle氏は「単なるアプリケーションプラットフォームという枠を越え、社内の実データを用いた手っ取り早い実験や、アプリケーションの近代化、IoTソリューションに利用されるようになってきている」と続けている。さらに同氏によると、「Node.jsの利用はOps/DevOps分野やモバイル分野でも増え始めている」という。
同氏は、Node.jsの使用が「コンテナやクラウドネイティブなアプリだけでなく、データベースや、フロントエンドのフレームワークやライブラリ、ロードバランシング、メッセージシステムといったものの開発にも広がってきている」と述べている。
念のために補足しておくと、Node.jsは「Google Chrome」にも搭載されている「Google V8 JavaScript」エンジン上で動作するJavaScript実行環境であり、サーバサイドでのアプリ実行を念頭に置き、軽量かつ高効率という目標を実現するためにイベント駆動型のノンブロッキングI/Oモデルを採用している。そのエコシステムを支えるパッケージ管理ツール「npm」に集積されているオープンソースライブラリは、世界最大規模を誇るまでになっている。
Node.jsの生みの親であるRyan Dahl氏によると、Node.jsの持つ大きな利点は、応答待ちを発生させることなく、到来したリクエストを常時処理できるところにあるという。それ故に、ある1つのプロセスがCPUリソースを消費し切ってしまえばアプリケーションのクラッシュにつながりかねないという批判もある。これに対してNode.jsの支持者らは、Node.jsの小さなプロセスがCPUリソースを大量に消費することはないと指摘している。
Cloud Foundryが普及したおかげで、Node.jsに肯定的な人たちの数はさらに増加している。
Node.jsは「Amazon Web Services」(AWS)上で多く使われているようだ。Node.jsに関する調査において、サーバレス配備でNode.jsを使用している回答者のうち、68%は本番環境でAWSを使用している。Node.jsは、そういった環境におけるバックエンドのサービスや、フルスタックのアプリケーション、フロントエンドのサービス、JavaScriptの従来の主戦場、DevOpsで用いられている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。