自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Groovy創(chuàng)始人:Java面臨終結(jié) Scala將取而代之

原創(chuàng)
開發(fā) 后端
Scala看起來像是一種純粹的面向?qū)ο缶幊陶Z言,而又無縫地結(jié)合了命令式和函數(shù)式的編程風(fēng)格。前日,Groovy創(chuàng)始人撰博文稱Scala將取代Java。他說,如果他在2003年看過《Programming Scala》的話,那可能就不會(huì)有Groovy了。

Groovy創(chuàng)始人James Strachan前日在其博客(地址在Blogspot,未架好梯子前請(qǐng)勿隨便點(diǎn)擊)上發(fā)表了一篇文章,題目為《Scala將取代Java /javac?》。以下是正文部分的翻譯:

【51CTO獨(dú)家譯文】不要誤解我的意思——我在過去的這十來年里寫了無數(shù)的Java代碼,并且堅(jiān)信它相對(duì)C++和Smalltalk來說是一個(gè)巨大的進(jìn)步(當(dāng)然,很多其它語言也很有幫助,像JavaScript,Ruby,Groovy,Python等)。但是我還是一直期待著能有javac的替代者出現(xiàn)。我甚至還自創(chuàng)了一門語言(51CTO編者注:此處指Groovy)好讓我暫時(shí)滿足一下這種期望。 

Java是一種令人驚嘆的復(fù)雜語言(它的語法規(guī)范長(zhǎng)達(dá)600頁,我懷疑到底有沒有人能真正理解它),它有自動(dòng)裝箱(Autoboxing),空指針異常(NPE)往往就是這時(shí)拋出的。其中的基本類型(primitive type),字符串/文字/緩沖器/集合類(collections)以及數(shù)組缺乏多態(tài)性,以至于處理任何數(shù)據(jù)結(jié)構(gòu)都需要冗長(zhǎng)的語法;而且,由于Bean屬性和對(duì)閉包支持的缺失(甚至在JDK 7里也仍然還不支持),這會(huì)讓你的代碼里充滿了 try/catch/finally 這些語句(除非你使用框架和新的自定義API)。除了這些還有好多數(shù)不清的麻煩問題。Java倒是有類型推斷(type inference)功能但卻不用,使得我們要多輸/讀如此大量的代碼。

這個(gè)問題在沒有Java7后變得更加緊迫 (在Snorcle之后它變得更加重要:我不知道javac是不是要被jdkc 取而代之了?)。所以我猜javac可能已經(jīng)走到了盡頭,它看起來根本就沒有什么進(jìn)展或簡(jiǎn)化了。 

那么,從長(zhǎng)久來看,誰能取代javac 呢?當(dāng)然,像Ruby,Groovy,Python,還有JavaScript這些動(dòng)態(tài)語言在過去幾年里很受歡迎——很多人喜歡他們。 

我認(rèn)為將來可能替代javac的就是Scala 。它實(shí)在太讓我印象深刻了。我甚至可以誠(chéng)實(shí)地說,如果有人在2003年把Martin Odersky,Lex Spoon以及Bill Venners寫的那本《Programming in Scala》拿給我看了的話,那我根本就不會(huì)再去發(fā)明Groovy了。 

那么,為什么我會(huì)看好Scala呢?Scala是靜態(tài)類型的,它可以被編譯成與Java同樣快速的字節(jié)碼,所以它的速度與Java不分上下(有時(shí)快一點(diǎn),有時(shí)慢一點(diǎn))。你可以看看 Scala 在與 groovy 或jruby一起進(jìn)行測(cè)試時(shí)表現(xiàn)有多好。注意:速度并不是我們追求的唯一目標(biāo)——有時(shí)候我們可能寧肯讓代碼慢上十倍,也要寫得簡(jiǎn)潔一點(diǎn);但是如果要取代javac,速度當(dāng)然還是很重要的。 

