古文書を掘り出しました。約40年前の「Smalltalk」です。1980年代中盤Unixのワークステーションなるものが各自の机の上に載るか載らないかという時代(会社。)家ではMS-DOSのパソコンがせいぜいっす。その中にあって「オブジェクト・オリエンテッド」なSmalltalkシステムは燦然と輝いてました。高嶺の花ね。
※『Literature Watch Returns (L.W.R.)』の投稿順 index はこちら
Smalltalk
1970年代にビットマップディスプレイ、マウス、そしてネットワーク環境を備えていたゼロックス社のALTOシステムのお名前は、その開発者アラン・ケイ様とともに鳴り響いておりました。そこに搭載されていたコンピュータ言語であり、開発環境でもあるものがSmalltalkです。純粋「オブジェクト・オリエンテッド」なシステムとして喧伝されとりました。FORTRANから入り、BASIC(そしてアセンブラ)、PASCALといった手続き型言語ばかり(今でもあまり変わっていませんが)であったお惚け老人の前身の若者は、「カッケー(という言い方はまだなかった)」、「触りて~」と思ってました。それもあり大枚2000円を費やして購入したのが冒頭に写真を掲げたご本であります。
ただね、その目論見はあまり実ることがありませんでした。名高いALTOシステムは外販されることなく(されたとしてもとても買えないお値段だったでしょう)、「フルの」Smalltalkを走らせることができる環境の敷居が高かったのです。御本では普及を図るためかPC-9801用のSmalltalkを題材にしていたのです。「日本でも」できる感じにはなっていたのですが、よくみるとPC-9801に「2Mバイトのメモリを搭載た68Kボード」を差し込まないとならないシステムだったみたいです。1986年当時、ちょっと趣味で嗜むにはお値段的にキビシー。そこで「なんちゃって」な感じ(CUIのみ)のLittle Smalltalk などという処理系を手に入れて(当時、ASCIIからフロッピー付の書籍が売られていた記憶)、ちょい使ってみました。でもCUIのみじゃ雰囲気でないよ。。。
しかし、あれよあれよというウチに、ビットマップディスプレイも、マウスも、イーサネットも普及。また言語といえば「オブジェクト・オリエンテッド」という流れで、無理してsmalltalkしなくてもいいじゃん、という感じになってしまいました。以来約40年、地獄の底(本棚の奥)から Smalltalk が蘇るっと。
今なら一撃、Smalltalk
しかし約40年の年月は「高かった敷居」を劇的に下げてくれてます。普段使いのWindows11機にはWSL2をインストールしてあります。WSL2はLinuxのGUIを走らせられるので、これ使えばLinux用のSmalltalk系環境を一撃で動作させられるでしょう。やってみました。御本でも解説されているSmalltalkの「System Browser」画面です。
問題なく動いてますな。
さて今回インストールしてみたSmalltalk処理系は、Pharoというものです。どうも最近の「Smalltalk業界」の双璧をなす処理系みたいです。
上記については『Sho Yoshida』様の以下の記事も参照させていただきました。あざ~す。
[2021年版] Smalltalk入門(Pharo Smalltalkインストール)
今回はWSL2上のUbuntu 24.04LTSにインストールしています。上記など参照させていただきましたが、インストールは簡単です。こんだけ。
$ mkdir smalltalk $ cd smalltalk $ wget -O- https://get.pharo.org/64 | bash $ ./pharo Pharo.image eval "42 factorial"
最後の1行は確認のためだと思います。コマンドラインからpharo処理系を呼び出して42の階乗を計算させてます。答えが出れば動作OKっと。
階乗実行してみます。
実行されたみたい。多分あっているのだろうけれども、一応、確認をいつもお世話になっておりますMaxima様にお願いしてみました。こんな感じ。
最初と最後しか確かめてないけど、よさそうね。いよいよGUIを起動、えい。
$ ./pharo
PharoのWelcome画面が以下に。
「プレイ・グラウンド」でちょっと遊んでみたところが以下に。
約40年前にできなかったことが、ほんの数分で出来てしまう。進歩なのか?
Smalltalkは ソフトな忘却力(34) Smalltalk、Pharo Tutorialsで練習 へ