Scala是「scalable language」,也就是「可擴展」語言是意思。Scala是一種靜態類型語言,它融合了函數式編程和面向對象編程和的思想,前者讓它能夠很方便快速地構建可用程序,後者則讓其具備構建大型可擴展系統的能力,而二者的融合體如今:在Scala中函數是一種特殊的對象,而Scala的對象也支持不少函數式編程特性,例如Pattern Matching。 html
關於Scala語言的來源,語言的發明人Ecole Polytechnique Fédérale de Lausanne (EPFL)的教授Martin Odersky,在一次專訪中有以下描述: 編程
「1988/1989年我在Zurich,我喜歡上了函數式編程...Phil Wadler告訴我有一門新的語言Java就要誕生。咱們決定把函數式編程的一些東西移植到Java中去,這個嘗試誕生了Pizza語言,它具備泛型,高階函數和模式匹配等功能,證實了jvm可以支持函數式編程的特性。後來Sun找到咱們說對咱們實現的泛型有興趣,因而咱們就參與到Java泛型模塊的開發中,最終在Java5中發佈」 jvm
「在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 工具