Smalltalk (1972年)(スモールトーク)
Smalltalkは1972年Xerox PARCアラン・ケイ (Alan Kay) ・Dan Ingalls 等が開発した世界初の純粋オブジェクト指向プログラミング言語でメッセージパッシング・動的型付け・統合開発環境 (IDE)・Live Programming 採用しObjective-C/Ruby/Python/Java/C# のOOP 系譜の祖先となった歴史的言語。
Smalltalk (1972年)
概要
Smalltalkは1972年Xerox PARC (Palo Alto Research Center) アラン・ケイ (Alan Kay・2003年Turing Award) ・Dan Ingalls・Adele Goldberg 等が開発した世界初の純粋オブジェクト指向プログラミング言語で「全ての値はオブジェクト」(Everything is an object)・メッセージパッシング (Method 呼出でなくメッセージ送信概念)・動的型付け・統合開発環境 (IDE・GUI でアプリ開発・世界初の本格IDE)・Live Programming (実行中アプリを書換え可能)・ Garbage Collection 採用しObjective-C (1983年Brad Cox・Apple iPhone iOS 開発言語) /Ruby (1995年まつもとゆきひろ) /Python (1991年) /Java (1995年James Gosling・Smalltalk から影響) /C# (2002年Microsoft Anders Hejlsberg)のOOP 系譜の祖先となった歴史的言語。
主な特徴・仕組み
- 発表: 1972年Xerox PARC・Alan Kay 主導
- 正式版: Smalltalk-72 (1972) ・Smalltalk-80 (1980年・正式公開)
- 言語パラダイム: 純粋OOP・動的型付け
- 構文: メッセージ送信 (例 3 + 4 は「3 に + 4 メッセージ送信」と解釈)
- GUI 統合: GUI ベースIDE・世界初の本格GUI 開発環境
- Live Programming: 実行中アプリを書換え・即時反映
- GC: Garbage Collection 標準
- 方言: Smalltalk-72/74/76/78/80 (Xerox)・VisualWorks (Cincom)・Squeak (1996年Alan Kay 復帰オープンソース)・Pharo (2010年)
Xerox PARC とAlan Kay
Smalltalk 開発の歴史的背景:
- Xerox PARC (1970年設立): パロアルト・コピー機Xerox の研究所・GUI・Ethernet・Laser Printer 開発
- Alan Kay (1969年Utah 博士号): Dynabook (将来のタブレット・iPad 祖先) コンセプト提唱・PARC 参加
- Smalltalk-72: 初版・Dynabook ソフトウェア基盤
- Alto Computer (1973年): 世界初のPC・Smalltalk-76 搭載・GUI/マウス採用
- Star Computer (1981年): Alto 商用化・$16,000-$50,000・商業失敗
- 1979年Steve Jobs PARC 訪問: Smalltalk + GUI 衝撃・Apple Lisa (1983年) ・Macintosh (1984年) GUI 採用
- 1980年Smalltalk-80: 正式公開・以降学術・商用展開
純粋OOP 革新 (世界初)
1972年Smalltalk で初定義:
- Everything is an object: 数値・文字列・Class・Method 全てオブジェクト
- メッセージパッシング: Object に メッセージ送信で動作 (object method call の概念)
- 継承: Class 継承で機能拡張
- 多態性 (Polymorphism): 同じメッセージで Object 別動作
- カプセル化: Object 内部状態を外部から隠蔽
- 動的型付け: Object の型は実行時決定
- 後継: Objective-C (1983年・Smalltalk のメッセージパッシング+C)・Ruby (1995年・Smalltalk + Perl) ・Python・Java・C# 全てSmalltalk OOP 系譜
世界初の本格IDE
1976年Smalltalk-76 で初対応:
- 動作: GUI ベース統合開発環境・コードエディタ・デバッガ・クラスブラウザ統合
- 競合: 1976年当時の競合なし・テキストエディタ+コマンドライン主流
- 後継: Apple ProjectBuilder (1990年代) ・Visual Studio (1997年Microsoft) ・Eclipse (2001年) ・IntelliJ IDEA (2001年) ・Xcode (2003年Apple) ・VS Code (2015年)
Live Programming
1972年Smalltalk から:
- 動作: 実行中アプリのコードを書き換え・即時反映 (再起動不要)
- 採用: Lisp REPL (1958年) と並ぶ対話型開発の祖
- 後継: Python REPL・JavaScript ブラウザ DevTools・Ruby IRB・Jupyter Notebook (2014年)・SwiftUI Preview (2019年)
業界影響
1972-2024年Smalltalk のOOP 影響:
- Apple Lisa/Macintosh (1983-1984年): GUI が Smalltalk-76 PARC GUI から派生
- Objective-C (1983年): Brad Cox・Smalltalk メッセージパッシング+C 構文・後Apple NeXT 採用・iOS 開発言語 (2007年-2014年)
- Ruby (1995年): まつもとゆきひろ・Smalltalk + Perl・「Object 指向の楽しさ」継承
- Python (1991年): Guido van Rossum・関数型+OOP・Smalltalk から影響
- Java (1995年): James Gosling・Smalltalk + C++・「Write Once Run Anywhere」・現代企業システムの中核
- C# (2002年): Microsoft Anders Hejlsberg・Java + COM・現代Windows 開発の中核
- Swift (2014年): Apple Chris Lattner・Objective-C 後継・iOS/macOS 開発
採用システム (1980年代-現代)
- Smalltalk-80 (1980年Xerox): 学術・教育で広く採用
- Cincom VisualWorks: 商用Smalltalk・大手金融・保険 (1990年代-現代)
- IBM VisualAge for Smalltalk: 1990年代企業システム
- Squeak (1996年Alan Kay 復帰): オープンソース教育向け・子供向けScratch (2003年) の祖先
- Scratch (2003年MIT): Squeak ベース・子供プログラミング教育・全世界1億+ ユーザー
- Pharo (2010年): モダンSmalltalk・現代研究/教育
関連技術との違い
| 項目 | Lisp (1958) | Smalltalk (1972) | C (1972) | Java (1995) |
|---|---|---|---|---|
| パラダイム | 関数型 | **OOP (世界初純粋) ** | 命令型 | OOP |
| 型付け | 動的 | 動的 | 静的 | 静的 |
| GC | あり | あり | なし | あり |
| GUI/IDE | テキストREPL | 世界初本格IDE | テキストエディタ | あり (Eclipse 等) |
| 影響先 | Clojure・JavaScript・Python | Objective-C・Ruby・Java・C#・Swift | C++・Java・C# | 現代企業システム |
よくある質問 (FAQ)
Q1: なぜSmalltalk は主流にならなかったか? A: (1) Xerox 商業化失敗 (Alto/Star) ・Smalltalk が広範採用されず・(2) 動的型付け+純粋OOP で性能低 (1980年代CPU/メモリ限界)・(3) Xerox がライセンス高価で普及限定・(4) C++ (1985年・C 互換+OOP) の競合勝利・(5) Java (1995年・性能+OOP+クロスプラットフォーム) で完全置換・全要因で「主流化失敗」だが「OOP の設計思想は普及」と評価される。
Q2: Alan Kay の「Dynabook」とは? A: 1968年Alan Kay 提唱の「子供向けタブレット型コンピュータ」コンセプト・Smalltalk 開発の動機・「子供が遊びながら学べる」教育機。1980年代未実現も2010年iPad で実質的に実現。Alan Kay は2003年Turing Award 受賞時に「iPad は Dynabook ではない・iPad はメディア消費機・Dynabook は創造機」と批判。
Q3: 現代でSmalltalk 動作可能? A: Squeak (1996年-) ・Pharo (2010年-) はオープンソースで現代Mac/Windows/Linux 動作・Cincom VisualWorks (商用) も継続販売。Smalltalk-80 (1980年Xerox) は Squeak で再現可能・歴史研究・教育用途。
まとめ
- 1972年Xerox PARC アラン・ケイ開発
- 世界初の純粋オブジェクト指向言語
- メッセージパッシング・動的型付け
- 世界初の本格IDE・Live Programming
- Objective-C/Ruby/Python/Java/C# 祖先