Scala已有類型推理(type inference)功能,因此它和Ruby/Groovy一樣簡(jiǎn)潔,但是它完全是靜態(tài)類型的。這是很有好處的,它使得理解代碼、閱讀代碼以及編寫文檔都簡(jiǎn)單多了。在任何片段(token)/方法/符號(hào)上點(diǎn)擊,你都可以跳轉(zhuǎn)到相應(yīng)的代碼或文檔中去瀏覽。不需要打那些怪異的補(bǔ)丁,也不用操心誰什么時(shí)候新增了一個(gè)方法——這對(duì)于那些需要一個(gè)團(tuán)隊(duì)一起長(zhǎng)期開發(fā)的大項(xiàng)目是很有好處的。Scala似乎已經(jīng)實(shí)現(xiàn)了動(dòng)態(tài)語言(dynamic language)的那種簡(jiǎn)潔,而實(shí)際上它是完全靜態(tài)類型的。所以,我根本不需要去記哪些魔術(shù)方法可用——或是在shell里運(yùn)行腳本來查看這些對(duì)象——IDE/編譯器在你編輯代碼時(shí)就已經(jīng)知道這些了。 

Scala已經(jīng)提供了對(duì)高階函數(shù)和閉包的支持,另外還支持序列解析(sequence comprehensions) ,這樣你就可以很容易用Scala寫出漂亮簡(jiǎn)潔的代碼。Scala還把函數(shù)式和面向?qū)ο蟮木幊趟枷牒芎玫亟y(tǒng)一到了一種語言里,它比Java要明顯簡(jiǎn)單一些(雖然它的類型體系(type system)泛型(generics)需要花費(fèi)差不同一個(gè)數(shù)量級(jí)的時(shí)間去理解,但是,它通常是框架開發(fā)者才需要考慮的問題,應(yīng)用程序開發(fā)人員并不需要涉及)。它也使得從傳統(tǒng)的面向?qū)ο?Java編程模式向函數(shù)式編程的轉(zhuǎn)變變得更加容易——這對(duì)于編寫并行或異步程序的開發(fā)人員尤其意義重大(這是因?yàn)楝F(xiàn)在芯片的主頻已經(jīng)達(dá)到了數(shù)個(gè)GHz,很難再有提升了;而芯片集成的核心數(shù)則在快速增長(zhǎng)。51CTO之前曾發(fā)布過哪種語言將統(tǒng)治多核時(shí)代 再看函數(shù)式語言特性一文,對(duì)于函數(shù)式語言在多核時(shí)代的潛力做了相當(dāng)深入的分析)。你可以在最開始用面向?qū)ο蟮姆椒ň幊?,然后?dāng)你需要它的好處時(shí),就可以遷移到用不變狀態(tài)(immutable state)函數(shù)式編程正變得越來越重要,因?yàn)槲覀兛偸窍M馨褑栴}變簡(jiǎn)單,并且在一個(gè)更高的層次上解決它(如閉包,高階函數(shù),模式匹配,單子(monad)等),同時(shí)我們還需要通過不變狀態(tài)(immutable state)實(shí)現(xiàn)并發(fā)和異步。 

Scala也有適當(dāng)?shù)幕烊?mixin)(特性(trait)) ,所以你不必去擺弄面向?qū)ο缶幊痰娜毕輥慝@得模塊化的代碼。如果你確實(shí)需要一些鴨子類型(duck typing),Scala甚至能為你提供構(gòu)造類型(structural type)。 

最讓我印象深刻的一點(diǎn)就是它的核心語法極其精練簡(jiǎn)潔(它的語法手冊(cè)只有大概Java的四分之一),但是其方式卻更加強(qiáng)大和靈活,而且非常容易通過庫來擴(kuò)展,添加新的語義和功能。可以看看這個(gè)例子:Scala Actors。因此它非常適合用于創(chuàng)建嵌入式DSL或外部DSL 。有了它以后就真沒必要再用Java,XPath ,XSLT,XQuery,JSP,JSTL,EL和SQL這些東西了——你可以在各種各樣的場(chǎng)合使用DSL。 

