scala學習筆記一之入門

1.? Scala有多cool

“Put productivity & creativity back in the hands of developers”

1.1.? ? 速度!

Java的運行速度:基于JVM,和Java運行速度相當。有個好的編譯器(Scalac)和運行時(JVM)。Ruby、Perl、Python對大項目運行效率很無奈。

Python/Ruby的編程速度:有更多的內建庫和數據結構,編程就更快,Scala在完全繼承Java和.NET的標準庫的基礎上,還擴展了更豐富有用的函數庫。

類庫和運行速度有關系嗎?——很大程度上有,眾多專家已經在類庫中準備了充分優化的穩定算法,Scala對Java Collection算法進行直接包裝或者直接調用,使用類庫算法,不用擔憂自造輪子的運行效率。

Scala是靜態語言,Scalac和Javac是同一作者,編譯成.class后運行于JVM平臺,近20年那么多大公司投入進行的優化也不是白搭。對于大部分的應用來說,使用Scala不用再顧慮運行速度,它可能不是最快,但至少逼近Java,而不像Groovy、JRuby、Jython 那般與Java有高達數十倍的效率差距。

1.2.? ? 易用的數據結構

List-Map-Tuple及其豐富特性支持讓你解決數據結構問題時游刃有余。

List(1,31,4,3,53,4,234) filter (10<) filter (100>)? // List(31, 53)

val (a,b) = List(1, 31,4,3,53,4,234) partition (10>) // a=List(1,4,3,4), b=List(31,53,234)

def info(p:Person) = (name, age, email) // info._1, info._2, info._3

1.3.? ? OOP+FP

l? 適當地選用OOP或者FP,能夠使表達相對另一種更加清晰準確。

l? 實際可見的生產力在于:一個應用中的部分代碼尤其是高知識凝聚的代碼如數學函數和設計模式,一般來說不會自己編寫,而是會來自于現成的Java庫,或者其他語言,或者偽代碼。我們可以很容易地把過程語言、面向對象語言、函數式語言中的代碼“翻譯”成Scala代碼。Scala的混血性給我們的實際使用提供了便利。

l? 語言特色能夠塑造編程者的思維: C++也能使用抽象基類設計多重繼承,但Java的接口引導你走得更遠;Java也能設計類型安全的靜態方法(final static),但Scala鼓勵你這樣做并逐步從OOP到達FP的彼岸,而且來去自如。

1.4.? ? 動態+靜態

Scala雖然是一門徹頭徹底的靜態語言,但又具備了現代動態語言的很多方便和靈活:

l? 不需要冗余的類型聲明

l? 可以在已有類上增加新方法(implicit轉換和Dynamic trait)

l? 可以把不繼承共同父類的不同類型對象傳到方法中

l? 可以做靜態語言的Refactoring

l? 不用象動態語言那樣測試代碼比業務代碼還多

l? 編譯靜態語言的性能

l? Read-Eval-Print Loop交互解釋器(注:Linux下的用戶體驗遠好于Windows下)

1.5.? ? DSL

Scala可以把xml/html處理、數學公式表達、SQL查詢等包裝的更優雅、更合理,為使用者提供更好的API。這也使Scala的程序也更可讀,從而更易于維護。

1.6.? ? 夠復雜

不同的思考模式:Java是先寫后想,Scala是先想后寫(其實FP大都如此)

你不要指望把Scala作為初學者的第一門編程語言(個人非常贊同),這門語言甚至不是初級程序員能夠掌控的——換句話說,能夠讀懂和寫Scala代碼,說明你是一個不折不扣的資深程序員,或者更準確一點,是資深Java程序員

1.7.? ? 夠有趣

還看這句話:“Put productivity & creativity back in the hands of developers”。其實不僅限于Scala,對于所有的編程語言來說,一門語言是否“好玩”有趣,能否激起創作欲,才是最關鍵的,這比語言風格、運行速度、工具支持、社區文化都來得重要。

有些人對一門語言會玩一輩子,就像Lisp、Haskell和Smalltalk的擁躉;而有些人會不斷尋找下一個玩意兒,就像原來玩Java的一些人發現更好玩的Ruby和Python之后,倒戈狂噴Java,力挺后者;Groovy/Grails的玩家在很短的時間里面,寫了無數的擴展和Plugin應用;學習Scala,能很多好玩的地方,能用它有激情地去寫一些振奮人心的應用出來!

1.8.? ? 開發社區

Scala開發/用戶社區氣氛良好,基本都是資深開發者以及有一定經驗的用戶,不會碰到太弱智的事(提問、爭吵),除了語言和工具開源免費,最權威和最好的書也都是免費的(包括Lift社區

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容