1. 程式人生 > >Scala語言學習之環境安裝(1)

Scala語言學習之環境安裝(1)

下載 erlang 利用 ons 拆分 直接 線程模型 新功能 scala

==> Scala語言簡介

--> Scala編程語言抓住了很多開發者的眼球。如果你粗略瀏覽Scala的網站,你會覺得Scala是一種純粹的面向對象編程語言,而又無縫地結合了命令式編程和函數式編程風格

--> 不太久之前編程語言還可以毫無疑意地歸類成“命令式”或者“函數式”或者“面向對象”。Scala代表了一個新的語言品種,它抹平了這些人為劃分的界限。

==> Scala有幾項關鍵特性表明了它的面向對象的本質

--> Scala中的每個值都是一個對象,包括基本數據類型(即布爾值、數字等)在內,連函數也是對象。

--> 類可以被子類化,而且Scala還提供了基於mixin的組合(mixin-based composition)

--> 與只支持單繼承的語言相比,Scala具有更廣泛意義上的類重用。Scala允許定義新類的時候重用“一個類中新增的成員定義(即相較於其父類的差異之處)”。Scala稱之為mixin類組合。

--> Scala還包含了若幹函數式語言的關鍵概念,包括高階函數(Higher-Order Function)、局部套用(Currying)、嵌套函數(Nested Function)、序列解讀(Sequence Comprehensions)等等。

--> Scala是靜態類型的,這就允許它提供泛型類、內部類、甚至多態方法(Polymorphic Method)。另外值得一提的是,Scala被特意設計成能夠與Java和.NET互操作。Scala當前版本還不能在.NET上運行(雖然上一版可以-_-b),但按照計劃將來可以在.NET上運行。

--> Scala可以與Java互操作。它用scalac這個編譯器把源文件編譯成Java的class文件(即在JVM上運行的字節碼)。你可以從Scala中調用所有的Java類庫,也同樣可以從Java應用程序中調用Scala的代碼。


==> 為什麽我要使用Scala?

--> Scala的設計始終貫穿著一個理念:創造一種更好地支持組件的語言。(《The Scala Programming Language》,Donna Malayeri)也就是說軟件應該由可重用的部件構造而成。Scala旨在提供一種編程語言,能夠統一和一般化分別來自面向對象和函數式兩種不同風格的關鍵概念


==> Scala得以提供一些出眾的特性

--> 面向對象風格

--> 函數式風格

--> 更高層的並發模型

--> Scala把Erlang風格的基於actor的並發帶進了JVM。開發者可以利用Scala的actor模型在JVM上設計具伸縮性的並發應用程序,它會自動獲得多核心處理器帶來的優勢,而不必依照復雜的Java線程模型來編寫程序。

--> 輕量級的函數語法

--> 高階

--> 嵌套

--> 局部套用(Currying)

--> 匿名

--> 與XML集成

--> 可在Scala程序中直接書寫XML

--> 可將XML轉換成Scala類

--> 與Java無縫地互操作


==> Scala 是一種多範式的編程語言,設計意圖是要集成面向對象編程和函數式編程的各種特性


==> 技巧

-->

--> 不要陷入C++一樣的、不斷膨脹的問題裏,留下太多的選擇,且沒有清晰的最佳實踐。這導致每個人都在選擇不同的子集。要提供適應的指導。

--> 記住,反對不良的設計功能與增加新功能同等重要——這很殘酷。

--> 考慮拆分語言為產生環境創建可行的標準。為學術世界節省成本是一個明智的選擇。迎合企業的需要,獲得更大的采用。

--> 庫的編寫者應該看看Java API,確認是否應該有功能調用或結構化功能,為了更好的閱讀。不要為了流動性在跳躍太大來與Ruby競爭。

--> 最後,當人們提出的建設性的批評時,不要感到失望。如果同樣的報怨不斷出現,那就說明應該重視一下。


==> 環境部署

--> 由於 Scala 是基於 JVM 運行的,所以需要配置 JAVA環境,這裏不在復述

--> 安裝Scala:下載 http://www.scala-lang.org/download/

註意:版本跟Spark的Scala版本一致

scala-2.11.8.zip


--> Scala的運行環境(開發工具)

--> 命令行:REPL

--- 進入: scala

--- 退出::quit

--- (*) paste 模式: 相當於vi編輯器

--- 進入: :paste

--- 退出: ctrl+D

--> IDEA

--- 默認:沒有Scala的環境

--- 需要安裝插件:SBT(需要聯網,有點慢)

(3)Scala IDE:基於Eclipse


--> 參考此鏈接:http://blog.csdn.net/yuanguangyu1221/article/details/50889522


Scala語言學習之環境安裝(1)