scala學(xué)習(xí)筆記一之入門(mén)

1.? Scala有多cool

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

1.1.? ? 速度戳表!

Java的運(yùn)行速度:基于JVM玖喘,和Java運(yùn)行速度相當(dāng)。有個(gè)好的編譯器(Scalac)和運(yùn)行時(shí)(JVM)。Ruby江解、Perl、Python對(duì)大項(xiàng)目運(yùn)行效率很無(wú)奈翔怎。

Python/Ruby的編程速度:有更多的內(nèi)建庫(kù)和數(shù)據(jù)結(jié)構(gòu)枕屉,編程就更快,Scala在完全繼承Java和.NET的標(biāo)準(zhǔn)庫(kù)的基礎(chǔ)上衬廷,還擴(kuò)展了更豐富有用的函數(shù)庫(kù)摇予。

類(lèi)庫(kù)和運(yùn)行速度有關(guān)系嗎?——很大程度上有吗跋,眾多專(zhuān)家已經(jīng)在類(lèi)庫(kù)中準(zhǔn)備了充分優(yōu)化的穩(wěn)定算法侧戴,Scala對(duì)Java Collection算法進(jìn)行直接包裝或者直接調(diào)用,使用類(lèi)庫(kù)算法跌宛,不用擔(dān)憂(yōu)自造輪子的運(yùn)行效率酗宋。

Scala是靜態(tài)語(yǔ)言,Scalac和Javac是同一作者疆拘,編譯成.class后運(yùn)行于JVM平臺(tái)蜕猫,近20年那么多大公司投入進(jìn)行的優(yōu)化也不是白搭。對(duì)于大部分的應(yīng)用來(lái)說(shuō)哎迄,使用Scala不用再顧慮運(yùn)行速度回右,它可能不是最快,但至少逼近Java漱挚,而不像Groovy楣黍、JRuby、Jython 那般與Java有高達(dá)數(shù)十倍的效率差距棱烂。

1.2.? ? 易用的數(shù)據(jù)結(jié)構(gòu)

List-Map-Tuple及其豐富特性支持讓你解決數(shù)據(jù)結(jié)構(gòu)問(wèn)題時(shí)游刃有余。

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? 適當(dāng)?shù)剡x用OOP或者FP阶女,能夠使表達(dá)相對(duì)另一種更加清晰準(zhǔn)確颊糜。

l? 實(shí)際可見(jiàn)的生產(chǎn)力在于:一個(gè)應(yīng)用中的部分代碼尤其是高知識(shí)凝聚的代碼如數(shù)學(xué)函數(shù)和設(shè)計(jì)模式,一般來(lái)說(shuō)不會(huì)自己編寫(xiě)秃踩,而是會(huì)來(lái)自于現(xiàn)成的Java庫(kù)衬鱼,或者其他語(yǔ)言,或者偽代碼憔杨。我們可以很容易地把過(guò)程語(yǔ)言鸟赫、面向?qū)ο笳Z(yǔ)言、函數(shù)式語(yǔ)言中的代碼“翻譯”成Scala代碼。Scala的混血性給我們的實(shí)際使用提供了便利抛蚤。

l? 語(yǔ)言特色能夠塑造編程者的思維: C++也能使用抽象基類(lèi)設(shè)計(jì)多重繼承台谢,但Java的接口引導(dǎo)你走得更遠(yuǎn);Java也能設(shè)計(jì)類(lèi)型安全的靜態(tài)方法(final static)岁经,但Scala鼓勵(lì)你這樣做并逐步從OOP到達(dá)FP的彼岸朋沮,而且來(lái)去自如。

1.4.? ? 動(dòng)態(tài)+靜態(tài)

Scala雖然是一門(mén)徹頭徹底的靜態(tài)語(yǔ)言缀壤,但又具備了現(xiàn)代動(dòng)態(tài)語(yǔ)言的很多方便和靈活:

l? 不需要冗余的類(lèi)型聲明

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

l? 可以把不繼承共同父類(lèi)的不同類(lèi)型對(duì)象傳到方法中

l? 可以做靜態(tài)語(yǔ)言的Refactoring

l? 不用象動(dòng)態(tài)語(yǔ)言那樣測(cè)試代碼比業(yè)務(wù)代碼還多

l? 編譯靜態(tài)語(yǔ)言的性能

l? Read-Eval-Print Loop交互解釋器(注:Linux下的用戶(hù)體驗(yàn)遠(yuǎn)好于Windows下)

1.5.? ? DSL

Scala可以把xml/html處理樊拓、數(shù)學(xué)公式表達(dá)、SQL查詢(xún)等包裝的更優(yōu)雅塘慕、更合理筋夏,為使用者提供更好的API。這也使Scala的程序也更可讀图呢,從而更易于維護(hù)条篷。

1.6.? ? 夠復(fù)雜

不同的思考模式:Java是先寫(xiě)后想,Scala是先想后寫(xiě)(其實(shí)FP大都如此)岳瞭。

