有人可以帮助我理解为什么人们在 Spark 中使用 scala 而不是 Java 吗?我一直在研究,但一直没能找到可靠的答案,我知道两者都工作得很好,因为它们都在 JVM 上运行,而且我知道 scala 我们函数式和 OOP 语言。
谢谢
Spark 是用 Scala 编写的。 Spark 也在 Java 8 出现之前就出现了,这使得函数式编程变得更加麻烦。此外,Scala 更接近 Python,但仍然运行在 JVM 中。数据科学家是 Spark 最初的目标用户。传统上,数据科学家拥有更多 Python 背景,因此对他们来说使用 Scala 比直接使用 Java 更有意义。
这里是一位最初编写 Spark 的人在 Reddit AMA 中直接引用的一段话。问题是:
问:
在 Scala 中创建 Spark 有多重要?用 Java 编写它是否可行/现实,或者 Scala 是 Spark 的基础吗?
Matei Zahara 的 A:
在我们开始时,我真的想要一个支持语言集成接口(人们可以内联编写函数等)的 PL,因为我认为这是人们在看到拥有它的研究系统后想要对这些应用程序进行编程的方式(特别是微软的 DryadLINQ)。然而,我还想在 JVM 上轻松地与 Hadoop 文件系统和数据格式进行交互。 Scala 是当时唯一一种比较流行的 JVM 语言,它提供了这种函数式语法,并且也是静态类型的(让我们对性能有一定的控制),所以我们选择了它。今天,可能有人会争论使用 Java 8 来制作 Java 中的 API 的第一个版本,但我们也从 Spark 中的 Scala 的其他方面受益,例如类型推断、模式匹配、actor 库等。
编辑
如果人们对马泰所说的内容感兴趣,请点击以下链接: https://www.reddit.com/r/IAmA/comments/31bkue/im_matei_zaharia_creator_of_spark_and_cto_at/