Smalltalk
アラン・ケイの「メッセージングのメタファにより、あらゆる決定の遅延を支援・徹底する(とどうなるか?)」という発想に基づき作られ、その実効性が試されたプログラミング言語とその処理系、統合化開発環境、あるいは仮想化されたGUI付き・オブジェクトベースの(つまり、現在主流のUnixライクなファイルシステムベースではない)OS。 1970年代は(8086を搭載しバッテリー駆動可能な可搬PC試作機「NoteTaker」専用のSmalltalk-78を除き)、約10年後の未来の一般的なPCのスペックを想定して1973年に作られた“タイムマシン”である「Alto」が主たるターゲットマシンであった。
Smalltalk-72、74、76、78、80といういろいろ異なる実装がある。大きく分けるとSmalltalk-72系(72、74)、Smalltalk-76系(76、78)、現在のSmalltalk(-80。商用のVisualWorks、OSSのSqueakやそこからフォークしたPharoなども含む)の3種類。Smalltalk-80についてはその他、ゼロックスと他社の共同開発純正環境(DEC、ヒューレット・パッカード、Tektronix、Sun、Apple)、企業独自の実装(旧IBM VisualAge Smalltalk~現VA Smalltalkや、GemStone/Sなど→The Rise and Fall of Commercial Smalltalk)やファン独自の実装(Little Smalltalk、GNU Smalltalk、Amber Smalltalkなど)などあまた。 当初のSmalltalk-72はケイのアイデアをもとに比較的忠実にダン・インガルスにより実装された。(インガルスら「そんなに言うなら君が思うように動く言語処理系の設計を書いてみろ(反語的に)」→ケイ「(Lisp同様)1ページあれば十分!…書いた!」→インガルス「わかった。実装してみる。…確かに動く。お前の勝ち。」) Smalltalk-72のことを知ったカール・ヒューイットが、それのメッセージングのアイデアを非同期処理の問題解決に応用し、1973年に「アクター」を構想。後に定式化。今のSmalltalk(Smalltalk-80以降)からの影響かと勘違いすると訳ワカメになるので要注意。
ダン・インガルスはその後、1970年代を通じ(そして少し間を置いて1990年代のSqueakを加え)主だった特徴を有する複数世代の異なる“Smalltalk”の実装を担当。
(前提として、“Smalltalk”は単なる言語や特定の処理系など指すのではなくゲシュタルト)
そのシステムはユーザーのあらゆる要求に即座に反応してくれる。
システム内のすべてはオブジェクトである。
オブジェクトはメッセージを送受信することで通信を行う。
すべてのオブジェクトは、それぞれの状態を持つことができる。
すべてのオブジェクトはクラスのインスタンスであり、クラスはオブジェクトの動作を規定する。
あるセッションでの作業結果が次のセッション再開時にすべて保存されていて作業を継続可能。
ストレージの自動管理。
ルールは単純で例外は極力なくしてある。
ここまでSmalltalkの基礎知識。以下にパターン、アジャイル等のキーパーソンやコミュニティに与えた影響を書く(とっかかりになるスタブを書いてください^^;sumim.icon)。
ユーザー等として接し影響を受けた著名人、キーパーソン(可能であれば影響の中身を類推)
That’s a great question...but the thing is, it’s not just the syntax and semantics of Smalltalk that was so revolutionary...it was the Smalltalk development experience.(それは素晴らしい質問ですが、Smalltalkの構文やセマンティクスだけではなく、Smalltalkの開発経験こそが革命的だったのです。<DeepL訳>)--グラディ・ブーチ
「だからその内容を知りたいから言語化して欲しい」「最先端のVSを使ってC#で開発するより優れているとは考えにくい」といったクソリプが付くところまでがテンプレート
Smalltalk-72
Smalltalk-76
Smalltalk-80
番外編