実行環境

書いたコードを実際に動かすプログラム

言語と実際の機械の間に立つ。同じ言語でも実行環境が違えば、動く場所と使える機能が変わる。

いつこの種別を選ぶか

言語を選んだ時点でほぼ決まる。JavaScript だけは、ブラウザ・Node.js・Deno・Bun・エッジ環境と選択肢があり、動かす場所に合わせて選ぶ

他の種別との関係

種別 どういう関係か
言語 言語が「書き方」、実行環境が「動かし方」。Python は CPython、JavaScript はブラウザや Node.js が動かす
フレームワーク フレームワークは特定の実行環境を前提にしていることが多い。Next.js は Node.js、Hono は複数の実行環境で動く
マネージドサービス サーバーレスの実行基盤は、実行環境を事業者が用意する。自分で選べる範囲は基盤によって決まる
言語 (から見ると) 言語は書き方の決まりで、それを実際に動かすのが実行環境。多くの言語は標準の実行環境とセットで配布されるが、JavaScript のように実行環境を別に選ぶ言語もある
マネージドサービス (から見ると) サーバーレスの基盤では、実行環境の種類とバージョンを事業者が決める

この種別を理解する

「言語」と「実行環境」を分けて考える理由。 JavaScript はもともとブラウザの中でしか動かなかった。Node.js という実行環境が生まれて、同じ言語がサーバーやコマンドラインでも動くようになった。つまり言語は同じでも、実行環境が変わると「動く場所」「使える機能(ファイル操作、ネットワーク)」「速度」が変わる。

多くの言語では意識しなくてよい。 Python をインストールすると CPython という実行環境が一緒に入る。Go や Rust は実行環境ごと1つのファイルに固めて配布する。実行環境を別に選ぶ必要があるのは、実質 JavaScript(TypeScript)だけである。

実行環境の制約は「動く場所」に現れる。 Node.js の標準機能がエッジ環境(Cloudflare Workers)では一部使えない、ブラウザにはファイルシステムがない、といった違いは、フレームワークやサーバーレス基盤を選ぶときに効いてくる。

次に読む種別。 実行環境の上に載る「フレームワーク」、実行環境を事業者が用意する「マネージドサービス」。

この種別のツール(1件)

分野ごとに並べている。「主要制約」は各ツールで最も先に当たる限界。

言語・実行環境 プログラムを書くための「言葉」と、それを動かす仕組み

ツール 学習 料金 成熟 主要制約 検証
Node.js
JavaScriptをブラウザの外(サーバー・CLI)で動かす実行環境
無料 安定 JavaScript の実行スレッド: JavaScript のコードは1本のイベントループで実行され、ファイル I/O などの重い処理はワーカープールに委ねられる