vieweditattachhistorytopchangessearchhelp

第81回


■SqueakではじめるSmalltalk入門   第81回  鷲見 正人


本連載では、Macと切っても切れない関係にあるSmalltalkについて、最近話題のSqueakシステムを使って紹介しています。前回はSqueakの最新版である3.9をインストールして、日本語を扱えるようにするセッティング方法を解説しました。これにからめて(連載のタイトルからはちょっと離れてしまいますが…)Squeak以外にもOS Xで使うことのできるSmalltalk処理系について触れてみたいと思います。


▼VisualWorks(Cincom Smalltalk)について

Squeakは、Apple Smalltalkから派生させるかたちで、'90年代半ば、当時Appleフェローだったアラン・ケイらによって開発されました。ところで、このときもととなったApple Smalltalkは、'80年代初頭、XEROXから段階を経て供給される機能限定版の仮想イメージをLisaやMacできちんと動作させられるように、Appleの技術者(と申しましても、そこには、ラリー・テスラーらPARCからの移籍組=元Smalltalk開発者らが含まれていたわけですが…)が、専用の仮想マシンをしつらえるかたちで作られたものです。Smalltalkシステムというのは、仮想マシンよりは、仮想イメージの内容により強くその「特徴づけ」がなされるものなので、Apple Smalltalkはサブセットながらも純正Smalltalkシステムに近いものだと考えることできます(もちろん、後に、この仮想イメージにはApple独自の改良も加えられます)。

このような、Appleを含む当時の主要ハードウエアメーカーに対するSmalltalk移植を促す働きかけとは別にXEROXは、ParcPlace Systemsという専門の子会社を立ち上げ、そこを通じて独自開発した製品版のSmalltalk-80処理系の開発・販売もしています。各種OS向けのものが用意され、Mac版ももちろんありました。ただとても高価だったため、APDAから安価に提供されていたAppleSmalltalkに比べると、こちらのParcPlace版Smalltalkを実際に動かしたり触った経験がある人は読者の皆様の中にもごくわずかでしょう。このParcPlace版Smalltalkが、FileMakerばりにいくつかの会社を経て現在に至ったのが「VisualWorks」です。Cincomという会社が開発・販売しているので、Cincom Smalltalkとも呼ばれます。

http://smalltalk.cincom.jp/scripts/smalltalk.dll/index.ssp

XEROX Smalltalk-80の仮想イメージ(さらに遡れば、ALTOを暫定的ダイナブックとして動作させていたGUI OSの実体)を受け継いだ「血筋」からすると、VisualWorksが“本家”、Squeakは“分家”といったかんじになりましょうか。いずれも名前から「Smalltalk」の文字が抜け落ちてしまったため、Smalltalkは滅びたものだと思いこんでおられる方が多いことが残念です。


▼VisualWorksの入手とインストール

ソフトウエア製品としての「VisualWorks」は、今もあいかわらず高価なのですが、非商用にかぎって無償での入手や使用が認められています。オンラインでのお定まりのユーザー登録作業が必要ですが、いったんそれを済ませてしまえば、ネットインストーラを介して、あるいは必要なファイルがすべて収められたCD-ROMイメージを入手することで、お手元のMacにVisualWorksをインストールすることが可能です。

http://smalltalk.cincom.jp/scripts/smalltalk.dll/visualworks/download.ssp