Scala確實(shí)需要花點(diǎn)時(shí)間去習(xí)慣——我承認(rèn)第一次我看Scala時(shí)并不覺得順眼——用了Java之后你就會(huì)習(xí)慣用一堆冗長(zhǎng)的代碼來做一點(diǎn)點(diǎn)事,剛開始時(shí)我們也都不會(huì)一看到幾個(gè)符號(hào)就覺得有多驚訝。(我花了好長(zhǎng)一段時(shí)間才習(xí)慣Scala里用_作“通配符”,因?yàn)樵赟cala里是用作標(biāo)識(shí)符/方法)。 

如果你一直在寫Java,那么最開始確實(shí)會(huì)覺得Scala很不一樣(如在聲明方法/變量/參數(shù)時(shí)在類型或標(biāo)識(shí)符上加上階,雖然那樣做的原因是為了能更方便地略去一多余的類型信息)。

例如,在Java中的寫法:

  1. List< String> list = new ArrayList< String>() 

在Scala中的寫法:

  1. val list = new List[String] 

或者,如果你要指定確切的類型的話:

  1. val list : List[String] = new List[String] 

但是如果你堅(jiān)持用上一段時(shí)間,Scala優(yōu)美的一在很快就顯現(xiàn)出來。它對(duì)Java里的許多地方進(jìn)行了簡(jiǎn)化,讓你可以用非常簡(jiǎn)潔的代碼就描述出意圖,而不用花上大段代碼去實(shí)現(xiàn)細(xì)節(jié)——同時(shí)還為你提供了一條遷移到函數(shù)式編程的不錯(cuò)途徑,這對(duì)于編寫并發(fā)和分布式程序是非常有利的。

我強(qiáng)烈建議你學(xué)習(xí)一下Scala:以開放的心態(tài)看看(當(dāng)你的思維轉(zhuǎn)過來后)你是否能發(fā)現(xiàn)它的美麗之處。

#p#

一些Scala資料的鏈接和在線演示文檔

51CTO編輯推薦:Scala編程語言專題

◆我強(qiáng)烈推薦由 Martin Odersky,Lex Spoon 和 Bill Venners編寫的《Programming in Scala》 一書。它非常好地介紹了Scala的特點(diǎn)以及設(shè)計(jì)時(shí)的選擇。這本書相當(dāng)厚,但是你可以先跳著讀,必要時(shí)再深入細(xì)節(jié)。

◆《O'Reilly Scala book》這本書我只跳著讀了一點(diǎn),但是看起來也非常不錯(cuò)。

◆如果你想在短時(shí)間內(nèi)就知道個(gè)大概語法,那么可以看看《Tour of Scala》。不過看了之后你也還得花上一些時(shí)間來真正理解為什么它跟Java會(huì)有這樣那樣的不同。

◆Martin Odersky 的JavaOne 2008上關(guān)于Scala的演說

◆Jonas Bonér在 Real-World Scala上作的報(bào)告

◆Gert's的 對(duì)他如何創(chuàng)建 Apache Camel DSL for Scala 的介紹

◆用于JDBC類型安全查詢的一個(gè)Scala版LINQ,順便再了解下DBC。

◆一份非常不錯(cuò)的報(bào)告,介紹了把 Scala 和 OSGi 與DSL結(jié)合使用

◆如何使用 Scala和XML ( 語言里已經(jīng)自帶了處理XML,XPath , XSLT, XQuery的簡(jiǎn)潔語法)

Scala的例子

Scala快速參考表

