我为什么不看好 Spark 背后的编程语言——Scala

我为什么不看好 Spark 背后的编程语言——Scala

回想起第一次接触 Scala,最早要追溯到 2013 年,一晃眼已是十年的时间。这十年间发生了很多事情,有不少用 Scala 写的项目火了,也有很多新编程语言火了,就连 Java 这棵老树也发了新芽,更新了十几个版本。

不过有一说一,Scala 这门语言还是相当小众的,市场上除了 Spark 也基本没有 Scala 的需求。作为为数不多一直在跟 Scala 打交道的人,对这门语言还是很有发言权的。今天太可研究所(techinstitute)想和大家分享一个观点:我为什么不看好 Scala 的未来。

## Vol.1

Scala 诞生在 2005 年,相比于 Java 诞生的 1995 年,也就年轻了 10 岁,比起更年轻的后辈 Golang、Rust 那也算是叔叔辈了。Scala 的设计深受 Haskell 的影响,把函数作为了一等公民设计,而函数式在并发编程领域有巨大的优势,随着多核、并发编程成为主流,函数式编程已经成了新兴语言的标配。

我刚开始接触 Scala 也是因为工作原因。2013 年的时候,用 Scala 写的影响力最大的项目 Spark,还属于新兴的技术,主流还在使用 MapReduce。有趣的是,我和 Scala 打交道并不是因为 Spark,而是前司那个喜欢选非主流技术的架构师选择了 Scala 技术栈。

现在回想起来,选 Scala 技术栈的确是有一些好处:

- Scala 是基于 JVM 的语言,可以充分享受到 Java 繁荣的生态;

- 使用 Scala 写的 Akka Framework,基于 Actor 的并发编程模型,在高并发场景下很有优势;

- 可能没有第三个好处了

写到这儿,不难看出,Scala 的优势是把面向对象的编程生态融合了函数式编程的理念,既能用到生态的力量,又能在多核、并发场景下发挥函数式的优势。尤其是 Akka Framework,虽然它本身名声不显,但早年的 Spark、后来的 Flink 都是基于 Akka 开发的,其威力可见一般。而 Akka 选择的 Actor 并发编程模型,在 AI 领域声名显赫的 Ray 同样也是基于 Actor,说明在路线上也没问题。

相关推荐