从Scala进驻Twitter看多语言混杂系统的未来
创始人
2024-04-02 12:22:08
0

51CTO编辑推荐:Scala编程语言专题

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)来实现系统的某个部分,比用一种语言到处实现更现实。

【相关阅读】

  1. Scala编程语言专题
  2. Scala的类型系统:取代复杂的通配符
  3. Scala的类型系统 比Java更灵活
  4. Java程序员,你为什么要关注Scala
  5. Scala创始人:创造比Java更好的语言

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...