为什么选择 Scala
Scala 实际上是 Scalable Language 的缩写,意为可扩展的语言。
-
运行在 JVM 和 JavaScript 之上的语言
Scala 不仅利用了 JVM 的高性能以及最优化性, Java 丰富的工具及类库生态系统也为其所用。
不过 Scala 并不是只能运行在 JVM 之上!
Scala.js正在尝试将其迁移到 JavaScript 世界。 - 静态类型
在 Scala 语言中, 静态类型(static typing)是构建健壮应用系统的一个工具。
Scala 修正了 Java 类型系统中的一些缺陷,此外通过类型推演( type inference)也免除了大量的冗余代码。 - 混合式编程范式 —— 面向对象编程
Scala 完全支持 面向对象编程(OOP)。
Scala 引入 特征(trait)改进了 Java 的对象模型。trait 能通过使用 混合结构(mixin composition)简洁地实现新的类型。
在 Scala 中,一切都是对象,即使是数值类型。 - 混合式编程范式 —— 函数式编程
Scala 完全支持 函数式编程(FP),函数式编程已经被视为解决并发、大数据以及代码正确性问题的最佳工具。
使用不可变值、被视为一等公民的函数、无副作用的函数、高阶函数以及函数集合,有助于编写出简洁、强大而又正确的代码。 - 复杂的类型系统
Scala 对 Java 类型系统进行了扩展,提供了更灵活的泛型以及一些有助于提高代码正确性的改进。
通过使用类型推演, Scala 编写的代码能够和动态类型语言编写的代码一样精简。 - 简洁、优雅、灵活的语法
使用 Scala 之后, Java 中冗长的表达式不见了,取而代之的是简洁的 Scala 方言。
Scala 提供了一些工具,这些工具可用于构建 领域特定语言( DSL),以及对用户友好的 API 接口。 - 可扩展的架构
使用 Scala ,你能编写出简短的解释性脚本,并将其粘合成大型的分布式应用。
以下四种语言机制有助于提升系统的扩展性:- 使用 trait 实现的混合结构;
- 抽象类型成员和泛型;
- 嵌套类;
- 显式 自类型(self type)。
富有魅力的 Scala
当前我们会遇到很多技术挑战,如大数据、通过并发实现高扩展性、提供高可用并健壮的服务。
Scala 语法简洁但却富有表现力,能够满足这些技术挑战。
在享受 Scala 最先进的语言特性的同时,你还可以拥有成熟的 JVM 、库以及生产工具给你带来的便利。
关于 Java 8
较 Java 而言, Scala 能提供更为强大的类型推演、强大的 模式匹配(pattern matching) 和 for 推导式(for comprehension),善用模式匹配和 for 推导式能够极大地减少代码量以及类型耦合。