偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

“Scala” 一個(gè)有趣的語(yǔ)言

開(kāi)發(fā) 后端
本文詳述了Scala是一種跟目前使用的語(yǔ)言不同的語(yǔ)言,一種另外的編程體驗(yàn);Scala是一種具有很多我從沒(méi)見(jiàn)過(guò)的有趣的新特征的語(yǔ)言。

本文摘選自博客:“Mike's World-O-Programming”,原文名為“Why Scala Is Interesting”全文如下:

常讀我的博客的人應(yīng)該知道,我最喜歡的編程語(yǔ)言是Haskell。我喜歡函數(shù)式編程,Haskell是一個(gè)能把函數(shù)式編程推向極致的語(yǔ)言。雖然如此,我仍然時(shí)刻關(guān)注著其它新興的和即將產(chǎn)生的編程語(yǔ)言,特別是函數(shù)式的編程語(yǔ)言,所以,當(dāng)Scala誕生之初我就知道了這種語(yǔ)言。當(dāng)時(shí),我粗略的對(duì)它了解了一下,并不是很喜歡;我感覺(jué)它的那些語(yǔ)法對(duì)于我的口味來(lái)說(shuō)過(guò)于甜膩,而且這種語(yǔ)言看起來(lái)異常的復(fù)雜。然而,一些我很尊敬的人都喜歡這種語(yǔ)言,所以我就再次的看了看。我的評(píng)論并不是基于對(duì)這種語(yǔ)言的一個(gè)全面的了解之上,只是我通過(guò)幾周的閱讀和實(shí)驗(yàn)得到的收獲。不管怎樣,我已經(jīng)有足夠的認(rèn)識(shí)來(lái)聲明,Scala是個(gè)有趣的語(yǔ)言,值得去研究,特別是當(dāng)你有Haskell編程背景的情況下。我使用的是一本“階梯教程”(Programming In Scala by Odersky et al),這本書(shū)寫(xiě)的非常好,我全力的推薦大家讀一下。

我想學(xué)一種新的編程語(yǔ)言主要有兩個(gè)原因。一個(gè)是我想找一種跟目前我使用的語(yǔ)言不同的語(yǔ)言,我想尋找一種另外的編程體驗(yàn)。另一個(gè)是我想找一種具有很多我從沒(méi)見(jiàn)過(guò)的有趣的新特征的語(yǔ)言。Scala的出現(xiàn)完全滿足了我的苛求。.

本質(zhì)上來(lái)講,Scala是一種運(yùn)行在JVM之上的語(yǔ)言,它很快,使用它我可以做圖形界面編程,web編程(用它的Lift框架),和移動(dòng)設(shè)備編程(使用Android,我也知道讓Scala程序在Android上運(yùn)行并不是一個(gè)很容易的事)。Scala在這些領(lǐng)域出現(xiàn)的時(shí)間比Haskell早的多。我期望Haskell能最終趕上,但是我現(xiàn)在就已經(jīng)喜歡上了寫(xiě)這些類型的程序了。

從理論的角度來(lái)看,Scala的訴求是靜態(tài)類型背景下的函數(shù)式編程和面向?qū)ο缶幊痰慕M合。這可不容易做到。在動(dòng)態(tài)語(yǔ)言里倒是容易些(例如Lisp使用CLOS),而靜態(tài)類型會(huì)使事情變得非常的復(fù)雜,尤其是子類型化和繼承方面。Haskell可部分的支持面向?qū)ο缶幊蹋ㄌ貏e是使用類型類和現(xiàn)有類型),但我在Haskell里沒(méi)有發(fā)現(xiàn)面向?qū)ο箫L(fēng)格的繼承模型,盡管這是十分有用的。Scala有一個(gè)非常復(fù)雜的面向?qū)ο笙到y(tǒng),還包括一些諸如顯式sub-和supertype標(biāo)記,協(xié)方差(covariance)和反變(contravariance)標(biāo)記,等等。這些都超越了我所見(jiàn)過(guò)的其它的面向?qū)ο蟮木幊陶Z(yǔ)言。實(shí)際上,Scala實(shí)現(xiàn)了把所有的函數(shù)性特征都作為對(duì)象,所以把它稱作一種對(duì)象-函數(shù)式語(yǔ)言并不準(zhǔn)確,不如稱作為超級(jí)面向?qū)ο笳Z(yǔ)言更合適。

