1. 程式人生 > >scala記錄(1)介紹

scala記錄(1)介紹

比較 就是 能力 完美 如果 定義變量 字節碼 pat 地方

Scala介紹:

Scala是一門多範式的編程語言,一種類似java的編程語言 [1] ,設計初衷是實現可伸縮的語言 [2] 、並集成面向對象編程和函數式編程的各種特性。

scala是基於Jvm的,完美兼容Java,是腳本類語言,但為什麽說是腳本類語言呢,因為它運行過程如下:

源碼 - scalac(編譯) - *.class字節碼 - scala - Jvm上 -running
先編寫源碼,源碼屬於Scala的腳本,Scala腳本語法和Java完全不一樣,例如:Java定義變量是需要數據類型的,而Scala可以不定義,也可以定義,但有些地方也必須讓你定義數據類型

Scala運行也和Java不一樣,它寫完的東西生成的都是.class但是使用Javac不能編譯Scala源碼的,必須使用它自己的Scalac編譯,編譯後生成的class代碼使用Scala和Java都可以,使用Java的話,ClassPath中必須包含Scala運行時的類庫。

做大數據為什麽要學習Scala?

因為Spark是由Scala寫的,雖然也支持Java、Python、R語言。

從學習的成本來說,Scala代價是最高的,最難學的,最容易的是R,但是筆者也沒看過。

Scala好處:

從生產能力來說,這些語言的代碼量都很小,寫很短的代碼完成復雜的功能,因為他們都是函數式編程語言,

從資源和第三方類庫比較式Python、R、Scala,Scala太難學,一般沒什麽人用Scala開發第三方類庫的,

但是Scala有一個好爸爸,就是Java,因為Java中的類庫遠遠要比其他要多,因為它的社區式最龐大的,也沒有這樣的必要用Scala再去把Java寫過的類庫再寫一遍,因為Scala本身就可以不經過任何步驟並使用Java類庫。

從文檔和社區來說,單說Scala比其他都比較差,但是從平臺執行速度Scala是最快的,因為Scala就是在Jvm之上的,Jvm執行速度和C++的速度是不相上下的。

Spark最好的集成的語言就是Scala,因為使用的Scala開發的Spark。

在Spark的編程中,最好的考慮就是Scala,如果Spark出現一個新功能第一個支持的就是Scala,其次再是Python和R,因為還要讓Python再去開發才行,如果想使用新特性,就要首先選擇Scala。

Scala官網6個特征。

1).Java和scala可以混編

2).類型推測(自動推測類型)

3).並發和分布式(Actor)

4).特質,特征(類似java中interfaces 和 abstract結合)

5).模式匹配(類似java switch)

6).高階函數

scala記錄(1)介紹