精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Scala創始人:創造比Java更好的語言

原創
開發 后端
Scala是一種針對 JVM 將函數和面向對象技術組合在一起的編程語言。Martin Odersky創建這個語言之時,希望它能夠解決Java語言中的一些問題。Scala現在還相對比較小眾,但也已經擁有了相當忠實的擁護群體。

【51CTO快譯】近日,Scala語言的創始人Martin Odersky接受了Artima的一系列訪談。Martin Odersky在2001年開始創立Scala語言,最初的動機是因為對Java的一些特性感到不滿,想要創建一個比Java更高級的語言。他基本達到了這個目的:Scala成為了Java的首選替代之一。如果你對Scala語言還不太了解,可以參考Scala編程語言簡介

本文是訪談的第一個系列。在這部分節選的內容中,Martin Odersky詳細的描述了他創建Scala的前因后果:他是如何創建這個基于JVM和Java類庫的、不同于Java的語言的。

[[2809]] 

Scala創始人Martin Odersky

因編譯器而著迷

Artima:讓我們從頭開始。您是如何開始介入編程語言的?

Martin Odersky:我最喜愛的科目一直都是編譯器和編程語言。1980年,當我在讀大學的時候,第一次接觸編譯器,我就馬上想自己建立一個編譯器。那時候我唯一可以買得起的電腦是Sinclair ZX 80,它只有1KB的RAM 。幸運的是,不久后我有了一個性能更強大的機器Osborne-1,它是世界上第一款“便攜式”(筆記本)電腦,看上去就像一個傾斜90度的縫紉機。它有一個5英寸的顯示屏,每行顯示52個字符。但它有一個56KB可用的RAM以及兩個90K的軟盤驅動器。

在那些日子里,我花了一些時間與我大學里的另一名學生Peter Sollich一起研究。我們一起了解了一種新語言Modula-2,我們發現它非常棒,而且設計良好。因此,我們計劃編寫一個適用于8位Z80計算機的Modula-2編譯器。但是出現了一個小問題,Osborne附帶的唯一語言是Microsoft Basic,這完全不適合我們的想法,因為它甚至不支持帶參數的程序,只能使用全局變量。而當時的其他編譯器對于我們來說又都太昂貴了。因此,我們決定采用經典的bootstrapping(引導)技術。Peter使用Z80匯編語言為一個小小的Pascal子集編寫了第一個編譯器。然后,我們不斷改進這個編譯器,使它能夠逐漸編譯稍微大量的語言。經過幾代版本后的改進,直到我們可以編譯所有的Modula-2語言。它可以產生解釋后的字節碼以及Z80二進制碼。該字節碼是當時所有系統中最簡潔的,其二進制版本是當時8位機上最快的。我們的這個編譯器在當時看來是能力相當不錯的系統。

我在我們即將要完成我們的編譯器之前,Borland帶著其Turbo Pascal橫空出世,同時正在考慮入主Modula-2市場。事實上,Borland決定購買我們的Modula-2編譯器,并將以Turbo Modula-2的名字出售,適用于CP/M芯片,并想要開發其IBM PC版本,我們提議為他們編寫IBM PC版本,但他們告訴我們,他們對于這個版本的開發已經做好了安排。但不幸的是,這個版本的開發周期遠遠超出了他們的計劃。3、4年后,其編碼實現小組從公司中獨立出來,并推出了TopSpeed Modula-2。在沒有IBM PC版本時,Borland繼Turbo-Modula-2之后就再也沒有任何市場競爭力了。

