Java 之外,是 Scala 還是 Groovy?【轉載】

來源:互聯網
上載者:User

標籤:

原文地址

Scala 和 Groovy 都是基於 JVM 的語言,相比 Java,它們都有文法更加簡明和表達能力更豐富。對於那些既想不脫離開 JVM 又想避免 Java 繁瑣語句的開發人員來說,Scala 和 Groovy 都是不錯的選擇。可是哪一個才能在未來發展過程中取得先機呢?哪一個是未來發展的方向呢?

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

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

Scala 還有更多被證明是非常有用的特性,如嵌套類,currying 和代數類型模式比對。它還支援類似於 JDK1.5 所增加的泛型和註解。這些還都只是冰山一角。

之後,Derek Young 撰文“Scala 對比 Groovy:靜態類型是效能的關鍵(scala-vs-groovy-static-typing-is-key-to-performance)”。文中,他舉了一個實際的例子,試圖說明針對同樣的演算法,Scala 的效能遠高於 Groovy。

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

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

憎恨是個很強烈的詞。我恨 Scala 的文法。請不要再推進這種文法了。……Scala 有好的思想嗎?有。借用過來就行了……

總而言之,Scala 看起來像下一個被過度宣傳的語言。只需要把其精華引入到 Groovy 中,然後扔掉那些糟糕的文法。我最喜歡的 Scala 特性是推理類型和強型別。C#3.0 也有這些。(我不用 C#,不見得我不喜歡它的一些特性。)

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

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

投資應該給 Groovy。這樣瞭解Java的開發人員可以更快地學習 Groovy,而且如果有工具支援他們,那麼就更可能這樣做。

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

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

Grails 構建在這些概念之上,並且顯著地減少了在 Java 平台上構建 Web 應用程式的複雜程度。不同的是,這些是建立在已確立的如 Spring 和 Hibernate 這樣的 Java 技術之上的。

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

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

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

Java 之外,是 Scala 還是 Groovy?【轉載】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.