Smalltalk
ゼロックスのパロアルト研究所で生まれた、純粋なオブジェクト指向言語。すべてをオブジェクトとメッセージで表す思想と、開発環境そのものを内包する発想は後世に大きな影響を与えた。GUIやIDEの原型ともつながっている。
名前の由来
Alan Kay本人の回顧録によれば、Smalltalkという名前は、当時構想していた小型計算機miniCOMのための言語に付けられた。名付けの理由は「プログラミングはこうあるべきという主張」や「子供たちが使うべき言語」という語感を狙ったものであると同時に、当時システムにZeus・Odin・Thorのような大仰な神々の名前を付ける「インド・ヨーロッパ神様理論」への反発でもあったという。Kay本人の言葉では「Smalltalkという名前はあまりに何気ないラベルなので、もしこれが何か良いことをすれば、人々は嬉しい驚きを感じるだろうと考えた」と説明されている。
時代背景
Alan Kayの回顧録によれば、1970年7月、ゼロックス社は当時の主任科学者Jack Goldmanの働きかけにより、パロアルトに長期的な研究センターを設立することを決定した。これがゼロックス・パロアルト研究所(Xerox PARC)であり、Smalltalkはここで開発された。言語自体は1972年9月、同僚たちがKayに「世の中で最も強力な言語」をごく少ないコード量で定義してみせろと挑発した「賭け」がきっかけで生まれたとされる。
仕組み
Alan Kayの回顧録では、Smalltalkの根底にある発想として「すべてはオブジェクトである」「オブジェクトはメッセージを送受信することでやりとりする」「オブジェクトは自分自身のメモリを持つ」「すべてのオブジェクトはあるクラスのインスタンスである」という原則が挙げられている。Kayはこの発想の転換について、コンピューティング資源が指数関数的に増大していく未来を見据え「データと制御構造を、メッセージのみを通じてやりとりする、保護された普遍的な細胞というより生物学的な仕組みに置き換える」ことを目指したと述べている。この発想はKay自身がSimulaに触れた体験に大きく影響されたとされ、Kayは自分の言葉で「これが大きな衝撃だった。そしてそれ以来、自分は同じではいられなくなった」と振り返っている。
| 開発元 | Xerox PARC |
|---|---|
| 特徴 | 純オブジェクト指向 |
関連項目
- Simulaノルウェーで作られた、シミュレーション向けの言語。「クラス」や「オブジェクト」という概念を初めて言語に持ち込み、オブジェクト指向プログラミングの源流とされる。後のSmalltalkやC++に流れ込む発想がここで生まれた。
- Macintosh System (Classic Mac OS)Appleが初代Macintosh向けに作ったGUI中心のOS。マウスとアイコン、デスクトップという操作を一般に広めた先駆けで、その後のパソコンの使い方の標準を形づくった。Mac OS Xへの移行まで長く使われた。
- Objective-CCにSmalltalk風のオブジェクト指向を足した言語。NeXT、そしてAppleに採用され、長らくMacやiPhoneアプリ開発の中心言語だった。独特の角括弧記法を持ち、Swift登場まで一時代を築いた。
- オブジェクト指向データとそれを扱う処理を「オブジェクト」としてまとめて考える設計の考え方。Simulaで芽生えSmalltalkで確立し、C++やJavaを通じて主流になった。大きなプログラムを部品に分けて扱う、長く使われてきた発想。
- GUIアイコンやウィンドウを画面に表示し、マウスなどで直感的に操作する仕組み。ゼロックスのパロアルト研究所で原型が作られ、MacやWindowsで一般化した。コマンドを打つ世界から、見て触れる世界への大きな転換点。