◆這個(gè)例子顯示了如何 創(chuàng)建的bean風(fēng)格的屬性 (或C #風(fēng)格的getter函數(shù))

◆創(chuàng)建一個(gè) 用Lift實(shí)現(xiàn)的聊天演示程序 或查看 Lift網(wǎng)站上的更詳細(xì)介紹

如果你還有一些空余時(shí)間的話,這些視頻資料也非常不錯(cuò)

◆Bill Venners所發(fā)表的The Feel of Scala

◆Lex Spoon所作的Scala: 把未來的語言帶到JVM里來

好用的Scala框架和庫

liftweb :Scala的rails

語言規(guī)范ScalaTest for BDD 以及其它一些入門測(cè)試(literate testing)能讓你體會(huì)到類型安全的DSL對(duì)于編寫IDE友好 的簡(jiǎn)潔代碼有多大幫助。

scalaz 是一個(gè)很有用的例程庫。

◆用HTTP /JSON服務(wù)進(jìn)行調(diào)度

另外,順便說一下,對(duì)于那些像我一樣一喜歡JAXRS的,現(xiàn)在可以通過jersey-lift模塊使用lift模板和Jersey了。

作為這的實(shí)例,你可以看看RestMQ,這是一個(gè)我最近也參與了的開源項(xiàng)目,它旨在為面向消息的中間件提供REST風(fēng)格的API和Web控制臺(tái),它也是基于JAXRS(Jersey),Scala,Lift構(gòu)建的。

至于開發(fā)工具方面,有Ant/Maven插件,它帶有一個(gè)交互式Scala控制臺(tái)(REPL)和一個(gè)用于IDEA的IDE插件,還有Eclipse,NetBeans,以及TextMate,Emacs這些通用編輯器,都可以供你選擇。在IDE插件的豐富程度上與Java還是有差距的,但是這些工具所提供的代碼導(dǎo)航和自動(dòng)補(bǔ)全功能還是很有用的。

我試用過NetBeansEclipseIDEA這幾個(gè)IDE上的插件,它們都各有優(yōu)劣。看起來,Scala的追隨者也因?yàn)檫@些工具分裂成了幾派。如果要代碼導(dǎo)航和自動(dòng)補(bǔ)全,那我發(fā)現(xiàn)IDEA非常不錯(cuò)。當(dāng)你打開一個(gè)Maven pom.xml,它好像就能非常好地自動(dòng)解析代碼,找出Scala源,那樣你就能很方便地在任意的類型/方法以及它們對(duì)應(yīng)的文檔/源代碼中跳轉(zhuǎn)瀏覽。(通常你必須在運(yùn)行/調(diào)試任務(wù)里手動(dòng)添加Scala)。不過IDEA在錯(cuò)誤代碼高亮上并不是最好的。在作上一些彌補(bǔ)后,它們都能變得與對(duì)應(yīng)的Java工具一樣好用。試試這幾個(gè)工具吧,找出你最習(xí)慣的那個(gè)。

Scala Nit

任何一種語言都有你喜歡的一面,也有你不是那么熱衷的一面。Scala給你的最初印象可能確實(shí)是符號(hào)太多了點(diǎn),但是你并不需要使用所有的這些符號(hào)——如果你喜歡的話,你可以繼續(xù)沿用很多Java里的東西。但我想到了那個(gè)時(shí)候最好還是用符號(hào)來實(shí)現(xiàn)“特殊任務(wù)”以避免標(biāo)識(shí)符沖突。

我對(duì)嵌套的引入聲明不太感冒,使用_root_.java.util..List來把一個(gè)”全局“引入和相對(duì)引入?yún)^(qū)別開來。我還更愿意使用子引入。例如,如果你引入了com.acme.cheese.model.Foo,然后,為了引入model.impl.FooImpl,我就更喜歡用一個(gè)明確的相對(duì)前綴,就像:import _.impl.FooImpl。這對(duì)簡(jiǎn)化任務(wù)有一些好處,對(duì)于保持和Scala的簡(jiǎn)潔性就更有幫助了。

然而,和Java里大把的毛病相比,再考慮到Scala的優(yōu)美,簡(jiǎn)潔和強(qiáng)大,Scala的這一些負(fù)面因素和根本不算什么了。

結(jié)語:  