你不要指望把Scala作為初學(xué)者的第一門(mén)編程語(yǔ)言(個(gè)人非常贊同)拥娄,這門(mén)語(yǔ)言甚至不是初級(jí)程序員能夠掌控的——換句話(huà)說(shuō),能夠讀懂和寫(xiě)Scala代碼瞳筏,說(shuō)明你是一個(gè)不折不扣的資深程序員稚瘾,或者更準(zhǔn)確一點(diǎn),是資深Java程序員姚炕。

1.7.? ? 夠有趣

還看這句話(huà):“Put productivity & creativity back in the hands of developers”摊欠。其實(shí)不僅限于Scala,對(duì)于所有的編程語(yǔ)言來(lái)說(shuō)柱宦,一門(mén)語(yǔ)言是否“好玩”有趣些椒,能否激起創(chuàng)作欲,才是最關(guān)鍵的掸刊,這比語(yǔ)言風(fēng)格免糕、運(yùn)行速度、工具支持忧侧、社區(qū)文化都來(lái)得重要石窑。

有些人對(duì)一門(mén)語(yǔ)言會(huì)玩一輩子,就像Lisp蚓炬、Haskell和Smalltalk的擁躉松逊;而有些人會(huì)不斷尋找下一個(gè)玩意兒,就像原來(lái)玩Java的一些人發(fā)現(xiàn)更好玩的Ruby和Python之后肯夏,倒戈狂噴Java经宏,力挺后者犀暑;Groovy/Grails的玩家在很短的時(shí)間里面,寫(xiě)了無(wú)數(shù)的擴(kuò)展和Plugin應(yīng)用烁兰;學(xué)習(xí)Scala耐亏,能很多好玩的地方,能用它有激情地去寫(xiě)一些振奮人心的應(yīng)用出來(lái)缚柏!

1.8.? ? 開(kāi)發(fā)社區(qū)

Scala開(kāi)發(fā)/用戶(hù)社區(qū)氣氛良好苹熏,基本都是資深開(kāi)發(fā)者以及有一定經(jīng)驗(yàn)的用戶(hù),不會(huì)碰到太弱智的事(提問(wèn)币喧、爭(zhēng)吵)轨域,除了語(yǔ)言和工具開(kāi)源免費(fèi),最權(quán)威和最好的書(shū)也都是免費(fèi)的(包括Lift社區(qū)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杀餐,一起剝皮案震驚了整個(gè)濱河市干发,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌史翘,老刑警劉巖枉长,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異琼讽,居然都是意外死亡必峰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)钻蹬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吼蚁,“玉大人,你說(shuō)我怎么就攤上這事问欠「未遥” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵顺献,是天一觀的道長(zhǎng)旗国。 經(jīng)常有香客問(wèn)我,道長(zhǎng)注整,這世上最難降的妖魔是什么能曾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮肿轨,結(jié)果婚禮上借浊,老公的妹妹穿的比我還像新娘。我一直安慰自己萝招,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布存捺。 她就那樣靜靜地躺著槐沼,像睡著了一般曙蒸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岗钩,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天纽窟,我揣著相機(jī)與錄音,去河邊找鬼兼吓。 笑死臂港,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的视搏。 我是一名探鬼主播审孽,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浑娜!你這毒婦竟也來(lái)了佑力?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤筋遭,失蹤者是張志新(化名)和其女友劉穎打颤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體漓滔,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡编饺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了响驴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片透且。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖踏施,靈堂內(nèi)的尸體忽然破棺而出石蔗,到底是詐尸還是另有隱情,我是刑警寧澤畅形,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布养距,位于F島的核電站,受9級(jí)特大地震影響日熬,放射性物質(zhì)發(fā)生泄漏棍厌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一竖席、第九天 我趴在偏房一處隱蔽的房頂上張望耘纱。 院中可真熱鬧,春花似錦毕荐、人聲如沸束析。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)员寇。三九已至弄慰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝶锋,已是汗流浹背陆爽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扳缕,地道東北人慌闭。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像躯舔,于是被迫代替她去往敵國(guó)和親驴剔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,334評(píng)論 0 85
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx閱讀 8,328評(píng)論 0 16
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法庸毫,類(lèi)相關(guān)的語(yǔ)法仔拟,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法飒赃,異常的語(yǔ)法利花,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,664評(píng)論 18 399
  • 昨晚熬夜到凌晨 看完了《房思琪的初戀樂(lè)園》 關(guān)掉手機(jī)合上眼 所有的感官在一瞬間凝成一個(gè)點(diǎn) 抓緊了我的喉嚨 ...
    翮笙閱讀 671評(píng)論 0 3
  • 輕拋柳葉舟, 粼光漾青眸载佳。 回首花間趣炒事, 舟已漩中流。 再折柳葉續(xù)蔫慧, 風(fēng)吹落遠(yuǎn)溝挠乳。 轉(zhuǎn)身逐它去, 花嗔鳥(niǎo)亦羞姑躲。 2...
    飛鏑閱讀 292評(píng)論 0 0