えちょ記

語らないブログ

Scalaのtraitは「雛型」と超訳する会

会社の人が、「Scalaのtraitがよく分からない」と言っていた。(ん〜、あんなのインターフェースに実装のマクロがセットになっただけじゃないかな・・・)と思ってたのですが、あちこちググって記事を読んでみて分からない理由が分かった。「traitとは特質とか形質という意味・・・」、そんな感じの記事の説明で始まっているところが多い。これはちょっと、分かりにくいぞ。

ひながたで良いじゃん

結局、これまでのinterfaceというのが、クラスのAPIの定義だけを共通化して使い回そう、というところを、traitは、実装コードも使い回せるところは使えるよ、という便利機能。日本語にはそういった使い回しを指す便利な言葉に「ひながた」がある。この言葉を使った方が、日本人には伝わりやすいのじゃないかと思った。

traitの良いところ

interface+リファレンスコードの提供、がtrait。だからtraitに自分に必要な追加のコードをちょっと付け加えるだけで俺クラスの完成。traitはコード断片だから、1つのクラスに複数のtraitを組み合わせても、C++の多重継承みたいなややこしい事態は発生しない。
まあ、とりあえずはそのくらいの理解で良いんじゃないかなと思う次第であります。Scalaの言語としての本質は「プログラムコードの可読性と再利用の可能性を極限まで高めるのが至上命題の言語」と理解しております。言語仕様がシンプルでとっつきもいいので、Javaからの乗り換えには非常によい言語ではないかな?ということで、日本語解説本も出たので最近の通勤のお供はScalaなのでありました。