Smalltalk

Smalltalkダイナブック構想

先駆的なオブジェクト指向言語、およびその統合プログラミング環境。アラン・ケイの「メッセージング」と言うアイディアから作られた。
アラン・ケイは「ダイナブック構想」で知られる、現在のMacWindowsなどが採用しているGUI操作環境を考えた偉大なプログラマである。

GUIアラン・ケイダイナブック構想

Windowsのようなウィンドウとマウスを使ったGUI操作のシステムを考え出したのは、Xeroxパロアルト研究所です。
この研究所で、アラン・ケイという偉大なプログラマが、ダイナブック構想という「個人で使うコンピュータ」を提唱し、暫定ダイナブックであるSmalltalk環境の動作するAltoを開発した。このダイナブック構想は、ウィンドウ型グラフィカルインターフェース(GUI)の先駆けとされた。
また、これを見学する機会を得たAppleスティーブ・ジョブズが、そのアイデアを大いに取りいれてLisaを開発し、その後のMacintoshの発売と成功に繋がりました。
WindowsMacの模倣ですが、元々はDOSの上で動作するウィンドウ環境でした。それをOSと統合して、Windows 95の爆発的なヒットにつながりました。

Smalltalkとは

Smalltalkは、オブジェクトにメッセージを与えることでプログラムを作る、オブジェクト指向のパイオニアだった。
シンプルな言語設計で、専門的なプログラマでなくても誰でも開発できることを目指した。
ダイナブック構想を目指したアルトは、メインフレームミニコンピュータの時代に机サイズのディスプレイやマウスやキーボードのついた小さなコンピュータを実現しようとした。
ソフトウェア的な部分を担当するSmalltalkでは、オーバーラッピングウィンドウやポップアップメニューなど、とても先駆的なGUIの環境だった。
洗練された豊富なクラスライブラリは、オブジェクト指向プログラミングの手本とされ、デザインパターンの宝庫であると言われるまでになっている。
1970年代にXerox社のパロアルト研究所(PARC)でアラン・ケイによって開発された。PARCはレーザープリンタイーサネット、アルトなどを創出した伝説の研究所である。

Squeak

Smalltalk環境の1つ。
Squeakでは、Smalltalkのサブセットで記述された仮想機械(バイトコードインタプリタ)を用いて開発するため、移植性が高い(もちろんUNIXmacOSWindowsなどでも動作する)。データ、アプリケーション、環境自体(システム)すらすべてSmalltalkで記述されており、通常のコンピュータでいうところのアプリケーションソフトという概念は希薄であるが、そう呼ぶにふさわしいオブジェクト群はある。

Objective-C

Cにクラスやオブジェクト指向を取り入れたC++とは異なり、Objective-CはCの中にSmalltalk的なコードをインラインで書ける言語として知られる。

Objective-CSmalltalk

Objective-CでCの中にSmalltalkを書く、という発想は、僕はスティーブ・ジョブズパロアルト研究所アラン・ケイダイナブック構想を知った、ということに帰依するのではないかと思います。
もちろん、パロアルト研究所で動いていたコンピュータは、Smalltalkで動いていたはずです。
実際のところを僕は全く知りませんが、きっとCとSmalltalkを混在して書けるようにすることで、ジョブズは「ダイナブック構想の提唱の通りのコンピュータ」を作りたかったのではないかと思います。
今のmacOSではSwiftというプログラミング言語が良く知られていますが、Objective-Cは長年macOSの主要言語としてMacを支えてきました。またiOSアプリの開発にも使われていました。
ただし、調べたところ、Objective-Cが公に使われ出したのは、NeXTSTEP時代のようです。Mac OS XCocoaフレームワークNeXTSTEP(OPENSTEP)のAPIをベースとして登場しました。LisaはObjective-Cで開発されたわけでもなく、Lisa WorkshopはPascalやObject Pascalを開発言語に採用していました。

簡単な説明

Smalltalk