Sather が面白そう

一連の例の騒動で一番始めにみずしまさんが持ってきた Sather ですが、紫藤さんによる非常にありがたい日本語のページとか、Language Essentialsをまだ眺めているだけなのですが、かなり面白そうです。

まずは、クラスの分類がこれでもかっ! と細かいことが面白ポイント。

  • class (普通の型と実装を持つクラス)
  • abstract class (Java の interface のようなもの)
  • partial class (Mix-in専用。インスタンス生成不可。Ruby の モジュールのようなもの? stbとか微妙だけれど)
  • parametrized class (総称クラス)
  • immutable class (生成されたインスタンスが immutable)

となって、なんか全部あるよーって感じです。

また、クラスライブラリの構造も面白くって、Online Sather Code Browserを眺めるだけで「へぇ〜」という感じです。継承木の上の方は殆ど abstract class になっています。たとえば、$NUMBER{} 周りはこんな感じです。



頭に $が付くのが abstract class、付かないのが実装を持つ クラスです。ふふーん、仕様と実装の分離が情熱的(?)ですにゃ。というか、abstract class が まるで Smalltalkプロトコル(メソッドカテゴリ)のようだなぁと思ったり(いや、もっと細かいか)。

せっかく Erlang の本を買ったのですけど、Sather熱とか ことだま熱(EToys熱)とかが上がってきているというちょっと勿体ないかんじです。