Scala发展史
联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种
语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对
JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定
将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。
Pizza和Scala极大地推动了Java编程语言的发展。
- JDK5.0 的泛型、增强for循 环、自动类型转换等,都是从Pizza引入的新特性。
- JDK8.0 的类型推断、Lambda表达式就是从Scala引入的特性。
JDK5.0和JDK8.0的编辑器就是马丁·奥德斯基写的,因此马丁·奥德斯基一个人的
战斗力抵得上一个Java开发团队
Scala特性
Scala是一种现代多范式编程语言:
- 是一种纯粹的面向对象语言,每一个值都是一个对象
- 是一种函数式语言,每个函数都是一个值
- 是静态类型的
- 可扩展的
- 与JRE进行良好的互操作,Scala源码会被编译成
.class
文件,运行在 JVM 上
Scala 的名字 来自于Scalable Language
(可伸缩的语言),不仅可以根据硬件资源和负载要求进行扩展,还可以根据程序员的技能水平进行扩展。
图标:
Scala 和 Java
Scala 对 Java做了简化:
- Scala 基于 JVM,和 Java 完全兼容,同样具有跨平台、可移植性好、方便的垃圾回收等特性。
- Scala 比 Java 更加面向对象。
- Scala 是一门函数式编程语言。
Scala更适合大数据的处理:
- Scala对集合类型数据处理有非常好的支持
- Spark的底层使用Scala编写
Java程序可以通过 javac
编译器编译成 .class
文件;Scala也可以通过Scalac
编译器编译成.class
文件。然后在JVM上进行运行。
Scala也被称为没有分号的Java
,对Java进行了简化,同时构建在相同的基础上,共享相同的底层类型和运行环境。
Scala可以使用任何开箱即用的Java库(包括java标准库),几乎任何Java程序都可以在Scala中以相同的方式工作,只需转换语法即可。