(51CTO編者:這個曾經的開發巨頭Borland于日前隕落。詳情可參考Borland傳奇終結 被英國軟件商7500萬美元收購

當我們完成Modula-2編譯器時,Borland提議要雇用Peter和我。于是Peter去加入了他們的行列。我曾經也想這樣做,但有個問題是,我仍然還有一年的課程沒有讀完,而且還要計劃讀碩士。當時我很受誘惑,甚至想過退學。但最后,我決定堅持讀完大學。之后,在做碩士項目期間(有關增量分析的課題),我發現我更喜歡做研究。于是最終我放棄了加入Borland編寫編譯器的想法,而是繼續在蘇黎世ETH攻讀Niklaus Wirth的博士,Niklaus Wirth是Pascal和Modula-2的發明者。

為了更好的Java而努力

Artima:Scala是如何出現的?Scala的發展史是什么樣的?

Martin Odersky:在我的蘇黎世生活快要結束的時候,大概是1988到1989年,我開始非常喜歡函數式程序設計。于是,我一直留在那里做研究,最終成為一名德國卡爾斯魯厄的大學教授。我最初的工作偏向于編程的理論方面,比如call-by-need lambda(惰性λ)演算。這項工作是同Phil Wadler共同進行的,他當時在格拉斯哥大學。有一天,Phil告訴我,他的研究組里一個很勤奮的助教聽說有一種新的語言要被推出,目前這種語言仍處于alpha版本階段,語言的名字為Java。這個助教告訴Phil:“看看這個Java,它所具有的靈活性。它擁有字節碼,它可以運行在網絡上,它具有垃圾收集功能。這個Java將要毀滅你們。你們準備怎么應對?” Phil說,是的,也許他說的有些道理。

對此的回應就是,Phil Wadler和我決定從函數式程序設計中提取出一些想法,并把這些想法轉移到Java空間。這一努力成就了一個新語言Pizza,它具有函數式程序設計的三個特點:泛型、高階函數以及模式匹配。Pizza最初發布于1996年,是在Java發布的一年之后。Pizza是比較成功的,因為它表明,我們可以在JVM平臺上實現函數式語言的特性。

然后,我們接觸了來自Sun核心開發團隊的Gilad Bracha和David Stoutamire。他們說:“我們對你們一直所研究的泛型非常感興趣,讓我們一起做一個關于泛型的項目吧。”那就是GJ(泛型Java)。因此,我們于1997/98年開發了GJ,6年后,對它進行一些補充,使之成為了Java 5中的泛型功能。特別是,補充了由Gilad Bracha和奧胡斯大學的人們一起獨立開發的Java泛型通配符。

雖然我們的泛型擴展被擱置了6年,但Sun公司對于我為GJ所開發的編譯器表現出了濃厚的興趣。經證明,我所寫的編譯器比他們的第一個Java編譯器更穩定、更易于維護。因此,他們決定從2000年推出的1.3版本開始,將GJ編譯器作為其標準的Javac編譯器。

#p#

然后,為了比Java更好的語言

Martin Odersky:現在,經過Pizza和GJ的經歷,我有時會感到沮喪,因為Java是一個具有非常強的約束的語言。因此,很多事情都不能像我想象的那種方式那樣去做——那種我原本確信是正確的方式。所以本來,本質上我的工作是集中于讓Java變得更好,但在那之后,我決定,現在是時候應該后退一步看看了。我想要從零開始,看看我能否可以設計出一些比Java更好的東西。但與此同時,我知道我不能從零開始。我需要借助一個現有的基礎架構,否則這只是不切實際地引導自己去無中生有,沒有任何類庫、工具等等。

所以我決定,即使我想要設計出一種不同于Java的語言,始終還是要借助Java的基礎架構——JVM和它的類庫。這就是我的想法。我認為在那個時候,這是一個很好的機會,那時候我正在洛桑聯邦理工大學擔任教授,這為我提供了一個極好的獨立研究的環境。我可以組建一個小型研究組。

開始的時候,我們非常激進。我們想要在一個現有的非常好的模型上創建一些東西,該模型為join calculus(連接演算)。我們創建了一個連接演算的面向對象版本Functional Nets,以及一種新語言Funnel。但是,又過了一段時間,我們發現,Funnel是一個非常純粹的語言,并不一定很實用。Funnel是建立在一個非常小的內核之上。很多人們通常認為理所當然的事情(如類,或模式匹配)都只能通過編碼到內核才能實現。從學術的角度來看這是一項非常優雅的技術。但運用于實際它就并不那么好。初學者覺得這種必要的編碼相當困難,而高手們卻覺得不得不一次又一次地編碼非常無聊。

因此,我們決定再次從頭開始,并做一些介于Funnel(非常純粹的學術語言)和GJ(非常實用但卻存在一些限制的語言)中間的技術。我們希望創造一些能夠實用和有價值,同時又比Java高級的東西。在大約2002年時,我們開始著手進行這種語言,稱之為Scala。首次公開發布是在2003年。相對比較大規模的一次重新設計是在2006年初。從此,它開始穩步成長。

更好的Java受到的約束

Artima:您說您那時候感到很沮喪,遇到一些約束,需要向后兼容Java。您能否提供一些遇到約束的具體的例子?

Martin Odersky:在泛型設計中,有很多非常強硬的約束。其中最強、最難以應付的是,它必須充分地向后兼容非泛型Java。Collections類庫只停留在1.2版本,而且僅僅因為泛型的出現,Sun不準備推出全新的Collections類庫。因此,只能完全透明工作。(51CTO編者:有關Collections類庫的更多內容,可參考這篇基于JDK 5.0一些collection類的使用總結,以及《Java語言的科學與藝術》一書中的Collection層次結構章節。)

這就是為什么總會存在一些相當難看的東西。你總是不得不使用具有泛型類型的非泛型類型,即所謂的raw(原始)類型。還有,你不能改變數列行為,否則就會有未經檢查的警告。最重要的是,你不能利用數組做你想做的很多事情,比如生成一個具有類型參數的數組。后來在Scala,我們知道了實際上能如何實現這些事情,但是這可能僅僅是因為我們給Scala設置的條件是協變數組。

Artima:您能否就Java的協變數組詳細說明一下該問題?

Martin Odersky:當Java剛出現時,Bill Joy和James Gosling以及其他Java組成員都認為,Java應該有泛型,只是他們沒有足夠的時間做出詳細設計。所以由于Java中沒有泛型,至少最初階段沒有,他們就認為,數組不得不是協變的。例如,這意味著一個字符串(String)數組是一個對象(Object)數組的子類型。其原因是他們希望能夠重寫,比如,一個“通用”排序方法,采用了一個對象數組和一個用來排序該數組的比較器,然后讓你傳送一個字符串數組的參數給它。通常情況下這屬于類型不健全。這就是為什么在Java中你會獲得一個數組存儲例外。這實際上也證明,這種同樣的事情引起了對于數組泛型實現的需求。這就是為什么在Java中泛型并不好使。你不能定義一個字符串的列表數組,這是不可能的。你只能被迫使用難看的原始類型,永遠都只能是一個列表數組。因此,這有點類似原罪。他們對此做出了非常迅速的回應,認為這是一個快速破解。但隨后實際上每一個設計決定都被毀滅了。因此,為了不陷入同樣的陷阱,我們不得不中斷,并提出現在我們將不向上兼容Java,我們也想做一些不同的事情。

編者后記

Scala到目前為止還是一個相對小眾的語言,在TIOBE每月的排行榜上都在20到30之間浮動,與每月排名第一的Java在流行程度上仍有很大的差距。然而Scala在數年之間已經得到了越來越多開發者的關注,在國外的開發者討論區中常常會看到有Scala的專區。Scala在現在以及未來的開發界絕對是一個不可忽視的語言。

【相關閱讀】

  1. Java以外的選擇 Scala編程語言簡介
  2. Java之外,選擇Scala還是Groovy?
  3. 基于JDK 5.0一些collection類的使用總結
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2010-10-11 10:21:49

Flipboard移動開發

2009-07-08 11:44:40

ScalaGroovyJVM

2010-08-11 08:35:00

Scala 2.8Scala創始人Martin Oder

2009-06-10 14:43:19

Scala泛型Scala編程語言

2012-04-29 16:39:26

蘋果

2010-03-15 14:36:07

Python編程語言

2010-05-04 16:22:45

Unix系統

2015-05-19 14:34:17

程序員編程語言

2009-06-19 16:44:56

SpringJava EE

2009-12-22 02:48:23

COBOL語言Grace Hoppe編譯語言

2013-04-08 10:38:00

2020-10-27 14:52:55

機器人人工智能系統

2019-04-28 10:48:35

PythonJava編程語言

2022-12-06 07:18:56

DedeCMS創始人林學

2011-04-29 14:30:05

2012-06-14 16:21:24

LinuxLinus Torva

2010-08-20 09:27:40

Java創始人Android

2011-08-31 08:42:24

Java創始人高司令谷歌

2015-05-18 14:39:23

MySQL開源OpenStack

2013-04-23 10:00:45

創業創始人
點贊
收藏

51CTO技術棧公眾號

2019亚洲男人天堂| 精品国产乱码久久久久久夜甘婷婷| 免费日韩av电影| 中文字幕二区三区| 亚洲综合婷婷| 日韩成人xxxx| 日本黄色的视频| yellow在线观看网址| 国产视频在线观看一区二区三区| 成人有码视频在线播放| 日本五十熟hd丰满| 日韩一区电影| 亚洲国产欧美久久| 久久久久久综合网| 欧美极品免费| 五月激情丁香一区二区三区| 亚洲永久激情精品| 日本ー区在线视频| 国产精品中文有码| 欧美性一区二区三区| 中文字幕影音先锋| 三上亚洲一区二区| 亚洲欧美制服第一页| 亚洲精品久久一区二区三区777| 欧美日韩五码| 婷婷久久综合九色国产成人| 今天免费高清在线观看国语| 国产精品二线| 99久久国产免费看| 97久久精品午夜一区二区| 天天天天天天天干| 国产欧美一级| 久久久久久伊人| 四虎精品免费视频| 欧美在线电影| 亚洲区中文字幕| 少妇一级淫免费观看 | 777777777亚洲妇女| 美女福利视频在线观看| 91综合久久| 这里只有视频精品| 四虎国产精品成人免费入口| 日韩精选在线| 精品亚洲一区二区三区| 黄色录像a级片| 欧美18xxxx| 亚洲国产中文字幕在线观看| 美女伦理水蜜桃4| 一区二区三区视频播放| 精品久久久久久无| 制服丝袜av在线| 国产精品白丝av嫩草影院| 精品动漫一区二区三区在线观看| 久久久久无码国产精品一区李宗瑞 | 国产尤物久久久| 亚洲男人第一网站| 欧美大波大乳巨大乳| 欧洲三级视频| 色伦专区97中文字幕| 在线视频这里只有精品| 天天射成人网| 欧美精品在线免费| 久久这里只有精品国产| 99热免费精品| 国产成人精品久久二区二区91| 无码人妻精品一区二区三区不卡| 日韩国产高清影视| 91精品久久久久久| 亚洲av无码乱码国产精品| 成人福利视频网站| 麻豆av一区二区三区| 国产视频网址在线| 亚洲欧洲日本在线| 拔插拔插海外华人免费| 天堂av在线网| 欧美日韩免费一区二区三区视频| 日本高清一区二区视频| 91精品国产自产精品男人的天堂| 亚洲精品国精品久久99热| 中文字幕人妻一区二区三区在线视频 | 欧美一区二区三区日韩| 挪威xxxx性hd极品| 自拍亚洲一区| 精品国产一区二区三区四区在线观看| 亚洲精品91在线| 欧美88av| 国产成人一区二区在线| 国产视频在线观看免费| 99视频有精品| 艳色歌舞团一区二区三区| 免费网站在线观看人| 色噜噜狠狠色综合中国| 污免费在线观看| 中文有码一区| 色综合久久久888| 久久久成人免费视频| 国产在线一区二区| 欧美日韩精品免费观看| 欧美aaaaaaa| 欧美性xxxxxx少妇| 95视频在线观看| 欧美一二区在线观看| 久久久久久久久久久成人| 中文字幕 亚洲视频| 成人一区二区三区在线观看| 色综合视频二区偷拍在线| 青草视频在线免费直播| 欧美日韩亚洲综合| 中文字幕影片免费在线观看| 亚洲综合婷婷| 国产精品高潮呻吟久久av黑人| www.亚洲黄色| 国产精品久久久久久久久图文区 | 亚洲自拍的二区三区| 国产粉嫩在线观看| 日韩一区二区视频在线观看| 国产传媒在线看| 国产日韩综合| 国产精品免费区二区三区观看| av电影在线观看| 欧美性猛交xxxxx免费看| 国产伦理在线观看| jlzzjlzz亚洲女人| 日韩av色在线| 欧美女优在线观看| 精品久久久久久电影| 黄页网站在线看| 91成人网在线观看| 国产欧美久久一区二区| 国产三级电影在线观看| 色综合天天综合给合国产| 亚洲图片综合网| 尹人成人综合网| 丁香五月网久久综合| 91最新在线视频| 91精品国产一区二区| 国产精品久久国产精麻豆96堂| 久久亚洲欧洲| 欧美亚洲国产免费| 三上悠亚国产精品一区二区三区| 日韩精品免费综合视频在线播放| 国产精品99精品| 成人短视频下载| 波多野结衣乳巨码无在线| 福利欧美精品在线| 91国内免费在线视频| 天堂网在线中文| 狠狠躁夜夜躁久久躁别揉| 加勒比精品视频| 香蕉精品999视频一区二区| 久久国产一区| 成人自拍av| 日韩中文在线观看| 国产原创中文av| 亚洲日本va午夜在线影院| 91亚洲一区二区| 欧美精品首页| 国产精品久久久久久久免费大片| 欧美人与禽猛交乱配| 精品国产凹凸成av人网站| 成人免费看片98| 97久久超碰精品国产| 黄色一级一级片| 日本久久综合| 成人春色激情网| 欧洲一区二区三区| 精品丝袜一区二区三区| 樱花视频在线免费观看| 中文字幕一区二区三区精华液 | 精品一区视频| 久久久久久亚洲精品不卡| 你懂的在线观看| 色欧美日韩亚洲| 日韩激情小视频| 成人动漫av在线| 激情综合网俺也去| 91精品一区二区三区综合在线爱| 国产精品久久一区二区三区| 成人教育av| 日韩在线观看免费av| 亚洲精华国产精华精华液网站| 欧美日韩中文字幕在线视频| 国产精品久久久视频| 国产sm精品调教视频网站| 亚洲人成色77777| 亚洲大全视频| 开心色怡人综合网站| 婷婷久久综合九色综合99蜜桃| 久久久久久久久久国产| 91在线免费看| 亚洲大胆美女视频| 伊人久久成人网| 亚洲国产欧美在线人成| 免费黄色在线网址| 99热精品一区二区| 中文字幕线观看| 亚洲一级在线| 日本高清视频免费在线观看| 亚洲人成精品久久久| 成人福利视频网| 美女日韩欧美| 久久久亚洲天堂| 求av网址在线观看| 精品调教chinesegay| 国产内射老熟女aaaa∵| 91久久精品国产91性色tv| 国产高清在线免费观看| 国产欧美视频一区二区三区| 国产乱淫av片| 精品在线免费观看| 黑鬼大战白妞高潮喷白浆| 亚洲午夜极品| 波多野结衣三级在线| 国产剧情一区| 精品产品国产在线不卡| 日本99精品| 国产精品一二三在线| 国产精品迅雷| 97视频在线观看免费| 污污视频在线| 久久久国产视频| 91啦中文在线| 国产一区二区三区直播精品电影| 人妻少妇精品无码专区| 日韩欧美一区二区视频| 一区二区三区免费在线| 91福利精品视频| 天堂网中文字幕| 疯狂欧美牲乱大交777| 国产一级生活片| 一区二区三区在线免费视频| 国产美女高潮视频| 国产精品婷婷午夜在线观看| 日韩人妻无码精品综合区| 久久青草欧美一区二区三区| 在线观看国产网站| 北条麻妃一区二区三区| 丰满人妻一区二区三区免费视频棣| 国产一区二区在线视频| 国产毛片久久久久久| 国内精品视频一区二区三区八戒 | 四虎影视成人精品国库在线观看| 国产精品91免费在线| 亚洲播播91| 国产第一区电影| 91超碰碰碰碰久久久久久综合| 日本精品久久电影| 欧美日韩免费看片| 国产成人综合久久| 成人性片免费| 91久久国产精品91久久性色| 99精品美女视频在线观看热舞| 成人在线视频网站| 精品午夜av| 成人欧美一区二区三区在线观看 | a∨色狠狠一区二区三区| 国产精品av在线| 日本在线一区二区| 亚洲va欧美va国产综合久久| 亚洲精品v亚洲精品v日韩精品| 超碰在线97av| 日韩欧美影院| 亚洲mv在线看| 亚洲国产不卡| 日本欧美视频在线观看| 香蕉久久a毛片| 色悠悠久久综合网| 精品系列免费在线观看| 色综合久久久无码中文字幕波多| 成人一区在线看| 亚洲国产无码精品| 中文字幕日韩一区二区| 欧美成人精品一区二区免费看片| 亚洲成人资源网| 欧美亚洲另类小说| 欧美一级爆毛片| 三级视频网站在线| 久久精品电影网| segui88久久综合9999| 国产精品久久久久久久久久三级| www.欧美视频| 久久久久久九九九九| 欧美韩日一区| 加勒比成人在线| 免费不卡在线视频| 美女搡bbb又爽又猛又黄www| 国产欧美一区二区精品性色超碰| 澳门黄色一级片| 色先锋资源久久综合| 国产麻豆免费视频| 亚洲乱亚洲乱妇无码| 哥也色在线视频| 欧美一区二区.| 欧美日本三级| 日韩国产欧美精品| 影音先锋久久| 伊人五月天婷婷| 中文字幕乱码日本亚洲一区二区| 麻豆一区二区三区精品视频| 欧美日韩免费观看一区二区三区| 欧美一级性视频| 久久亚洲一区二区三区四区五区高 | 亚洲欧美电影一区二区| 国产精品第5页| 日韩三级在线观看| 91青青在线视频| 45www国产精品网站| 久久免费精品| 亚洲欧洲一区二区福利| 免费日韩av片| 亚洲婷婷在线观看| 亚洲欧美福利一区二区| 中文字幕一区二区三区人妻四季 | www中文在线| 欧美性猛交丰臀xxxxx网站| 精品人妻一区二区三区换脸明星 | 日韩电影免费观看高清完整| 最新日韩av| 亚洲制服在线观看| 国产精品久久久久影视| 日本视频在线观看免费| 亚洲国产日韩精品在线| 毛片网站在线看| 1卡2卡3卡精品视频| 国产精品久久久久久久久妇女| 99热手机在线| 久久久久国产免费免费 | 在线不卡一区二区| 9色在线观看| 国产精品久久在线观看| 欧美女王vk| 人妻熟女一二三区夜夜爱| 99久久免费国产| 国产精彩视频在线观看| 精品国产伦一区二区三区观看方式 | 国产片一区二区三区| 无码人妻丰满熟妇奶水区码| 亚洲欧美精品在线| 成人美女黄网站| 欧美一区二区在线视频观看| 亚洲综合欧美| 久久久久久九九九九九| 色综合一区二区| 国际av在线| 国产精品久久久久aaaa九色| 欧美影院三区| 欧美在线a视频| 亚洲乱码国产乱码精品精的特点| 伊人一区二区三区久久精品| 国产精品国产三级国产aⅴ | 精品人伦一区二区三电影| 欧美午夜性色大片在线观看| 日本私人网站在线观看| 日韩av免费在线播放| av影片在线一区| 亚洲无在线观看| 亚洲精品福利视频网站| 欧美熟女一区二区| 欧洲亚洲女同hd| 波多野结衣一区| 青娱乐精品在线| 亚洲成人一区二区在线观看| 欧美日韩视频精品二区| 国产精品久久色| 亚洲大全视频| 好男人香蕉影院| 欧美亚洲一区二区三区四区| 国产区在线观看| 精品1区2区| 麻豆91在线看| 久草资源在线视频| 日韩国产中文字幕| 日本电影久久久| 女人被男人躁得好爽免费视频 | 精品日韩在线观看| 自拍偷拍欧美视频| 伊人久久大香线蕉av一区| 国产精品一区二区不卡| 国产精品午夜影院| 色婷婷av一区二区三区久久| 视频一区国产| aaa毛片在线观看| 亚洲欧美另类小说| 欧美18xxxxx| 亚洲一区美女视频在线观看免费| 99综合在线| 神马久久精品综合| 日韩精品黄色网| 91精品福利观看| 国产a级一级片| 亚洲蜜桃精久久久久久久| 色av男人的天堂免费在线| 91美女片黄在线观| 久久亚洲综合| 国产一卡二卡在线播放| 国产亚洲xxx| 成人福利一区| 中文字幕一区久久| 色综合色狠狠天天综合色| 永久免费网站在线|