プログラミングパラダイム 全体マップ
プログラミングパラダイム
├── 命令型 (Imperative)
│ ├── 手続き型 (Procedural)
│ └── オブジェクト指向 (OOP)
└── 宣言型 (Declarative)
├── 関数型 (Functional)
├── 論理型 (Logic)
└── リアクティブ (Reactive)
各パラダイム早見表
| パラダイム | 核心思想 | 代表言語 | 一言 |
|---|---|---|---|
| 手続き型 | 上から順に処理 | C, Pascal | 料理レシピ |
| OOP | モノ中心に設計 | Java, Ruby | 役割分担 |
| 関数型 | 関数の組み合わせ | Haskell, Elixir | 数学的 |
| 論理型 | 事実とルールを宣言 | Prolog | 推論エンジン |
| リアクティブ | データの流れで設計 | RxJS | パイプライン |
各パラダイムの詳細
手続き型
「どうやるか」を順番に書く
x = 1
x = x + 1
print(x) → 2
一番直感的。最初に学ぶやつ。
オブジェクト指向
「モノ」に責務を持たせる
class Dog
def bark → "わんわん"
end
犬.吠える()
Rails がまさにこれの塊。
関数型
「状態を変えない」「副作用を排除」
f(x) = x + 1
g(x) = x * 2
g(f(1)) → 4 // 合成するだけ
副作用ゼロが理想。React Hooksの思想もここから来てる。
論理型
「事実とルール」を宣言して推論させる
人間(ソクラテス).
死ぬ(X) :- 人間(X).
→ 死ぬ(ソクラテス)? → true
AIや推論エンジンで使われる。現代では超ニッチ笑
リアクティブ
データの流れをストリームで表現
クリックイベント
└──→ フィルター
└──→ マップ
└──→ 画面更新
RxJSとかがこれ。非同期処理が得意。
現代の主流言語はどれ?
JavaScript / TypeScript
└── OOP ✅
└── 関数型 ✅(map, filter, reduce)
└── リアクティブ ✅(RxJS, Signal)
Ruby(Rails)
└── OOP ✅(主軸)
└── 関数型 ✅(少し)
Haskell
└── 関数型 ✅(純粋関数型の極み)
現代の言語はほぼマルチパラダイムだよ。 1つに縛られてない。