既然  MrJava(Adam Bien),MrJRuby(Charles Nutter) 和 MrGroovy(作者本人) 都認(rèn)為Scala將會(huì)是javac的的替代者,那肯定是有些原因的。那你還在等什么呢?趕快去買《Programming in Scala》 或 《O'Reilly Scala book》一探究竟吧!

#p#

這篇博文發(fā)布后,立刻有很多Scala,Groovy和Java開發(fā)者進(jìn)行了回復(fù)。Scala的創(chuàng)始人Martin Odersky也對(duì)這篇文章發(fā)表了自己的贊賞之詞。以下是Martin的留言:

James,感謝你的認(rèn)可!這對(duì)我來說意義重大。我相信,如果我們一起努力向Java開發(fā)者們展示現(xiàn)在在JVM上更加美好的語言選擇,我們大家都會(huì)因此而得到好處。感謝你在這方面帶了個(gè)好頭。

根據(jù)我對(duì)Groovy的了解(很可惜的,我的了解沒有你了解Scala那樣多),它看起來并非是意圖填補(bǔ)同一塊領(lǐng)域的。Groovy的吸引力在于它是一個(gè)語法接近Java的動(dòng)態(tài)腳本語言。Scala的吸引力在于它是一個(gè)強(qiáng)類型的,靜態(tài)的,結(jié)合函數(shù)式和面向?qū)ο蟮恼Z言。

此外還有很多精彩的評(píng)論,51CTO譯者對(duì)這些評(píng)論進(jìn)行了一些篩選,挑出部分翻譯如下:

Scala的體驗(yàn)

去年,我在做一些調(diào)查項(xiàng)目時(shí)把Scala引進(jìn)到了我的小Java車間里。

如今Scala成為了我們最主要的編程語言。

通過使用Scala,我們現(xiàn)在可以構(gòu)建類型系統(tǒng)(type system),跟蹤總結(jié)以前所做項(xiàng)目的經(jīng)驗(yàn)教訓(xùn),并用它來替代我們過去以模型為導(dǎo)向(model-driven)的開發(fā)方式。然后,我們利用函數(shù)分發(fā)(pass around functions)的特性來改進(jìn)組件的參數(shù)化。

總之,對(duì)于建立可重用的組件,Scala提供了一套比Java更好的機(jī)制。

C#和Java?

我覺得你可以去看看C#。它解決了你在Java中遇到的許多問題。如果你不喜歡微軟的話,就可以試試.NET的開源替代版本Mono。

有關(guān)Scala和F#

其實(shí),在.NET平臺(tái)里與Scala對(duì)應(yīng)的語言并不是C#,而是F#。不管什么時(shí)候,我都更傾向于使用Scala,而不是F#,原因如下:

1 )在F#文化里,面向?qū)ο罂雌饋聿⒉恢匾T谒兄vF#的書里,都必定有一章介紹類,然后,剩余部分就是專門講解函數(shù)式。相比之下,Odersky在發(fā)明Scala時(shí),并沒有照搬Java的這一套機(jī)制,而是通過對(duì)象類型、特性(trait)、增強(qiáng)的可見性規(guī)則(visibility rule)等概念擴(kuò)展并超過了Java的這一套機(jī)制。Scala使得像我這樣有根深蒂固面向?qū)ο笏枷氲拈_發(fā)人員覺得很舒適,它提供的函數(shù)式語法特性讓我可以用來把代碼變得非常簡(jiǎn)潔。

2 )F#比Scala看起來更接近人類語言,初看起來這似乎是好事。不幸的是,由于開發(fā)者很少需要寫類型說明(type annotation),大部分代碼里也都沒寫,這就使得代碼變得更加難于理解。在Scala里,至少要聲明參數(shù)類型,而且最好也聲明一個(gè)方法的返回類型,除了那些一目了然的情況。

