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

Matzにっき


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

_ [生活]散髪

あまりにも髪が伸びていたので、ずるずると引き伸ばしてきた散髪に。 ばっさり切って、さっぱりした。でも、ちょっと寒い。

_ [言語]Traits

昨日、話題にしたtraitsだが、 論文としてのインパクトはともかく、Smalltalk言語に対するインパクトは非常に大きいことに 改めて気がついた。Smalltalkでは単純継承のために実装の共有が難しい側面がある。 もちろん、委譲を使えば良いのだろうが、やや面倒な側面がある。

Smalltalkに多重継承を取り込んだ試みも報告されているが、成功したとはとても言えないだろう。 実際に多重継承を持つ(広く使われている)Smalltalk処理系は存在しない。

しかし、このtraitsは

Both the Squeak Foundation and Cincom have expressed interest in incorporating traits into the main development stream of their Smalltalk systems.

ということで、もしかしたら本流のSmalltalkに取り込まれるかも。 これがSmalltalkにとって画期的なことではないだろうか。

同じように実装の共有に苦しんでいる(ように見受けられる)言語にJavaがある。 これも単純継承しか持たず、実装の共有に委譲を使っている。 「継承よりも委譲が良いんだ」というのはJavaプログラマがよく言う言葉だが、 Mix-inを知るものにとっては負け惜しみに聞こえる。

さて、Javaにtraitsを加えたら、どのような世界が広がるか。 その時、Javaプログラマはどう感じるか。

仕様の継承としてのinterfaceと実装の継承としてのtraitの両方を持つ言語は、 大変有望な言語になると思うのだが*1

*1  それがMixJuiceだという気もする


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