Scala和Clojure,以及優(yōu)秀的企業(yè)級語言之道
原創(chuàng)【51CTO快譯】正如51CTO在之前一篇有關函數(shù)式語言的文章中所描述的一般,曾經(jīng)局限于學術界的很多函數(shù)式語言正在因為多核時代的到來而逐漸向商業(yè)領域反攻,而本文中將提到的Scala和Clojure正是其中的兩個。相對而言,Scala在商業(yè)領域的現(xiàn)狀要比其他幾個函數(shù)式語言(如Erlang,Haskell,還有本文中的Clojure等等)要好很多。究竟為什么Scala能得到相對較好的發(fā)展,以及什么才是優(yōu)秀的企業(yè)級語言,本文中揭露了一些答案。
51CTO編輯推薦:Scala編程語言專題
Scala和Clojure:語言特點比較
在看了Pragmatic Bookshelf的《Clojure編程》和《Scala編程》后,有些讀者可能想知道究竟哪一門語言會占主導地位,本文就這個問題發(fā)表我個人的意見。
我在Clojure和Scala上都花了很多時間,就我個人而言,我更傾向于Scala,因為它在JVM托管的并發(fā)語言領域絕對處于領先地位。事實上,這兩門語言都很成熟,甚至都可能成為VM多核世界新的Perl/Python,但我相信Scala有優(yōu)勢的主要原因是它引人注目的Web屬性。作為Java的化身,它與Java密切相關(有關Scala與Java的關系,可參考51CTO之前發(fā)布的Scala創(chuàng)始人訪談:談Scala的誕生一文),同時它還是一個并發(fā)建模的腳本語言。
Clojure是一門優(yōu)雅的設計語言,它的創(chuàng)建方式與Lisp類似。但無論我多么頻繁的想要使用Lisp來進行一個時間緊迫的項目,我都沒有欲望或有耐心這么做。我曾經(jīng)讀過幾本關于Lisp的書,也尊敬Lisp的倡導者,如Paul Graham。(換句話說,筆者認為對于Lisp的無奈并非是自己的問題。)我認為我是一個非常優(yōu)秀的程序員,一旦談到編程語言,即使我還沒有達到那種對某一門語言認識極端深刻的境界,但我自認為對各種語言還是比較精通的。
Scala和Clojure:影響力比較
Clojure的視頻教程對開發(fā)人員具有極大的煽動性,很有說服力,但還有多少人記得Sean Kelly的Plone視頻(51CTO編者注:Plone也是一種語言,這個名叫Sean Kelly的人曾制作過一個宣傳Plone的視頻)?就是那個視頻使得它看起來技術上就是要比其它基于Python的Web框架更優(yōu)秀,然而結果卻相反。我嚴重懷疑Clojure也是這樣,除非Clojure社區(qū)能夠證明它已經(jīng)在高負載網(wǎng)站上有過成功的案例。事實上,目前似乎只有航班延誤預報網(wǎng)站的FlightCaster使用了部分Clojure代碼。相對而言,Scala最成功的例子就是說服了Twitter選擇它。
順便說一句,截至目前,亞馬遜上已經(jīng)有4本關于Scala的書籍,而Clojure只有2本。
在現(xiàn)實中,Scala在企業(yè)計算領域優(yōu)勢明顯。相比Scala,Clojure可能面臨的阻力更多,因為目前它還缺乏世界500強企業(yè)的CIO和/或CTO們的信賴。但是對于這些相對較新的JVM托管語言,無論是哪個借著投放***個廣告從而成為金融、醫(yī)療和通信領域的主要參與者,則都可能贏得開發(fā)人員和IT企業(yè)領導等人的信賴。
原文名:Clojure vs. Scala
作者:Mike Riley
【編輯推薦】