初学Scala,给我的感觉就是一堆语法糖以及最近名声大噪的函数式编程。
可是λ表达式Java也有,map / reduce java也有,速度上java也会比scala快,心想一定是自己见识不够,无法领悟。今看一文章,有所感悟:《为什么选择Scala,他在大数据处理方面有何优势》
在这篇文章中有几个核心观点用于支持spark选择scala的原因:
观点1:应用开发的效率很大程度上依靠类库。框架开发者要考虑spark要融入大Hadoop大家族需要一个JVM语言,能够开发出优雅的API(文章说Java api 不优雅,代码量大),静态编译(直接pass掉groovy)(值得注意的是,在大数据和人工智能上作者还是偏向于使用R/Python/Matlab),这样以来能进行选择的似乎只有scala。
观点2:函数式编程更适合于MR以及大数据模型
观点3:scala是一门可扩展的语言(这一点,目前还没有体会到其真正的含义)
观点4:类型系统支持 (这么一说,又勾起自己对scala类型系统的思考与研究的兴趣)
如果说 Java 是一种类型安全的语言, 那么毫无疑问, Scala 的类型更加安全, 从某种程度上说, Scala 的类型是图灵完备的, 而 Java 不是. 我的一位好朋友在这方面研究的比较深( http://hongjiang.info/scala/ ), 而我对与 Scala 的类型系统的理解, 也还是皮毛.
正是以上这两点大优势, 造成了 Scala 比 Java 更加安全, 同时又具备灵活性, 想象力.
观点5:其他语言层面上的优势 (语法特性吧)
在 Java 中, 你是否有时很想继承多个 AbstractClass 呢? 对不起, Java 只支持单继承
在 Scala 中, 你可以进行 mixin (Java 8 也开始引入 default method 了呢)
在
为何Spark选择了Scala
最新推荐文章于 2025-06-26 16:42:28 发布