@t_yano まさにその通りだと思います。あとそれにカリー化と implicit parameter とパターンマッチが加勢して、Java が継承を使ってカバーしている部分の大半を Scala では継承抜きでやっている感じがします。
2011-10-24 02:20:22Listに関しては、2.7系まではListがscalaパッケージの直下にあって、Scalaのライブラリ中でもListが直接使われてて、今と違ってListの内部に実装が直接たくさん書いてあって・・・という事情はあったけど
2011-10-24 02:20:41現在標準ライブラリのコレクションに scala.collection.interfaces っていうパッケージがあって、インターフェースっぽいものはあるんだけれどあまり使われてないな・・・なんのためにあるんだろう? http://t.co/gBB6yo4J
2011-10-24 02:25:16http://t.co/7pQ52GGb scalaだと具象型でもviewで拡張できるしview boundとかその他もろもろの機能でそれほど醜くなくいけるし、viewでアレになってきた時点でtraitに切りだす、とかそういう開発なんじゃないかなぁ、という感じ。
2011-10-24 11:11:32よく考えてみれば、たとえインターフェースきっちりしててもviewがうまく使えないライブラリはちょっと困るかもしれない。Sageをforkしたのはそのせいだったような気もする。
2011-10-24 11:18:38http://t.co/JoQqSOQ0 うーむ。色々考えさせられる話ではある。自分は、「純粋なインタフェースとしての」traitはほとんど作らないけど、「実装を部分的に含んだtrait」はよく作ってる気がする。 #scalajp
2011-10-24 23:22:06http://t.co/JoQqSOQ0 について続き。 @PG_kura さんや @yasushia さんが述べている通りの部分もあると思う。つまり、Scalaの場合、「後付けで」型の整合性を取る機能が豊富にあるので、そこまで強くインタフェースを意識しない説。 #scalajp
2011-10-24 23:23:35Javaの場合、後になって後悔してもどうにもならん、ので、必然的にinterfaceを意識するけど、Scalaだとまあどうにかなるので、そこまで強くinterfaceを意識しなくても良いのでは、という話。 #scalajp
2011-10-24 23:24:52ところで、implicit parameter(≒型クラス)使うときは、ほぼ必然的にtrait使うことになるので(抽象クラスだと不便なケースがある)、そういう意味では最近のScalaプロジェクトはtrait多用してる、ような気がする。 #scalajp
2011-10-24 23:26:53Scalaにインターフェース的なtraitは必要かどうかという話 http://t.co/uEpC6bNb 今やってるプログラムはCakeパターンでDI的なことやってるし、Decoratorパターンを使ってるので実装の無いtraitをどんどん作ってる。
2011-10-24 23:28:48静的強型付け言語であるはずのScalaのほうがある意味型にルーズなコードの書き方してると気づかされたかも。もちろん実際には違うんだけど
2011-10-24 23:33:41