【51CTO快译】正如51CTO在之前一篇有关函数式语言的文章中所描述的一般,曾经局限于学术界的很多函数式语言正在因为多核时代的到来而逐渐向商业领域反攻,而本文中将提到的Scala和Clojure正是其中的两个。相对而言,Scala在商业领域的现状要比其他几个函数式语言(如Erlang,Haskell,还有本文中的Clojure等等)要好很多。究竟为什么Scala能得到相对较好的发展,以及什么才是优秀的企业级语言,本文中揭露了一些答案。
51CTO编辑推荐:Scala编程语言专题
Scala和Clojure:语言特点比较
在看了Pragmatic Bookshelf的《Clojure编程》和《Scala编程》后,有些读者可能想知道究竟哪一门语言会占主导地位,本文就这个问题发表我个人的意见。
我在Clojure和Scala上都花了很多时间,就我个人而言,我更倾向于Scala,因为它在JVM托管的并发语言领域绝对处于领先地位。事实上,这两门语言都很成熟,甚至都可能成为VM多核世界新的Perl/Python,但我相信Scala有优势的主要原因是它引人注目的Web属性。作为Java的化身,它与Java密切相关(有关Scala与Java的关系,可参考51CTO之前发布的Scala创始人访谈:谈Scala的诞生一文),同时它还是一个并发建模的脚本语言。
Clojure是一门优雅的设计语言,它的创建方式与Lisp类似。但无论我多么频繁的想要使用Lisp来进行一个时间紧迫的项目,我都没有欲望或有耐心这么做。我曾经读过几本关于Lisp的书,也尊敬Lisp的倡导者,如Paul Graham。(换句话说,笔者认为对于Lisp的无奈并非是自己的问题。)我认为我是一个非常优秀的程序员,一旦谈到编程语言,即使我还没有达到那种对某一门语言认识极端深刻的境界,但我自认为对各种语言还是比较精通的。
Scala和Clojure:影响力比较
Clojure的视频教程对开发人员具有极大的煽动性,很有说服力,但还有多少人记得Sean Kelly的Plone视频(51CTO编者注:Plone也是一种语言,这个名叫Sean Kelly的人曾制作过一个宣传Plone的视频)?就是那个视频使得它看起来技术上就是要比其它基于Python的Web框架更优秀,然而结果却相反。我严重怀疑Clojure也是这样,除非Clojure社区能够证明它已经在高负载网站上有过成功的案例。事实上,目前似乎只有航班延误预报网站的FlightCaster使用了部分Clojure代码。相对而言,Scala最成功的例子就是说服了Twitter选择它。
顺便说一句,截至目前,亚马逊上已经有4本关于Scala的书籍,而Clojure只有2本。
在现实中,Scala在企业计算领域优势明显。相比Scala,Clojure可能面临的阻力更多,因为目前它还缺乏世界500强企业的CIO和/或CTO们的信赖。但是对于这些相对较新的JVM托管语言,无论是哪个借着投放***个广告从而成为金融、医疗和通信领域的主要参与者,则都可能赢得开发人员和IT企业领导等人的信赖。
原文名:Clojure vs. Scala
作者:Mike Riley
【编辑推荐】