我認(rèn)為Scala的面向?qū)ο蟛皇荋askell能比的;它是對(duì)于它的這種范式上的一個(gè)最佳案例。(我這里忽略掉了那些類型依賴的函數(shù)式語(yǔ)言,諸如Agda/Coq/Epigram,我知道它們,但基本上它們已經(jīng)不再被當(dāng)成一種用來(lái)做普通編程的語(yǔ)言了。)對(duì)于在靜態(tài)類型的環(huán)境中,是否對(duì)象已經(jīng)超過(guò)函數(shù)變成一種更基礎(chǔ)的結(jié)構(gòu),我并不清楚。在動(dòng)態(tài)類型語(yǔ)言中,你可以由函數(shù)得到對(duì)象(可以假設(shè)函數(shù)就是閉包),或者你可以由對(duì)象得到函數(shù),所以兩種觀念是可以相互轉(zhuǎn)換的。不論這是不是一種使用靜態(tài)類型的案例,我想,用兩種語(yǔ)言從不同的方向來(lái)考慮這個(gè)問(wèn)題是件很有趣的事情。另一方面,我曾學(xué)習(xí)過(guò)Smalltalk的面向?qū)ο筇卣鳎也坏貌徽f(shuō),我從沒(méi)見(jiàn)過(guò)第二個(gè)靜態(tài)類型的語(yǔ)言具有Smalltalk這樣優(yōu)雅的簡(jiǎn)單消息傳輸模型。再一方面,我更希望用Scala而不是Smalltalk來(lái)寫(xiě)一個(gè)大型程序。(并且,如果你真的想直接進(jìn)行消息傳輸時(shí),Scala也有Actors類庫(kù)來(lái)支持你。)

另一個(gè)Scala里我喜歡的東西,也是Haskell共有的東西,就是他們都有學(xué)院理論根源。當(dāng)你在設(shè)計(jì)一種具有深?yuàn)W的類型系統(tǒng)的語(yǔ)言時(shí),了解一些類型理論會(huì)非常的有幫助。Scala和Haskell的設(shè)計(jì)者都清楚這一點(diǎn),這也就是在這些語(yǔ)言里有很多高質(zhì)量的特性的原因。我希望有一天那些把希曼式實(shí)用主義當(dāng)作理論基礎(chǔ)的人會(huì)閉嘴,因?yàn)槭聦?shí)證明通過(guò)學(xué)院派設(shè)計(jì)出來(lái)的語(yǔ)言才是解決現(xiàn)實(shí)問(wèn)題的上上之選。

我會(huì)一直關(guān)注著Scala,我希望能對(duì)它了解的更多。但我仍然喜歡Haskell,我從來(lái)不會(huì)打算放棄它。

[[14438]]

原文地址:http://mvanier.livejournal.com/3395.html

【編輯推薦】

  1. 51CTO專訪Scala創(chuàng)始人:Scala拒絕學(xué)術(shù)化
  2. Scala 2.8最終發(fā)布 全新功能值得期待
  3. 編程思想碰撞 Scala不是改良的Java
  4. 對(duì)象函數(shù)式編程 Scala簡(jiǎn)史
  5. Scala:Java+函數(shù)式=后函數(shù)式?
責(zé)任編輯:佚名 來(lái)源: 外刊IT評(píng)論
相關(guān)推薦

2020-10-31 17:33:18

Scala語(yǔ)言函數(shù)

2013-08-20 09:23:06

Scala遞歸

2012-09-07 10:09:56

CC語(yǔ)言編程

2009-07-08 12:43:59

Scala ServlScala語(yǔ)言

2021-05-04 16:38:54

Linux數(shù)學(xué)游戲

2023-12-01 11:10:13

CMS開(kāi)源

2011-07-25 13:34:08

ORACLEFLASHBACK T

2023-02-21 08:02:09

可視化工具圖表

2020-11-15 23:23:21

JavaScriptAPI開(kāi)發(fā)

2023-04-27 08:42:50

效果

2022-07-05 13:47:58

邊緣人工智AI

2021-07-09 06:48:30

語(yǔ)言Scala編程

2023-02-26 01:02:22

2016-01-21 10:00:38

2021-08-02 08:21:53

Python編程語(yǔ)言開(kāi)發(fā)

2009-08-06 14:01:53

Scala的優(yōu)點(diǎn)

2018-06-03 15:31:57

物聯(lián)網(wǎng)馬聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)

2023-10-08 09:42:41

GitHubDataTable?Fill

2017-09-07 19:21:20

Java語(yǔ)言Iodine

2022-10-10 23:19:02

Python腳本語(yǔ)言工具庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)