generated at
Smalltalk
1970年代にPARCにおいてAlan Kayらの研究グループにより開発されたプログラミング言語とその処理系、それらを内包したGUI付きの仮想OS全体を指す
言語としては、プログラムの“ビルディングブロック”として、従来のデータ構造やプロシージャ、関数をいっさい使わず(必要ならシミュレートする)、「オブジェクト」とそれへの「メッセージ」のみで記述するというAlan Kay発案の「オブジェクト指向」というアイデア(その後、この用語は「乗っ取られた」ため、現在の意味とは異なる)をベースにしている
処理系やIDEのみならず、GUI付きのOSの機能の一部も含め、そのほぼすべてがセルフホスト&ソース同梱されている(ユーザーがコードを読んで理解し自由に、しかも多くの場合ランタイムに改変、その結果が気に入れば永続化も可能である)点でもプログラミング言語やその処理系はもとよりソフトウエアとしてもかなり風変わりな部類に属する
1972年にAlan Kayが仲間内の「最強の言語とその処理系をLISP/John McCarthyのように1ページほどのコードで自己記述できるか?」という賭けをうけ、EVAL相当の仕様を2週間ほどで策定。数日後、Dan Ingallsがそれに解析器など欠けている部分を整えて1000行程度のBASICによりData General社のミニコン「Nova」向けに実装したことで期せずして誕生することになった(『The Early History of Smalltalk』より)
この時点では、初期のLisp同様にちょっと変わってはいても普通に言語処理系の範疇であったが、1973年に完成した試作機Altoへ移植されたのを契機に、マウスポインタによる座標取得やビットマップディスプレイ前提のタートルグラフィックス機能が追加されるとAlan Kayの「イメージを操作してシンボルを作る」というスローガンに基づいて後に WIMP (ウインドウ-アイコン-メニュー-ポインタ) として普及したGUIの基盤技術のための試行錯誤が盛んに行われた。じきに単なる言語処理系の枠を超え、GUIベースの仮想OSとしての要素も多く備えるようになった
Alan Kay自身が仕様を定めたSmalltalk-72(主な実装者はDan Ingalls。以降も同じ)、Dan Ingallsにより最適化(省コスト化)され、ほぼ別言語として更新されたSmalltalk-76、Adele Goldbergにより言語仕様やライブラリAPI等が整理・拡充されたSmalltalk-80とそれ以降(直系のVisualWorks/Cincom Smalltalkを含め、そのほとんどは第三者によるクローンや独自拡張、サブセットだが、中にはオリジナルメンバーが関わり仮想マシンまでのセルフホストを達成したSqueak/Smalltalk-96も)に大別される

Smalltalk(多くがSmalltalk-76で整備された)が発端の、その後のPC等で主流となったり汎用されたUIの例
オーバーラップするウインドウAlan Kayが子供が苦手なコンテキストスイッチを補助すべく考案)
ポップアップメニューDan Ingalls考案の矩形領域高速描画処理アルゴリズムおよびルーチンBitBLTの最初の成果)
カラムIF(システムブラウザ)とそれに付随するペインによるウインドウ分割やスクロールバーLarry Teslerの考案)
ツール切り換え、ドットレベルの拡大編集機能(Dan Ingalls考案)などを有する描画システム(Ted Kaehlerの作)
ラジオボタン(描画システムの描画等ツール切り換えのUIためにTed Kaehlerが考案)
ドットパターンの作成・編集・運用(主に塗り潰し、デスクトップパターンの素材として)
マルチフォント、マルチスタイル、マルチサイズのテキストの混在。ユーザーレベルのグリフの作成・編集・運用
Larry Teslerの考案した「コピー&ペースト」に象徴される非モーダルなテキスト編集や操作とポップアップメニュー等インタラクティブ操作スタイルの融合(Dan Ingalls考案)
複数の切り換え、永続化が可能な仮想デスクトップDan Ingalls考案。Alan KayによるとSteve JobsPARCでのSmalltalk-76見学の際に見落としたGUIの重要な要素のひとつとされる 「What was it like to be at Xerox PARC when Steve Jobs visited?」へのAlan Kayの回答

Smalltalk-72のタートルグラフィック機能で枠のみが描かれたごく初期のウインドウ

Smalltalk-74(BitBLTを前提とした高速描画版Smalltalk-72)で整備されたウインドウシステム

Smalltalk-76で整備されたウインドウシステム(1979年にSteve Jobsらが見学してLisaならびにMacintoshのGUIのルック&フィールに大きな影響を与えた)




Smalltalk-80(Adele Goldbergが商用化を目指し整理したため、特にBill AtkinsonMacPaintに影響を与えたSmalltalk-76の描画システム「BitRecctEditor」が「FormEditor」というかなりシンプル機能のツールに置き換えられているなどの観点で、GUI史の資料とする際には注意を要する。後のSqueakを除き、Alan Kayはノータッチ。)

コピー&ペーストなと違い、後のPC等に継承されることはなかったが、便利なUIとしてモードレス/インプレイスの次該当ワード検索もしくは連続置換としての「again」がある
Smalltalk-76 の時点では、実装としては単なる置換操作の繰り返しに過ぎなかった(ただし、ペーストにより置き換えられた文字列であれば、フォントやサイズ、スタイルの変更についても繰り返し置換に反映される)。文字列を選択して打ち直し(もしくはペーストして置き換え)た後、第二ボタンクリック(今でいう右クリック)メニューから again を選ぶと同じ置換が行われた。打ち直す文字を同じにすれば次候補の検索になる。again を選択する際に shift キーを押下しておくと以降が全て同様に置換される(検索の場合は意味が無いが、あえて言えば最後出該当ワードの検索となる)
Apple Smalltalk-80(AppleがXEROXからライセンスを受けてLisaおよびMacintosh向けに開発したSmalltalk-80。PARCから移籍したオリジナルメンバーが関わっている)で機能強化が図られ、キャレット移動直後であれば、どこでタイプしてもそれを検索ワードとしたモードレスな検索が可能となった(タイプした文字は again 選択後、直ちに削除される)