您所在的位置:开发 > Java > Java+ > 一位Twitter工程师的Scala探秘之旅(1)

一位Twitter工程师的Scala探秘之旅(1)

2009-07-29 15:55 阿菜 编译 51CTO.com 字号:T | T
一键收藏,随时查看,分享好友!

本文内容来自一位Twitter工程师在介绍“为什么选择Scala”的演讲中使用的幻灯片。在这份幻灯中,演讲者详细的介绍了Twitter在做出使用Scala的选择时都参考了哪些因素。

AD:

一位Twitter工程师的Scala探秘之旅 

【51CTO精选译文】本文的这个故事讲述一个对编程语言有种近乎于宗教狂热的Twitter工程师是如何投入Scala的怀抱的。一开始大量使用Ruby做为开发语言的Twitter曾遭遇过严重的性能问题,于是Twitter在寻找可扩展性强的替代语言的时候,找到了Scala

一位Twitter工程师的Scala探秘之旅 

大家好,我是al3x,一位编程语言的瘾君子,哦不,是狂热份子。我在工作中使用过Java,JavaScript,C,PHP,Perl,Ruby以及Python。出于兴趣和爱,接触过x86 Assembly,Erlang,Lua,Objective-C,Lisp家族,Haskell,以及C++。

一位Twitter工程师的Scala探秘之旅 

我为Twitter工作。Twitter一直以来都大量使用Ruby。Ruby很好,但不是都好。Ruby VM低下的性能,monkeypatching(51CTO编者注:猴子补丁,也称鸭子击,指对动态语言运行时进行扩展或修改,而无须更改源代码的一个方法),以及文化上的问题,在大型项目中的使用还是充满疑问。我们要建造新的服务,感觉不想继续用Ruby开发了。

对于Ruby的不满,基本可以总结如下:

1)Ruby不太合适开发长时间运行(Long-Live)的服务器端程序,但JVM很合适,因为Java有10年的经验教训和优化,Scala是运行在JVM上的,所以天生就有了这个优点;

2)  Ruby没有很好的线程(Thread)支持,Ruby多线程会限制在一个CPU上(新的Ruby应该会改善这点吧)且Ruby VM的垃圾收集支持也没有Java先进,就造成每个Ruby进程长时间运行后使用的内存月来越大;

3)  为什么不是JRuby? JRuby缺乏使用广泛的Rem支持(很多优秀的Ruby包都需要C扩展,它们并没有移植到Java),而且性能也不太理想,比MRI(C实现的Ruby VM)要慢

系统语言的白马王子 

我心目中的系统语言白马王子应该是:
◆快速
◆函数式
◆表达能力
◆静态类型
◆并发
◆优美
◆轻量

我们最终想要一个JVM语言,而不是Java 

我们列出的名单:
C
C++
Python
Erlang
Java
JVM上的动态语言

结果没一个满意的。它们都有自己的问题。我们最终想要一个不是Java的JVM语言

后来,我们听说了Scala 

后来,我们听说了Scala。在JVM上几乎没有哪个语言的执行速度赶得上它,而Scala lift-off看起来令人感到信心十足。

内容导航
 第 1 页:从Ruby到Scala  第 2 页:Scala的吸引力



分享到:

热点职位

更多>>

热点专题

更多>>

读书

SQL Server 2005奥秘
本书是作者深入研究SQL Server 2005数据库体系结构和内部机制的经验总结。 全书不拘泥于具体的管理操作,而是通过对存储的数据

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i