3 )F#一直力求盡量往OCAML的語法靠攏,所以它在語法也真是沒有什么創(chuàng)新之處。而Scala則是博取眾長(zhǎng),吸納了各種語言的優(yōu)點(diǎn)。此外,它還讓人感覺有些機(jī)制并不是必須的,而是為了讓開發(fā)者更好地表達(dá)意圖而加入的。通過加入隱式轉(zhuǎn)換(implicit conversion),析取器(extractor)這些功能,Martin從我這里得到了很大的幫助。

4 )在我看來,Java程序員學(xué)會(huì)Scala比從C#到F#的過渡要容易得多。大體上來說,原因是Java程序員不需要花很大的代價(jià)入門,Scala可以直接被當(dāng)作一門少了些模板(boilerplate)的Java使用。當(dāng)程序員漸漸熟練后,他就可以開始發(fā)掘函數(shù)式編程的威力了。在其它任何的面向?qū)ο?函數(shù)式編程語言里我都找不出可以這樣過渡學(xué)習(xí)的。

Groovy蓋棺定論了?

James,我一直在留意你的博客,這篇文章寫得棒極了,堪稱高超。你發(fā)過一份聲明說不會(huì)再繼續(xù)把Groovy開發(fā)得更強(qiáng)大了(51CTO編者注:James Strachan在寫這篇博文之前很久已經(jīng)離開了Groovy開發(fā)團(tuán)隊(duì)),這份聲明影響力很大,而且?guī)缀蹩梢哉f是給Groovy蓋棺定論了。

我們有一個(gè)面向最終用戶的數(shù)據(jù)處理軟件,然后我們選擇的是Groovy (而沒用Jython和JRuby )來作為實(shí)現(xiàn)各種功能擴(kuò)展(從對(duì)變量編寫公式到編寫腳本)的途徑。你們?cè)陂_發(fā)Groovy所寫的代碼很多都是粘合代碼(glue code)(對(duì)核心語言起補(bǔ)充作用)。我們充分利用Groovy所支持的這些特性與MS Office產(chǎn)品和Web服務(wù)進(jìn)行整合。我真的希望,如果你們的開發(fā)團(tuán)隊(duì)更中意Scala的話,也請(qǐng)盡量讓我們到時(shí)候在Scala里也能用上這些有用的庫。

James Strachan對(duì)上文的回復(fù)

我不認(rèn)為任何一種主要的JVM語言會(huì)消失,肯定會(huì)一直有一大幫人繼續(xù)維護(hù)Groovy, Jruby, Cojure, Jython, Rhino等。

JVM中最大的一點(diǎn)好處就是這些語言很容易共存,重用另一種語言的代碼也非常容易。因此,只要相信大眾的選擇,就不用擔(dān)心會(huì)選錯(cuò)開發(fā)語言。

而且我也并不認(rèn)為Scala會(huì)是Ruby/Groovy/Fan這些動(dòng)態(tài)語言的替代者;大多數(shù)情況下性能還是很重要的。對(duì)于一個(gè)快速、靜態(tài)類型的編譯器來說,過去Java顯然是第一選擇——但是現(xiàn)在,Scala才是首選——這是因?yàn)镴ava已經(jīng)顯出老態(tài)了。(它可能永遠(yuǎn)也不會(huì)支持閉包,永遠(yuǎn)也不會(huì)考慮支持類型推斷等新特性)。

自從發(fā)現(xiàn)了類型推斷的威力之后,我實(shí)際上越來越覺得動(dòng)態(tài)類型(就是很簡(jiǎn)潔的代碼實(shí)現(xiàn)功能)的動(dòng)機(jī)變得越來越難以琢磨了。比如說,你可以用Scala寫一些腳本,它就會(huì)像Ruby/Groovy一樣進(jìn)入”讀取-執(zhí)行-打印 循環(huán)“(Read-Evaluate-Print Loop, REPL)。