また、ぽっと出のSqueak(長らくApple社内でApple Smalltalkとしてうち捨てられていたのちにSqueakとして再生された…)と違って、25年余にわたってプロのツールとして鍛え抜かれてきたVisualWorks向けには、良質なSmalltalk関連ドキュメントが充実しています。ただ長い歴史を持つものの常で、そうしたドキュメントの多く(特に'90年代のもの…)は古いバージョンのVisualWorks向けに書かれていることもあり、現行の7.xでは内容の読み替えが難しいときがあります。そんなときは、3.xなどの古めのバージョンのVisualWorksを使ったほうがよいでしょう。

こうした以前のバージョンを含む、VisualWorksのインストール手順については、「じゅん」というマルチメディアライブラリの解説サイトが詳しいです。

http://www.sra.co.jp/people/h-asaoka/study/VisualWorksInstall/index.html

「じゅん」は、VisualWorksおよびJava(!?)向けに提供されており(残念ながらSqueak向けにはまだない…)、我々Macユーザーが身近なところではQuickTimeムービーの再生やその制御など、様々なマルチメディア情報をSmalltalkコード(じゅん for Javaの場合は、もちろんJavaの…)を介して行なうことを可能とするAPIを提供してくれます。

http://www.srainc.com/Jun/Main.htm

「じゅん」の主要開発者である青木淳氏は自他共に認めるスーパープログラマで、「じゅん」をはじめとするSmalltalkシステム向けソフトウエアはもちろん、多くのSmalltalk関連書籍や開発者向け雑誌の連載を著しておられることでも有名です。特に定番と名高い「Smalltalkイディオム」と「オブジェクト指向システム分析設計入門」については、現在、Webで全文を読むことが可能ですので興味のあるかたにはご一読をお薦めします。

http://www.sra.co.jp/people/aoki/
http://www.sra.co.jp/people/aoki/SmalltalkIdioms/index.htm
http://www.sra.co.jp/people/aoki/IntroductionToOOAOOD/index.htm


▼VisualWorksの操作と終了

アラン・ケイが手を引いたあと、夢を追う「暫定ダイナブック環境」としてではなく堅実な「統合化開発環境」としての進化の道を辿ることになったSmalltalkの象徴的な存在であるVisualWorksは、古典的なSmalltalkやSqueakに見られる暫定ダイナブック然とした部分(その象徴は、独立したデスクトップと独自のGUIルック&フィールに現われている…)が排除されいて、ホストOSのアプリケーションソフト然として見せるような工夫がなされています。たとえば現行のVisualWorksは、OS Xで動かした場合、Aquaっぽい見た目で使うことが可能です。

[fig.A]VisualWorks起動時の画面
Uploaded Image: 81a.png

前述の通りSqueakでお馴染みの特徴的なデスクトップもデスクトップメニューもないので、各種開発用ツール類の起動はトランスクリプトウインドウ(「VisualWorks NonCommercial visualnc」とタイトルがついたウインドウ)に設けられたツールボタン、あるいは、トランスクリプトウインドウ内のメニューを介して行なうことになります。たとえば、クラスブラウザを起動したければ、気球(Smalltalkの象徴的存在)の下にメガネをあしらったアイコンをクリックします。ワークスペースなら右端のメモ帳のアイコンです。

クラスブラウザはSqueakに比べて見栄えもよく便利で高機能になっていますが(同時に、ブラウズする対称であるクラス階層も名前空間など新しい言語仕様の導入により若干複雑化しています…)、基本は、Squeakと一緒です。Squeakで慣れていれば、簡単なチュートリアルを経ることで、自在に使いこなすことができるようになると思います。いずれにせよ、オブジェクト(たとえばこの場合「クラス」)に対してどんなメッセージを送って情報を引き出そうとしているのかを念頭に置く習慣さえ身に付けていれば、GUIのルック&フィールの違いなどは些細なことに思えてくるはずです(笑)。

ワークスペースを含め、文字の入力できる場所なら原則としてどこでもSmalltalk式を評価できるのもSqueakと一緒です。たとえば、この連載でお馴染みの「Do it」や「Print it」などは(式を入力して選択後…)右クリックメニューからメニュー項目として選ぶか、Ctrl-D、もしくはCtr-Pとタイプして使うことができます。たとえばクラスブラウザは、前述のGUI操作でなくとも次の式の「Do it」で起動できます。

Refactory.Browser.RefactoringBrowser open


[fig.B]VisualWorksでの「Do it」
Uploaded Image: 81b.png

終了時に仮想イメージを保存(トランスクリプトウインドウのFileメニューから、Exit VisualWorks...→Yes)すれば、次回から同じ状態で作業を再開できる点も、やはりSqueakと同様です。

このページを編集 (6624 bytes)


Congratulations! 以下の 1 ページから参照されています。

This page has been visited 619 times.