«前の日記(2004年01月28日) 最新 次の日記(2004年01月30日)» 編集

Matzにっき


2004年01月29日 [長年日記]

_ [言語]SelfとMix-in

sumimさんから衝撃の事実が。

余談ですが、たしかに Self にはクラスこそありませんが、フレームワークとして traits (くだんの Traits とまぎらわしいですが…)と呼ばれるクラスと同種の機能を持つオブジェクトがかなり早い時期(すくなくとも '91)から用意されていて、この延長で Mix-in (mixin と呼称) もあります(と言っても、traits との違いは継承ツリーに含まれるか否かだけですが)。Self の mixin の明確な実装時期は分かりませんが、早ければ traits と一緒、遅くとも '94 には Self システムに組み込まれていたようです。

がーん、SelfにはRubyよりずっと前から「Mix-inだけを目的としたエンティティ」が存在していたのですね。 探せば見つかるだろうなとは覚悟していましたが、目の前につきつけられるとやはりショックですね。

しかし、改めて自分がSelfについて無知なことを露呈してしまいました。Selfについては、

  • プロトタイプベース
  • 構文はSmalltalk
  • Morphなど新しい概念のライブラリを持つ(一部はSqueakに取り込まれた)
  • Sunが研究していて、高速な実行についての論文が何本も出ている
  • その一部はHotSpotなどJavaに応用された

くらいしか知識がありませんでした。Smalltalk系は構文的に面白くないので、 あまり興味を持てなかったのですが、やはり、調べておくべきでしたかねえ。


«前の日記(2004年01月28日) 最新 次の日記(2004年01月30日)» 編集