|
|
Samlltalkで一語。Small Talk、SmallTalkはありがちな誤り。
開発の経緯
XEROXのパロアルト研究所(PARC)で1970年代に約10年かけ3世代(Smalltalk-72、76、80)を経て整備された。当初は、暫定DynabookであるAltoのOS的位置づけだったが、AltoのXEROX社製品としての販売の可能性が同社上層部決定により完全に排除されたこと、アイデアパーソンであるアラン・ケイの研究開発グループ離脱などを受けてDynabook色は失せ、Altoのハードウエア技術とPARCとは別機関で開発されたMesaベースの統合環境を組み合わせたStarで動作するプロの開発者向け統合化プログラミング環境「Smalltalk-80」として1983年に発売されることになる。現在はCincomよりVisualWorksというパッケージ名でメジャーOS向けに販売されている。
Smalltalkとオブジェクト指向
豊富で整備されたクラスライブラリは、特にオブジェクト指向プログラミングの手本とされ、デザインパターンの宝庫と称されるまで洗練されたものになっている。また、後世の多くのオブジェクト指向プログラミング言語に直接間接的に多大な影響を与えた。こうした背景から、Smalltalkをオブジェクト(あるいはクラス)を取り入れたプログラミング言語の元祖だと勘違いする人も多い。
Smalltalk環境の独自性
Smalltalk言語は、オブジェクトへのメッセージ送信をダイレクトに記述する表記の特殊性や、制御構造をもオブジェクトへのメッセージ送信の形で記述する徹底ぶりともあわせて、CやC++などの構造化プログラミングの流れを強く受け継ぐ言語や、その開発手法に慣れた開発者にとっては極めて取っ付きが悪い言語・環境であるといわれている。このことは、Smalltalkが単なるプログラミング言語ではなく、従来のOSの概念をも包括する「環境」であることが一つの理由である。Smalltalkを単なる言語としてとらえると、他の言語と比較し、使用しているOSのGUIにまったく従わないなど、その独自性が、大きな“欠点”として映る場合もある。
実際には、このことはVisualWorksやSqueakなど、旧来のSmalltalk環境、つまりDynabookコンピュータ環境の要素を引き継ぐIDE、を通じてSmalltalk言語や処理系を学ぼうとするなら、新しいOSに接するのと同じ心構え(多かれ少なかれ)を持つべきであるということを意味している。
環境および処理系
Smalltalk言語の仕様は原則として非常に単純なため、環境もしくは処理系の相違による互換の有無は、クラスライブラリの差異程度に由来するもの(ある意味、バージョンの違いもこれも含まれる)から、言語仕様自体の改変に由来のものまで空間的に連続で多岐にわたる。このため、単にSmalltalkとして語弊のある場合、一般にその環境および処理系の呼称もしくは商標(必要ならそのバージョン)をして他と区別するために用いる慣習がある。