Java之外選擇Scala還是Groovy?
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團隊一起合作,製作出一門既強大又易用的語言。 ”
你會將賭注押在誰身上呢?
去年早些時候,一篇名為“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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java選擇自學還是培訓?Java
- 選擇排序(OC/java/python/scala)排序JavaPython
- php還是java,選擇比努力更重要!PHPJava
- 怎樣選擇TCP還是選擇UDPTCPUDP
- Swagger之外的選擇Swagger
- 程式設計師:選擇效率,還是選擇質量?程式設計師
- 測試開發應該選擇 Java 還是 Go 呢?JavaGo
- 你應該選擇 Ubuntu 還是 Fedora?Ubuntu
- 選擇python還是web前端好PythonWeb前端
- 選擇HTTPS代理還是SOCKS代理?HTTP
- iOS 開發選擇OC還是Swift?iOSSwift
- React 還是 Vue:你該如何選擇?ReactVue
- 開發該選擇Blocks還是DelegatesBloC
- 管理 node 版本,選擇 nvm 還是 n?
- 如何選擇谷歌seo還是adwords廣告?谷歌
- 分析選擇Salesforce CRM還是Zoho CRM(上)Salesforce
- 微服務選擇Spring Cloud還是Dubbo?微服務SpringCloud
- 小程式還是APP,企業該如何選擇?APP
- 選擇 Python3.6 還是 Python 3.7Python
- web伺服器該選擇apache還是nginxWeb伺服器ApacheNginx
- 選擇iOS還是Android?這很重要嗎?iOSAndroid
- 參加IT程式設計培訓,究竟是選擇Python還是Java?程式設計PythonJava
- java環境中基於jvm的兩大語言:scala,groovyJavaJVM
- 學習Java是個好選擇嗎?Java
- Python初學者,選擇Python2還是選擇Python3好?Python
- HTTP客戶端連線,選擇HttpClient還是OkHttp?HTTP客戶端client
- API架構的選擇,RESTful、GraphQL還是gRPCAPI架構RESTRPC
- Unix還是Windows?作業系統選擇因素(轉)Windows作業系統
- 老菜鳥致青春,程式設計師應該選擇 Java 還是 C#程式設計師JavaC#
- 如何選擇正確的Node框架:Express,Koa還是Hapi?框架ExpressAPI
- 都 9012了,該選擇 Angular、React,還是Vue?AngularReactVue
- 部署Node應用程式選擇Heroku還是Now.sh?
- PHP 還是 ASP.NET:我做了正確選擇麼?PHPASP.NET
- 應屆生選擇大公司還是小團隊
- 創業,你選擇靜態還是動態語言?創業
- #.net在技術上遠超Java,可是為什麼大多數公司還是選擇使用JavaJava
- 選擇PHP是自學還是去PHP培訓班的看這裡PHP
- cache2k:Guava Cache及Caffeine之外的新選擇Guava