プログラミング言語史には、ふしぎな「集中」の瞬間があります。第2章では1957〜60年に4つの源流が出揃いました。 そして本章で扱う1991〜95年は、それに匹敵する第二の爆発期です。 Python・Java・Ruby・JavaScript・PHP——今日のソフトウェア界を支配する言語の多くが、 このわずか5年間に集中して誕生しました。なぜこの時期だったのか。そして、それぞれがどんな哲学を背負っていたのか。
なぜ1990年代前半に集中したのか
偶然ではありません。3つの大きな force が同時に働いていました。
| 要因 | 内容 | 言語設計への影響 |
|---|---|---|
| 計算資源の余裕 | ムーアの法則でCPU/メモリが潤沢に。少々の非効率は許容できる時代へ | 機械効率より「開発者の書きやすさ」を優先できるようになった |
| WWWの登場 | 1991年にWeb公開。動的なWebサイト・スクリプトの需要が爆発 | Webに特化した言語(PHP, JavaScript)が生まれる土壌に |
| 時代精神の転換 | 「人間の生産性こそ最重要」という価値観の台頭 | 動的型・GC・簡潔な構文を持つスクリプト言語が花開く |
象徴的なのは、これらの言語がほぼ例外なく動的型付け・ガベージコレクション・簡潔な構文を採用したことです。 C/C++が「機械に近く効率的だが書くのが大変」だったのに対し、新世代は「多少遅くても、人間が速く書ける」ことを選びました。 この価値観の転換こそが、スクリプト言語爆発の本質です。
Python(1991)— 唯一の明白な方法
口火を切ったのが Python です。オランダのグイド・ヴァンロッサムが、1989年12月の クリスマス休暇に趣味として実装を始め、1991年2月に v0.9.0 を公開しました。名前は爬虫類ではなく、 愛好していた英国コメディ『空飛ぶモンティ・パイソン』に由来します。
Pythonの哲学は明快です——「物事のやり方は、できれば1つだけ、明白な方法があるべきだ(There should be one obvious way to do it)」。 そして最大の特徴が、ブロックを中括弧でなくインデント(字下げ)で表現すること。これにより、 誰が書いても見た目が揃い、可読性が強制されます。
# Python: インデントがブロックを定義する
def greet(names):
for name in names: # コロンとインデントでブロック
print(f"Hello, {name}!")
greet(["Alice", "Bob"]) JavaScript(1995)— 10日間の突貫工事
もっとも劇的な誕生秘話を持つのが JavaScript です。1995年、ネットスケープのブレンダン・アイクは、 ブラウザに動きを与えるスクリプト言語を、なんとわずか10日間でプロトタイプしました。 当初の名は「Mocha」、次に「LiveScript」、そして同年Sunとの提携で、当時最も話題だったJavaにあやかり 「JavaScript」と命名されます——名前は似ていますが、Javaとは別物のマーケティング命名でした。
// JavaScript: ブラウザに動きを与えるために生まれた
function greet(names) {
names.forEach(name => {
console.log(`Hello, ${name}!`);
});
}
greet(["Alice", "Bob"]); Ruby(1995)— プログラマの幸福のために
同じ1995年、日本のまつもとゆきひろ(Matz)が Ruby を公開しました。Rubyの設計指針はただ一つ—— 「プログラマの幸福(developer happiness)」。機械の効率でも理論的純粋さでもなく、 「書いていて楽しいか、自然に思考を表現できるか」を最優先したのです。
まつもとはPerl・Smalltalk・Lisp・Adaなど多くの言語の「良いところ」を融合させ、「すべてがオブジェクト」という 純粋OOPと、柔軟で人間的な構文を両立させました。名前は同僚の誕生石「ルビー」に由来し、 6月の誕生石「パール(Perl)」を意識した「後継」のニュアンスも込められています。
# Ruby: 人間が自然に読める表現を重視
def greet(names)
names.each do |name|
puts "Hello, #{name}!"
end
end
greet(["Alice", "Bob"]) PHP と Java — Webの両輪
残る2つも1995年に登場します。PHPはもともと個人サイトの管理ツールとして生まれ、 HTMLに直接埋め込めるWeb特化の手軽さで、動的Webサイトの定番になりました(後のWordPressなどを支える)。 そしてJava(第4章)は、JVMとWORAを武器に企業システムの基盤となり、 「堅牢な大規模開発」の象徴となります。1990年代後半のWebは、この多様な言語たちの競演で花開いたのです。
設計哲学の対比 — 言語の「人格」
この時代の言語を並べると、それぞれが鮮明な「哲学=人格」を持っていることがわかります。 特に有名なのが、PythonとPerlの正反対の思想です。
| 言語 | 設計哲学 | 一言で |
|---|---|---|
| Python | There should be one obvious way to do it | やり方は1つ、明白に(規律と可読性) |
| Perl | There's More Than One Way To Do It (TIMTOWTDI) | やり方は何通りもある(自由と表現力) |
| Ruby | Optimize for programmer happiness | プログラマの幸福が最優先 |
| C | Trust the programmer | プログラマを信頼し、危険も止めない |
| Java | Write Once, Run Anywhere(規律ある大規模開発) | 堅牢さと移植性を最優先 |
PythonとPerlの対比は象徴的です。Perlを設計した言語学者ラリー・ウォールは「自然言語のように、同じことを 何通りもの方法で表現できる自由」を尊びました。対してPythonのグイドは「選択肢が多いと混乱する。 明白な1つの方法に絞るべき」と考えました。この哲学の違いが、Perlの「自由だが読みにくくなりがち」と Pythonの「制約的だが誰が書いても読める」という対照的な人格を生んだのです。
Python 実装開始
グイド・ヴァンロッサムがクリスマス休暇に。1991年2月にv0.9.0公開。名はモンティ・パイソン由来
Ruby 命名
まつもとゆきひろ。「プログラマの幸福」を最優先。1995年に公開
JavaScript プロトタイプ
ブレンダン・アイクが10日間で。Mocha→LiveScript→JavaScriptと改名
Java 公開
サン。JVM・WORA。企業システムとWebの大規模開発を担う
PHP 公開
HTMLに埋め込めるWeb特化言語。動的サイトの定番に
Ruby on Rails
キラーアプリがRubyの人気を世界的に牽引。「規約より設定」
理解度チェック
1991〜95年にPython・Java・Ruby・JavaScript・PHPが集中して誕生した背景として、本章が「本質」と位置づけた価値観の転換はどれですか?
キーボード: 1〜4 で選択、Enter で回答