Scala是“scalable language”,也就是“可扩展”语言是意思。Scala是一种静态类型语言,它融合了函数式编程和面向对象编程和的思想,前者让它可以很方便快速地构建可用程序,后者则让其具有构建大型可扩展系统的能力,而两者的融合体现在:在Scala中函数是一种特殊的对象,而Scala的对象也支持很多函数式编程特性,例如Pattern Matching。
关于Scala语言的来源,语言的发明人Ecole Polytechnique Fédérale de Lausanne (EPFL)的教授Martin Odersky,在一次专访中有如下描述:
“1988/1989年我在Zurich,我喜欢上了函数式编程...Phil Wadler告诉我有一门新的语言Java就要诞生。我们决定把函数式编程的一些东西移植到Java中去,这个尝试诞生了Pizza语言,它具有泛型,高阶函数和模式匹配等功能,证明了jvm能够支持函数式编程的特性。后来Sun找到我们说对我们实现的泛型有兴趣,于是我们就参与到Java泛型模块的开发中,最终在Java5中发布”
“在Pizza和Java泛型项目中我经常感到沮丧,Java语言有很多限制让我不能按照自己的想法来做一些事...我决定开始设计一些在Java中不太可能实现的东西,当然我又想能够利用现有的Java类库和工具。”
“我决定虽然我要设计一个跟Java不太一样的语言,但是它必须能够嵌入到JVM以及Java现有的库...最初我们开发了一个叫Funnel的基于join calculus的语言,但是它太过于纯粹以至于无法实际应用...我们决定从头再来,并将语言设计在介于Funnel和Java之间,它必须更具有实用性,但是同时比Java所能做的更高级。在2003年我们发布了这个语言,这就是Scala”
参考文献:http://www.artima.com/scalazine/articles/origins_of_scala.html