Scala 的诞生
Scala 始于 2001 年,由洛桑联邦理工学院(EPFL)的编程方法实验室研发。目前最新版本是 2.12.4。
为什么要学Scala?
为什么要学习scala? 与我而言,因为我要进行Spark大数据开发。Spark源码是基于Scala语言开发的,所以如果要进行Spark相关工作开发,强烈建议学习Scala,并采用Scala进行开发。
Scala被誉为大数据领域的黄金语言,Spark,kafka的源码都是采用Scala语言开发的。如果我们从事Spark大数据开发,我们必须掌握Scala语言。虽然Spark也支持Java接口开发,但是当我们在程序调试或者遇到异常的时候,我们往往要阅读分析Scala开发的Spark源码,所以如果想从事Spark相关开发,Scala语言是必备的。且强烈不建议采用Java语言做Spark开发。
Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。Scala 优于 Java,能够替代 Java,并且能够做得比 Java 更好的只有 Scala。
Scala是一门多范式(multi-paradigm)的编程语言,scala设计的初衷就是要集成面向对象编程和函数式编程的各种特性。Scala运行在Java虚拟机上,并兼容现有的Java程序,可以和Java代码相互调用。Scala源代码被编译成Java字节码,所以它可以运行在JVM之上,并可以调用现有的Java类库。
总结一下:
从表达能力来说,scala中:函数是一等公民,scala具有强大的闭包功能;
从简洁性来说,scala中:强大的类型推断功能,支持函数创建的文法,没有标点,代码异常简洁;
从Java的互溶性来说,scala完全可以重用Java类库、工具包,并且并没有性能降低的问题(性能惩罚)。
Scala的特征
- Scala 是纯面向对象的,每个值都是一个对象。
- Scala 可以和两种主流面向对象编程语言Java 和 C#实现无缝互操作。
- Scala 是一门函数式变成语言,每个函数都是一个值,原生支持嵌套函数定义和高阶函数。
- Scala 支持一种通用形式的模式匹配,模式匹配用来操作代数式类型,在很多函数式语言中都有实现。