阅读更多

9顶
1踩

编程语言

转载新闻 Scala在Twitter的应用

2009-04-07 17:50 by 见习编辑 robbin 评论(7) 有8165人浏览
来自:广告时间 by Hugou zhu

From: http://www.artima.com/scalazine/articles/twitter_on_scala.html

Twitter是目前最热的“微博客(Micro Blog)”应用,据说前几天拒绝了Google出价10亿美元的收购意向。Twitter最早是几个工程师为了快速共享AIM(美国排名第一,二的 IM,前身是ICQ,被AOL收购后更名为AIM)的状态(Status)而开发的一个应用,使用的是RoR (Ruby on Rail)框架,直到今天Twitter仍然是一个以Ruby为主要开发语言的网站,在Twitter服务器上后台运行着很多进程做异步处理。但Ruby 的局限性也逐渐暴露出来了,RoR很适合做前端的开发,但对于比较Heavy的后台处理,Ruby的运行性能还是有些问题,然后Twitter将目光转向了Scala。

下面是一些对话的总结:

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)要慢;

下面是几点Scala的Concerns:

1) IDE支持还不全面,支持得最好的是IntelliJ IDEA 8.1(自从5年前我残忍的抛弃JBuilder后,就一直用IntelliJ的IDEA了),Mac 上的Textmate支持的较差, Emacs还行;

2) Scala的构建(Build)环境还是要比Ruby, Python, PHP等动态语言多一回事;

3)一开始就要注意Immutability(不变性),为了稳定压倒一切,当然Scala会保证性能底线, JIT compiler对不变对象还有一些性能优化,所以尽量用吧;

4) Scala的Actors对处理客户端连接很合适,(Erlang也是这样的)大量的连接也是小菜一碟。

最后Twitter的计划是到09年底,大部分的流量将Powered by Scala!

我再说一次,未来的系统会是多语言的混杂系统,让专业的语言(Domain Specific Language , DSL)来实现系统的某个部分,比用一种语言到处实现更现实。
来自: Hugozhu
9
1
评论 共 7 条 请登录后发表评论
7 楼 orcl_zhang 2010-05-30 08:58
看到这里,更想了解下scala了。
6 楼 wenjixiao 2009-04-08 13:51
scala还是比较漂亮的,最近正在学习它。
ide对scala的支持,实在是太差了,eclipse的scala2.7.3的插件,很多bug!
还是用编辑器吧,支持好多编辑器,包括jedit,我用jedit。
构建用ant,又快又好。
5 楼 ShiningRay 2009-04-08 12:26
单说Ruby程序的运行速度,JRuby肯定比MRI要快的,而且JRuby没有GIL,问题是启动慢很多
而且JRuby要用Java的那套东西,比如GlassFish,就麻烦多了。

4 楼 jamesqiu 2009-04-08 11:08
你觉得NetBeans 6.7M3上一个 hello world 的scala程序编译需要多少时间?
10秒?! 那是4核服务器的速度.
PC上他需要30秒!!!
3 楼 jonathan_zz 2009-04-08 09:37
keshin 写道

引用
1) IDE支持还不全面,支持得最好的是IntelliJ IDEA 8.1(自从5年前我残忍的抛弃JBuilder后,就一直用IntelliJ的IDEA了),Mac 上的Textmate支持的较差, Emacs还行;前段时间正好了解过Scala,Scala对IDE支持之弱真是让我欲死欲仙

Netbeans上的Scala插件已经很好用了,只是有的时候速度上会有点瑕疵,我一直在用
2 楼 keshin 2009-04-07 21:23
引用
1) IDE支持还不全面,支持得最好的是IntelliJ IDEA 8.1(自从5年前我残忍的抛弃JBuilder后,就一直用IntelliJ的IDEA了),Mac 上的Textmate支持的较差, Emacs还行;

前段时间正好了解过Scala,Scala对IDE支持之弱真是让我欲死欲仙
1 楼 foxty 2009-04-07 20:02
引用
未来的系统会是多语言的混杂系统,让专业的语言(Domain Specific Language , DSL)来实现系统的某个部分,比用一种语言到处实现更现实。


这句话说的非常好。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics