很多原因了。
第一是为了和java interact, 要是只有FP, 很多type feature都不用,要是只有OO,也
是type feature都不用。要是两个都有,那就不是1+1=2了。
第二是因为本来这个是一个语言研究,想做的高大上, 做的很牛,scala type system
是 turing complete, 理论上是什么都可以实现的一门独立语言。shapeless 就是利用
这个的一个library.
不过,
第一你不会都用到的,不用的就别学了,就学
Abstract Types
Type Bounds
Variances
第二啥自从商业化以后, scala的方向就是越来越简单,下一次大概可能就会砍type
system的feature.