Java的最大优势?
____java 的最大优势是什么呢?当然,铺天盖地的源码,各种已经开发好的类库、工具、框架是她的优势。但若说最大优势,莫过于JVM的流行度。
____同样的思路,微软的.Net运行时也是个虚拟机,其流行度就弱得多,除了windows系统上大部分安装,苹果,Unix上很少使用。Erlang的虚拟机从种意义上讲还要先进,但普及度实在太差了。
____如果要开发跨网络的应用,首选JVM,开发语言可以用Java,也可以用其它的。groovy, clojure, scala,kotlin等。
____java语言已经产生了很长时间,它必须兼容以前的版本,这是个沉重的负担,使它无法很痛快地加入新特性以及丢弃掉不十分合理的设计。这与c语言的情况类似。其它的几个JVM语言从不同的方面加强了java语言的弱项,是很好的实践。scala则有些不同,她不是零打碎敲,修修补补,而是从学术上的论证出发,实施着一项宏伟的计划。
____golang 声称是21世纪的c语言,scala也可以声称是21世纪的Jvm语言。实际上它也瞄准了其它虚拟机。
更强大的OOP
scala提供了更丰富,更完善的类型系统。支持:
- 类型的混入(mixin),以解决单继承的局限性。可以实现类似多继承的效果,但不会引发c++中多继承的复杂度。
- 无静态,使用单例对象,这不仅仅是学术上更纯,它保持了一致性,很多实践表明,一致是降低复杂性的有效武器。
- case class 极大削减冗长的模板式的代码ÿ