Java之外,選擇Scala還是Groovy?作者 宋瑋 發(fā)布于 2008年1月14日 上午4時25分 Scala和Groovy都是基于JVM的語言,相比Java都有更加簡明的語法和豐富的表達能力。對于那些既想不脫離開JVM又想避免Java繁瑣的語句的開發(fā)人員來說,Scala和Groovy都是不錯的選擇。可是選擇哪一個才能在未來發(fā)展過程中取得先機呢?哪一個是未來發(fā)展的方向呢?這些都是困擾開發(fā)者的難題。 去年早些時候,一篇名為“Scala,Groovy的殺手? ”的博客對Scala和Groovy進行了對比: Scala和Groovy之間的核心區(qū)別在于前者是靜態(tài)類型的。有些人可能爭辯說這使得達到腳本化目標變得更加復(fù)雜了,而腳本化正是Groovy的動機。然而,Scala有完整的體系特征,這使Groovy看上去更像個玩具。比如,Scala有“sequence comprehensions”。該要素導(dǎo)致對算法的表述非常緊湊和強大。 之后,Derek Young撰文“Scala對比Groovy:靜態(tài)類型是性能的關(guān)鍵”。在文中他舉了一個實際的例子,試圖說明針對同樣的算法,Scala的性能遠高于Groovy。 然而,Scala并不是盡善盡美的,它也有一些明顯的缺陷。Rick Hightower在最近發(fā)表的一篇博客中,尖銳地批評了Scala的語法問題: Scala并不是更好的選擇。在閱讀了Scala的文檔之后,我的想法是:雖然這種語言的特性聽起來挺好,但是語法卻讓我想放棄。為什么事情非要為了不同而不同?Scala讓Groovy看起來比以前更加美味可口。 Rick Hightower還建議Sun應(yīng)該在Groovy上進行投資,而不是對JRuby作無謂的投資。 Groovy更像Java,更容易上手,語法也讓開發(fā)者不反感。為什么Sun在JRuby上投那么多錢呢? 為了說明Sun投資在Ruby上的不明智,Rick Hightower還引用了一幅統(tǒng)計圖表來說明企業(yè)采用Ruby的趨勢還是比較低的:
另外,無論是Ruby、Scala還是Groovy都有對應(yīng)的Web框架,且對應(yīng)的框架都是用各自對應(yīng)的語言編寫的。這些框架分別是Rails、Lift和Grails。盡管Lift和Grails中的許多東西都從Rails借鑒來的,但是Grails對其他已有Java技術(shù)框架進行了很好的繼承,這無疑會保護用戶或廠商在這方面的已有投資。Grails框架參考文檔中這樣描述: Grails構(gòu)建在這些概念之上,并且顯著地減少了在Java平臺上構(gòu)建Web應(yīng)用的復(fù)雜程度。不同的是,這些是建立在已確立的如Spring和Hibernate這樣的Java技術(shù)之上的。 目前,Scala和Groovy兩種語言都在快速發(fā)展的過程中。就目前的情況來看,Groovy的優(yōu)勢在于易用性以及與Java無縫銜接,Scala的優(yōu)勢在于性能和一些高級特性,如果在發(fā)展過程中兩者能互相借鑒對方的優(yōu)點來充實自身,對開發(fā)者來講無疑是福音。正如第一篇所引用的博客作者最后提到的那樣: 大家并不想看到一場殊死斗爭,而是想看到更注重實效思想的Groovy團隊能與更具有學(xué)術(shù)思想的Scala團隊一起合作,制作出一門既強大又易用的語言。 你會將賭注押在誰身上呢?
本文來自:http://www./cn/news/2008/01/scala_or_groovy
|
|
來自: 我想跑 > 《新技術(shù)》