Strongtalk - オプショナルな静的型チェック機能を有したSmalltalk

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

昨日まで開催されていた RubyKaigi で名前が出てきた Strongtalk について少し。


かなり前に遊んでから後、追っかけていないのでその後どんなふうになっているのかまったくわからないのですが、本家サイトよりは少し新しめの情報がありそうな Google Code のページを見つけました(これも十分古いですが)。

どうやら Mac版もあるようですが GUIはついていないようです。Linux版もおそらく同じでしょう。とりあえず、Windows 版を動かす手順を書きます。

上の三番目のリンクから、strongtalk-r189-image+sources.tgz をダウンロードして展開し、必要なら適当な名前(たとえば Strongtalk-r189 )に付け替えます。その中に同じページからダウンロードできる strongtalk-r200.exe を入れてダブルクリックすれば起動するはずです(OS サイドのセキュリティ関係はよしなに)。

Strongtalk Launcher で恒例の 3 + 4 (Smalltalk-72 でメッセージ式として初めて実行されたコード)を右クリック → Show It で評価してみましょう。

Strongtalk01.png


初回起動時に同時に開く Strongtalk Start Page には役立つ情報が満載です。Browse Documentation → Introduction and System Tour とリンクをクリックして進むと A Tour of the Strongtalk System が始められます。

Strongtalk02.png


Pharo/Squeak などと違い、ネイティブGUIウィジェットを使っているため気づきにくいのですが、この HTMLビューワーも Strongtalk で記述され動いています。

チュートリアルではこの HTMLビューワーを拡張する(具体的には、戻るボタンしかないところに進むボタンを追加する)手順が書いてあって Strongtalk を学びながら体験できるようになっています。

次図は提示されたメソッドを、新規メソッドとして定義しようとコピペして ctrl + shift + enter でコンパイルすると、あらかじめ仕組まれたバグにより型エラーが発生する様子です。

Strongtalk03.png

もちろん、きちんと型に合うように修正するとコンパイルが通ります。

Strongtalk04.png


同じく指示通りもうひとつ新規メソッド(#forwardButton)を 'private' に追加してから既存のメソッド(#toolBar)に他のボタンに倣って進むボタンを表示するための add: self forwardButton; を追加してコンパイルすれば作業は完了です。

Strongtalk05.png

次回表示以降、HTMLビューワーには進むボタンが追加されます。

Strongtalk06.png


残念ながら Windows 限定ですが、ぜひお試しあれかし。

この投稿は Smalltalk Advent Calendar 201514日目の記事です。