Squeak

Squeakは、Smalltalk環境の一つであり、そのルーツは1980年代のSmalltalk-80に遡ります。Appleが自社のLisaとMacintosh向けに開発したApple Smalltalkから派生し、アラン・ケイ氏を中心とする開発チームによって、自由度が高く、移植性に優れた環境を目指して開発されました。

開発の経緯



Squeakの開発は、パロアルト研究所のダイナブックプロジェクトに端を発します。アラン・ケイ氏とダン・インガルス氏らが中心となり、当初Appleでプロジェクトが開始されましたが、その後、ウォルト・ディズニー・イマジニアリングを経て、現在はケイ氏が設立したNPOであるViewpoints Research Instituteに拠点を移し、開発が続けられています。

開発の契機となったのは、1995年頃の状況でした。当時、Javaはまだライブラリが十分に整っておらず、既存の商用Smalltalk環境は自由度や移植性に課題がありました。そこで、Squeakは、OSやプラットフォームに依存せず、ユーザーが自由にプログラミングできる環境を提供することを目指して開発が始まりました。

環境と言語



Squeakは、Smalltalkを環境記述、データ記述、ユーザースクリプティング言語として使用します。Smalltalk環境が当初から備えていたクラスブラウザ、オブジェクトインスペクタ、テキストエディタデバッガなどの機能も、Apple Smalltalkから引き継がれており、オブジェクト指向プログラミングを強力にサポートします。Squeakの仮想マシンは、Smalltalkのサブセットで記述されており、C言語へのトランスレータを用いて生成されます。この独特な方式が、Squeakの高い移植性を実現しています。

実際、SqueakはUNIX、Windows、MS-DOSBeOS、TRONなど、多くのプラットフォームに移植されており、シャープのZaurus(旧Zaurus、もしくは最近のLinux Zaurus)でも動作する仮想マシンが存在します。初期の仮想マシンはJITコンパイルを欠いていましたが、Eliot Miranda氏が開発したCogVMではこの機能が導入され、大幅な性能向上を達成しました。

Squeak eToys



Squeakには、Smalltalkとは別に、Squeak eToysというプロトタイプベースのオブジェクト指向プログラミング環境も実装されています。これは、非開発者向けのプログラミング環境で、タイルスクリプトシステムとも呼ばれます。Morphと呼ばれる可視化に適したオブジェクトに対して、属性(動き、色、形、振る舞い)を変化させる手続きを、ドラッグ&ドロップで表現できます。

このシステムは、プログラミング未経験者や低年齢層のユーザーにも扱いやすく、アラン・ケイ氏の共同研究者であるキム・ローズ氏らは、このシステムが低学年向けのコンピュータ・リテラシ教育に有効であると評価しています。米日独の教育機関との共同プロジェクトも実施されており、教育分野での高い効果が示されています。

多言語化と日本語対応



大島氏を中心とした多言語拡張に基づき、阿部氏、梅澤氏、林氏、山宮氏らがSqueakおよびSqueak eToysの日本語化パッケージを作成しました。この多言語化拡張は、Squeakバージョン3.8以降とSqueaklandバージョン2005以降に統合されており、ユーザーは公式版をダウンロードするだけで日本語を使用できるようになりました。

アプリケーション



Squeak環境では、データもアプリケーションも、システム自体も、全てSmalltalk言語で記述されたオブジェクトで構成されています。そのため、一般的なコンピュータ環境でいうところのアプリケーションという概念は希薄ですが、それでもアプリケーションと呼べるものが存在します。

開発者向けアプリケーション:

Browser: クラスやメソッドを閲覧・編集するツール
Inspector: オブジェクトの属性を検査するツール
Debugger: インタプリタの状態を検査するツール
Change Set: 変更履歴を管理するデータベース
Method Finder: メソッド名や定義を検索するツール
Processes: プロセス閲覧・管理ツール
Transcript: 標準出力の役割を担うツール

一般向けアプリケーション:

Workspace: メモ帳
GeeMail: 図版を扱えるメモ帳
PaintBox: ペイントツール
Book: カード型データベース、アクティブブック作成ツール
Stack: HyperCardライクなオーサリングツール
File List: ファイル管理ツール
Zip Tool: zip圧縮/展開ツール
Scamper: ウェブブラウザ(日本語不可)
Celeste: メーラ(日本語不可)
ThreadNavigator: プレゼンテーションツール
Clock, Watch: 時計

教育向けアプリケーション:

Squeak eToys: タイルスクリプトシステム
Nebraska: デスクトップ共有システム
Alice: 3Dオブジェクトオーサリングシステム

ゲーム:

Chess: チェスゲーム
ChineseChecker
Cipher: 暗号解読ゲーム
Crostic: クロスワードゲーム
FreeCell: カードゲーム
Mines: マインスイーパー
Same: さめがめ
* Tetris: テトリス

また、Squeak環境自体をアプリケーションとして配布する形態も存在します。Squeaklandで配布されているウェブブラウザプラグイン版のSqueakは、Squeak eToysに特化したアプリケーションと言えます。

Swiki



Swikiは、Squeak版Wikiクローンです。Smalltalkで書かれたHTTPサーバであるComanche上に構築されており、ファイルアップロード、無限差分保持、静的HTML生成などの機能を持ちます。独自のフォーマットルールを持ち、WikiName機構は採用していません。ページ名の変更が可能で、ページソースにHTMLを混在させることも可能です。Squeak eToysのように、Swikiに特化した仮想イメージも提供されており、Smalltalkの知識がなくても手軽に利用できます。

ただし、これらの配布形態は、Squeak環境のサブセットに過ぎないため、完全なSqueak環境を利用したい場合は、公式サイトからダウンロードし、必要なパッケージをインストールすることが推奨されます。


Squeakは、その高い移植性、柔軟性、そして教育分野での可能性から、今後も幅広い分野での活用が期待されるプログラミング環境です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。