Java之外選擇Scala還是Groovy?

梧桐雨—168發表於2008-05-19
Scala和Groovy都是基於JVM的語言,相比Java都有更加簡明的語法和豐富的表達能力。對於那些既想不脫離開JVM又想避免Java繁瑣的語句的開發人員來說,Scala和Groovy都是不錯的選擇。可是選擇哪一個才能在未來發展過程中取得先機呢?哪一個是未來發展的方向呢?這些都是困擾開發者的難題。

去年早些時候,一篇名為“Scala,Groovy的殺手? ”的部落格對Scala和Groovy進行了對比:

“Scala和Groovy之間的核心區別在於前者是靜態型別的。有些人可能爭辯說這使得達到指令碼化目標變得更加複雜了,而指令碼化正是Groovy的動機。然而,Scala有完整的體系特徵,這使Groovy看上去更像個玩具。比如,Scala有“sequence comprehensions”。該要素導致對演算法的表述非常緊湊和強大...”

然而,Scala並不是盡善盡美的,它也有一些明顯的缺陷。Rick Hightower在最近發表的一篇部落格中,尖銳地批評了Scala的語法問題:

“Scala並不是更好的選擇。在閱讀了Scala的文件之後,我的想法是:雖然這種語言的特性聽起來挺好,但是語法卻讓我想放棄。為什麼事情非要為了不同而不同?Scala讓Groovy看起來比以前更加美味可口...”

Rick Hightower還建議Sun應該在Groovy上進行投資,而不是對JRuby作無謂的投資。

“Groovy更像Java,更容易上手,語法也讓開發者不反感。為什麼Sun在JRuby上投那麼多錢呢?”

為了說明Sun投資在Ruby上的不明智,Rick Hightower還引用了一幅統計圖表來說明企業採用Ruby的趨勢還是比較低的:

另外,無論是Ruby、Scala還是Groovy都有對應的Web框架,且對應的框架都是用各自對應的語言編寫的。這些框架分別是Rails、Lift和Grails。儘管Lift和Grails中的許多東西都從Rails借鑑來的,但是Grails對其他已有Java技術框架進行了很好的繼承,這無疑會保護使用者或廠商在這方面的已有投資。

目前,Scala和Groovy兩種語言都在快速發展的過程中。就目前的情況來看,Groovy的優勢在於易用性以及與Java無縫銜接,Scala的優勢在於效能和一些高階特性,如果在發展過程中兩者能互相借鑑對方的優點來充實自身,對開發者來講無疑是福音。正如第一篇所引用的部落格作者最後提到的那樣:

“大家並不想看到一場殊死鬥爭,而是想看到更注重實效思想的Groovy團隊能與更具有學術思想的Scala團隊一起合作,製作出一門既強大又易用的語言。 ”

你會將賭注押在誰身上呢?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-277833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章