Node.js
JavaScriptはもともとWebブラウザに読み込んだWebページ上で動作させるためのプログラミング言語として発達したが、Node.jsは汎用の実行環境で、オペレーティングシステム(OS)のコマンドラインやWebサーバなどで動作させることができる。JavaScriptの実行エンジン自体は米グーグル(Google)社が開発しているオープンソースのV8エンジンを採用している。
イベント駆動(イベントドリブン)型のプログラムに適しており、外部からの接続を待ち受けて、接続要求を受信したら対応するプログラムを起動し、処理を行い応答を返す、といったサーバ側で必要となる処理を簡潔に記述することができる。サーバ開発が行いやすいよう、HTTP通信やネットワークソケットなどの機能も標準で提供される。
ストレージ上のファイルの読み書きなどのI/O処理をプログラムの実行と非同期に行う「ノンブロッキングI/O」を採用しており、同時に多数の処理要求があった際にI/O処理の結果待ちで性能が著しく低下する現象(C10K問題)を軽減することができる。
機能はモジュール化されており、各開発者が必要なモジュールを組み合わせて開発環境や実行環境を構成することができる。「npm」(Node Package Manager)というパッケージ管理システムが提供され、ネット上で様々な開発者が公開しているモジュールを取り寄せて組み込むことができる。
Node.jsはライアン・ダール(Ryan Dahl)氏が開発を創始し、2009年に最初のバージョンを公開した。MITライセンスに基いてオープンソースソフトウェアとして配布され、誰でも自由に入手、利用、改変、再配布などすることができる。当初はLinuxなどUNIX系OSのみの対応だったが、Windowsなど他の環境へも移植されている。