但是我發(fā)這篇文章的目的并不是要挑起Scala擁護(hù)者和Ruby/Grovy/Clojure/JavaScript這些動(dòng)態(tài)語言支持者之間的戰(zhàn)爭(zhēng)——我只是想讓被Java一葉障目的開發(fā)者們意識(shí)到,這個(gè)世上已經(jīng)有了比Java更好的靜態(tài)類型語言:這門語言有他們所想要的全部功能(還附帶有Java最需要增強(qiáng)的功能)。所有這一切,都能在這門語言里用簡(jiǎn)潔、優(yōu)美的代碼表示出來(盡管這門語言和Java確定有些不太一樣,并且需要你經(jīng)歷一個(gè)學(xué)習(xí)曲線)。

附錄:有關(guān)Scala編程語言的其他言論

◆Java的不足可以比作大量的毛疣,那么同樣在Scala中,這些地方正是表現(xiàn)了Scala的美、簡(jiǎn)化和強(qiáng)大。——James Strachan

◆在一個(gè)社區(qū)(java.net booth)舉辦的和James Gosling對(duì)話會(huì)議上,一個(gè)與會(huì)者問了一個(gè)非常有意思的問題:“除了Java,現(xiàn)在你會(huì)把哪種語言運(yùn)行于JVM之上?”。答案是驚人地快速簡(jiǎn)潔:Scala?!狫ava之父James Gosling

◆我必須說Scala看起來是是現(xiàn)在Java王座的繼承人。其他在JVM的語言看起來不可能有Scala那樣的能力來取代Java,Scala背后的推動(dòng)力是無可置疑的。Scala還不是一個(gè)動(dòng)態(tài)語言,但是它有許多流行動(dòng)態(tài)語言的特性,例如它的靈活富類型系統(tǒng),稀疏和簡(jiǎn)潔的語法,函數(shù)式語言和面向?qū)ο蠓妒降耐昝澜Y(jié)合。Scala的缺點(diǎn):“太復(fù)雜”或者“太豐富”,但這些可以通過編碼規(guī)范很好避免,從而構(gòu)建更健壯的編輯器和工具,以及指導(dǎo)多語言開發(fā)者明白如何更好地使用Scala。Scala是JVM上靜態(tài)語言的重生,它也像JRuby那樣延伸平臺(tái)的性能,這些都是Java做不到的?!狫Ruby核心開發(fā)者Charles Nutter

【相關(guān)閱讀】

  1. Scala如何改變了我的編程風(fēng)格:從命令式到函數(shù)式
  2. Scala的類型系統(tǒng):取代復(fù)雜的通配符
  3. Scala的類型系統(tǒng) 比Java更靈活
  4. Java程序員,你為什么要關(guān)注Scala
  5. Scala編程語言
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-05-20 09:41:10

2010-08-11 08:35:00

Scala 2.8Scala創(chuàng)始人Martin Oder

2013-10-29 09:05:30

OpenStack亞馬遜API開源云

2009-04-27 08:48:04

MySQL創(chuàng)始人收購

2009-06-10 14:43:19

Scala泛型Scala編程語言

2023-12-01 14:50:57

AI破產(chǎn)

2010-11-22 13:53:28

史蒂夫?沃茲尼亞克iPhoneAndroid

2010-05-04 16:22:45

Unix系統(tǒng)

2009-06-19 16:44:56

SpringJava EE

2010-08-20 09:27:40

Java創(chuàng)始人Android

2011-08-31 08:42:24

Java創(chuàng)始人高司令谷歌

2012-06-14 16:21:24

LinuxLinus Torva

2020-06-28 13:55:25

黑客信息泄露漏洞

2011-04-29 14:30:05

2022-12-06 07:18:56

DedeCMS創(chuàng)始人林學(xué)

2010-08-17 08:18:05

Java創(chuàng)始人Oracle起訴Goo

2009-05-20 13:40:22

GoogleTwitter即時(shí)搜索

2009-12-09 13:53:32

PostgreSQLMySQL

2013-03-14 09:11:15

AndroidChromeChrome OS

2012-04-02 19:17:37

蘋果
點(diǎn)贊
收藏

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