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熱)とかが上がってきているというちょっと勿体ないかんじです。