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(可伸缩的语言),不仅可以根据硬件资源和负载要求进行扩展,还可以根据程序员的技能水平进行扩展。

图标:

logo.png

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中以相同的方式工作,只需转换语法即可。