ソフトな忘却力(36) Smalltalk、Pharo、充実の開発環境

Joseph Halfmoon

素人老人が年甲斐もなく勉強させていただいているのはSmalltalkの血脈を引き継ぐモダーンで「純なオブジェクトオリエンテッド」にして「開発環境にして言語処理系」なPharo様です。前回はそのお勉強のリソースの充実に圧倒されました。今回はインストール済の「GUI環境」をマウスでクリクリしてみたいと思います。

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

※今回の動作確認は、Windows11上のWSL2の上のUbuntu24.04LTS上のPharo 10.0.0を使用しています。

前回抜けてたお勉強リソース

前回、文書に動画とPharo様のお勉強リソースの充実ぶりに「とても死ぬまでに終わりそうにない」と老人は途方にくれました。しかしま、千里の道も一歩よりと申します。前回ダウンロードした Pharo by Example 9 のPDFファイルをスマホに入れて、要介護の母親(といいつつ息子であるこの老人よりも検査の数値は良かったりする)のところへの往復の電車の中で必死こいて数十ページほど読み進めましたぞ。しかし英語はツライ、読む気力が持ちませぬ。

しかし前回見逃していたのです。探したら日本語のお勉強リソースがありました。以下のURLからたどれる『Smalltalk-users.jp』様です。

Smalltalk-users.jp

その「文書」ページ中には、なんと Pharo by Exampleの日本語版へのリンクがあるではありませんか。現物PDFへのリンクが以下です。

https://github.com/SquareBracketAssociates/PharoByExample-japanese/blob/master/PBE1-ja.pdf

なんだ、こっち先に読めばお楽だったじゃん。これから読ませていただきます。翻訳いただいているのは恐悦至極なのでございますが、ちょっち困るのが、かなり古いバージョンのPharo様を扱っているところです。根本のところは一本筋が通っているPharo様なので役に立つ部分はそのままなのでしょうが、約10年の歳月は各種のツールなどに諸般の進化をもたらしているみたい。ま、文書は和英併用ってことで。

先ずはワールドメニュー

Pharoを開くと「Welcome」なウインドウが表示されていますが、その背面にはPharoのロゴのある茫漠とした画面が広がってます。そこで「左クリック」すると表示されるのが以下であります。Pharo_worldMenu

WorldMenuと唱えるらしいです。なにが出来るのかと思って見ていくと、結局Pharoのウインドウ上部にならんでいる「メニュー」と同じものが出てくるだけみたいです。なあんだ。

でも「右クリック」すると別なメニューがでます。こんな感じ。なお各メニューの右上の黒いグリグリをクリックしてやるとピン止め的に固定できるみたいです。WorldMenuLR

左クリックで出てくるMenuは「常識的」ですが、右クリックの方の使い方はよく分からんな~。お勉強せんと。

メタ・クリック

元々3ボタンマウスの処理系を起源にもつためか、左クリック、右クリック以外に「メタクリック」というものもありました。一瞬、真ん中のスクロール・ホイールをクリックするのかと思いきや、キーボード押しながらの左クリックでした。今回練習しているUbuntu環境では、ALT+SHIFT押しながらでした。この辺はOSによりいろいろあるみたいです。あるウインドウに対してメタクリックするとこんな感じ。MetaClick

メタ・クリックしたウインドウの周りをカラフルなアイコンがとりまきます。アイコン上にマウスカーソル持っていくとその機能が表示されます。基本はウインドウの操作だったりするけれども、ウインドウ個別のメニューもあり。

ウインドウの左右のメニュー

各ウインドウのタイトルバー的部分の両側にもお印があります。こんな感じ。WindowMenu
左の赤い方は、ウインドウを閉じる、最小化、最大化ですがその下の「行ってこい」矢印は再描画ってことみたいです。一方、右の青まるの中の下三角を押すとこのウインドウのためのメニューがずるっと表示されます。

また、先ほどのメタクリックからもメニューが引き出せます。こんな感じ。WindowMenu2

いろいろありすぎて忘却力の老人は覚えきれません。

各種のウインドウを端から開いてみる

過去回にて、System Browser、Playground、Transcriptなどの主要なウインドウは使ってみてます。今回はまだ開いてなかったウインドウのうち、お惚け老人でも何だか分かるものを開いてみました。まずはHelpブラウザね。HelpBrowser

上記みたいな感じで、MenuからHelp Browser開けばHelpウインドウが開きます。必要な項目が階層構造でオーガナイズされているみたいです。ただし、ちょっち使ってみた感じでは結構素っ気ない感じっす(個人の感想デス。)

つづくのはSpotterというものです。CTRL+SHIFTキーでどこにいてもオーバーレイ的に登場してくれるみたいです(Menuからも開けるけど。)Spotter

左上の赤のところにテキトーに文字列を入力するとその在処やら、意味やらを教えてくれるものみたいです。

一方Finderというウインドウもあります。こちらはMenuから開くしかないみたいです。スクリーンショット取り忘れたので省略。

他にも履歴管理(Gitに接続したりもできる)のためのIceburgやら、デバッガ、プロファイラ関係、それに「テスト駆動設計」のためのテストランナーなど至れり尽くせり、充実した開発環境に見えます。

ファイルのセーブ

Pharo様は、イメージファイルの中に多数のオブジェクトが詰め込まれていて、それらの間でメッセージを送りっこすることで成立するシステムみたいです。アプリケーション的にはその時実行している「イメージ(実行環境)」を丸ごと保存するのが基本みたい。オブジェクトの状態を含め全て保存されるようです。Save and quitすれば、元のイメージを書き変えてしまいます。Save As使えば、ファイル名を変更してセーブも可能。勿論、セーブしないことも可能。イメージファイル名を変更する場合が以下に。SaveAs

一方、いわゆる「ソースコード」をテキストファイルで保存することも可能。それには、System Browserを使用です。FileOut

左端のパッケージのところでFile Outしてやれば、該当パッケージ全体がテキスト出力されるようです。そして「隠し事(ブラックボックス)の無い」Pharo様なので、既存のパッケージ、上記例では Graphics-Primitives、をセーブすることだって可能。

そして以下のようにPharo内部には File Browserも含まれているので、セーブした内容を確認することもできると。FileBrowser

なお、テキスト出力の拡張子は .st でした。Smalltalkってことだね。

ますますPharo様の深みにハマっていく…

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

ソフトな忘却力(37) Smalltalk、Pharo、今頃になってHello world へ進む