言語

プログラムを書くための「言葉」そのもの

すべての土台。他の種別はどれも、いずれかの言語の上に成り立っている。

いつこの種別を選ぶか

最初の1つは「やりたいこと」で選ぶ。データ処理・自動化なら Python、画面なら TypeScript。2つ目以降は、1つ目で足りなくなった理由(速度、配布、並列)で選ぶ

他の種別との関係

種別 どういう関係か
実行環境 言語は書き方の決まりで、それを実際に動かすのが実行環境。多くの言語は標準の実行環境とセットで配布されるが、JavaScript のように実行環境を別に選ぶ言語もある
フレームワーク フレームワークは言語の上に載る。言語を決めると、使えるフレームワークの範囲が決まる
ツール ツールの多くは特定の言語で書かれているが、使う側は言語を意識しなくてよい
実行環境 (から見ると) 言語が「書き方」、実行環境が「動かし方」。Python は CPython、JavaScript はブラウザや Node.js が動かす
フレームワーク (から見ると) 必ずどれかの言語に属する。React は TypeScript、FastAPI と pandas は Python

この種別を理解する

種別の中でいちばん下にあるもの。 画面も、サーバーも、データ処理も、どれかの言語で書かれている。言語を1つ覚えると、その言語で書かれたフレームワークやツールがすべて視野に入る。だから最初の言語は、その後に触れる分野を決める。

言語の「制約」は数字ではないことが多い。 実行速度、並列処理の得意不得意、配布のしやすさ、型検査の有無。どれも「上限が何件」という形ではなく、仕組み上の性質として現れる。このサイトでは、そうした性質も制約として出典つきで載せている。

言語とライブラリは別。 React は言語ではなく TypeScript のフレームワーク、pandas は Python のライブラリ。言語そのものは少数で、その上の道具が無数にある。言語のページを読むときは「この言語で何が書けるか」ではなく「この言語で書かれた道具がどれだけあるか」を見る。

次に読む種別。 言語を動かすのが「実行環境」、言語の上で決まった作り方を提供するのが「フレームワーク」。

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

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

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

ツール 学習 料金 成熟 主要制約 検証
Python
読みやすさを優先した動的型付け言語。データ処理・自動化・AI分野の共通語
無料 安定 スレッド並列の上限(GIL): CPython では同時に1スレッドしか Python バイトコードを実行しない。I/O 中は解放される
Go
単一バイナリに固めて配布できる静的型付け言語。並行処理と配布が軽い
無料 安定 旧バージョンのサポート期間: 各メジャー版は、その後2つ新しいメジャー版が出るまでサポート。メジャー版は2月と8月の半年ごと(実質約1年)
TypeScript
JavaScriptに静的型を足した言語。Node.jsでブラウザとサーバーを同じ言語で書く
無料 安定 型の実行時消失: 型注釈は JavaScript の一部ではなく、コンパイル時に完全に削除される。型が実行時の動作を変えることはない
Rust
メモリ安全性をコンパイル時に保証する、GCを持たない静的型付け言語
無料 安定 安定版のリリース周期: 6週間ごと(nightly→beta→stableのトレインモデル)。バージョンごとの長期サポート(LTS)はない