ソフトな忘却力(34) Smalltalk、Pharo Tutorialsで練習

Joseph Halfmoon

別シリーズ記事にて古文書『Smalltalk』(昭和61年刊)発掘、つい調子に乗って後継の処理系Pharoをインストールしてしまいました。約40年前に敷居が高くて断念した処理系に雰囲気クリソツ、いい感じデス。ついては古文書通りでチュートリアル的なことができるのか?しかし、流石に40年の月日は伊達じゃない?どうする?

※「ソフトな忘却力」投稿順 Index はこちら

※実行確認はWindows11上のWSL2にのせてあるUbuntu24.04LTS上のPharo 10.0.0 で行ってます。

Ubuntu24.04LTSにPharo様光臨

長いことお世話になってきたUbuntu20.04LTSですが、サポート期限まで1年切ったみたいです。昔から4年に一度更新のズボラなペースにてUbuntuつかせていただいてます。22.04LTSはパスってことで。ということで24.04LTSを導入。今後「新たに何か」インストールする最はこちらということであります。最初にインストールしたのが Smalltalkの血脈を受け継ぐPharo様でございます。まあ20.04LTSもギリギリまで使うのでありますが。ギリギリになって慌てふためくなよ、自分。

発掘したご本通りで動かしてみようとしたら

40年近い太古の御本を発掘したので、そこに書かれている内容通りとは思いませなんだ。しかし「コンセプト」とか「GUIのたたずまい」とかは思いの他、変わりありませぬ(まあオリジナルの処理系の写真などを見たことあるだけで、実際に触ったことは無いのでありますが。)基本的なところは発掘した御本そのままでよろしいみたいデス。とは言っても処理系が古色蒼然などということはまったくなく、今でもバリバリ、もしかすると現在でもイケてる感じ、いや過激かも?元の設計の素晴らしさかと。

ただね、流石に40年近い月日が流れてます。昔の御本の処理系と比べると進歩している部分は大ありみたいです。以下のSystem Browser、40年前のご本でも使われていて上に4つのサブウインドウありのレイアウトなどは変りありません。しかし左端に表示されるカテゴリの数、Pharo様のはとんでもなく沢山です。その中から以下で選択した Grahpics-Primitives というカテゴリを探し出しました。これは、ご本でも最初のDemoで使われているカテゴリです。項目名としては「昔の名前で出ている」みたい。しかしその下のクラスになると、ご本の記述とはまったく違いました。これは、ご本のデモを動かすというわけにはいかないみたいだのう。SystemBrowser

 

とりあえずPharo様のチュートリアルを探してみるか。

チュートリアルは何処

以下の2ルートでチュートリアルが見つかりました。一つがメニュー Helpの配下のPharo Tutorialsから起動するルート。Tutorial_route1

もう一つが、立ち上げると開く Welcome画面の左側の Learn Pharoという項目から入って、そこに書かれている ProfStef go を “Do it” して開くルートです。Tutorial_route2

調べてみると「行先は同じ」みたいですが、表示形式が微妙に異なります。Helpから起動すると左側にナビゲーションウインドウ付きの画面で実行されます。一方、Learn Pharoからであるとナビゲーションウインドウは無く、単体のウインドウです。ウインドウの構成のしかたの違いのせいなのか、後者の方がフォント間が広くて老眼のお惚け老人には目に優しかったです。そこで後者のルートでチュートリアルに侵入しました。ま、最後のページになって前者の方が良かったと思ったのですが、最後の一ページだけだからいいか。

チュートリアル

29ページあるチュートリアルですが、基本 ” ” に囲まれた解説(Smalltalkではコメントってことですな)があり、その間に「実行可能なオブジェクト」が散りばめてあるのです。そして左ドラッグで選択して、右メニューから Do it か Print it すると動かした結果をしみじみ味わえるという塩梅のチュートリアルです。結果をチュートリアルに「挿入」するのであれば Print it。実行するだけであれば Do it です。以下はチュートリアルの3ページ目ですが、各行の末尾に黄色くマーカ引いてある(当方で色付け)ところと下の青色部分は、Print itした結果挿入された部分です。

なお、下のチュートリアルにショートカットキーのことが書かれているとおりメニューからDo it、Print itしなくても、CTRL+DでDo it、CTRL+PでPrint itになります。便利。

Tutorial_3

なお、Transcriptウインドウを開くような以下のようなコードであると、Do it、Print itするとTranscriptウインドウが開いてそちらに結果が表示されます。まあ、コンソールか、LOGウインドウといった感じ。知らんけど。Tutorial_23

どんどん実習を進めていき、最後から2番目の28ページ目にいたるとゼロ割り算を意図的に発生してデバッガ呼び出すところに来ます。Debugger

「やっちまった」結果表示されるウインドウが以下に。強力と噂に聞くSmalltalkのデバッガみたいっす。DivZero

ただね、ここに来て単独Windowでチュートリアル走らせていたことの問題発覚。そこまで ProfStef next に相当するコードが末尾に書いてあったので、それを Do it すれば次のページに進められたのですが、28頁はデバッガ呼び出してしまいです。最終ページに遷移するにはどうしたらよいの?

デバッガの使い方(調べろよ、自分)分からなかったので、Helpメニューの方(ナビゲーションウインドウ的なものあり)から最終ページを開きました。こんな感じ。TutorialDone

お次は Pharo By Example を読めと。先は長いな。

ソフトな忘却力(33) MD5ハッシュを計算してみる、OpenSSL へ戻る

ソフトな忘却力(35) Smalltalk、Pharo、充実のお勉強リソース へ進む