BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

为什么我不会在新公司中使用Rails

| 作者 谢丽 关注 9 他的粉丝 发布于 2015年9月29日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

从流量来说,在线文档上传及分享社区Scribd是世界第三大Rails站点。Jared Friedman是该公司的联合创始人兼首席执行官。他从2006年就开始使用Rails,Scribd第一个版本是用Rails 0.7编写的。现如今,Rails已经成为美国硅谷创业公司默认的Web应用程序开发框架。但Friedman认为这是个错误,并在近日撰文阐述了这一观点。

Friedman列出了以下几个方面的原因:

  • Rails巅峰期已过——Friedman认为,现在在一家新公司中使用Rails就像2007年在一家新公司中使用Java Spring,其依据是谷歌趋势中Web框架的搜索量变化,如下图所示:

  • Rails有个大难题:Ruby——基准测试显示,截至目前,Ruby是主流编程语言中最慢的。语言设计是一个原因,但更深层次的原因是Ruby没有一个大型的企业赞助商。在2007年,Python、PHP及JavaScript也都是相当慢的脚本语言。Facebook对PHP进行了巨大的投资,构建了HipHop转译器,提升了PHP的运行速度。谷歌则构建了一个快速的JavaScript JIT编译器,无意间促成了服务器端JavaScript应用的暴增。相比之下,Ruby解释器仅仅是志愿者的工作成果。在2007年到2012年之间,有多个项目试图提升Ruby的运行速度,如RubiniusJRubyYARV,但只有JRuby仍然在积极开发,而且最新的版本让人看到了希望,只是仍然有很长的路要走。此外,Twitter是第一家基于Rails成长起来的大型科技公司,它曾试图优化Ruby解释器,但Twitter工程师最终还是决定使用一种速度更快的语言重写Twitter,因为那比让Ruby更快来的简单。
  • Rails开发停滞,其它框架已经赶了上来——Rails 3于2010年8月发布,但GitHub四年之后才升级到这个版本,因为该版本的新特性没有足够的吸引力。Scribd在升级到Rails 3的过程中也遇到了很大的麻烦,导致他们现在都不确定是否还会升级到Rails 4。与此形成鲜明对比的是JavaScript的快速发展。Scribd经历了从Prototype到jQuery到Coffeescript到 Angular再到React的转换,每一次转换都能带来生产效率的提升。
  • “新兵训练营(BootCamps)”——过去两年出现了许多编程新兵训练营。当讲授服务器端开发时,他们绝大多数都会讲授Rails,而不是其它语言。这导致优秀的开发人员,尤其是那些具有计算机科学学位的开发人员看轻那些训练营项目。Friedman注意到一种趋势,就是有经验的开发人员不想使用Rails。
  • 有许多新框架成为Rails的有力竞争者——Friedman得出这一结论的一个依据是Coding VCAngelList上广受欢迎的公司所使用的服务器语言的统计分析,如下图所示:

另一个依据是indeed.com上的就业趋势统计,如下图所示:

Charles Nutter是JRuby的核心开发人员。他评论说:

我讨厌类似这样的文章,用传闻和猜测混淆视听。

因此,他几乎是逐条反驳了Friedman的观点,而且言辞颇为激烈。他认为,谷歌趋势并没有给出总数,只能体现一种相对增长,而实际上,Rails比Node.js流行。关于性能,Nutter指出,在处理相对稳定的Rails请求时,JRuby的性能比CRuby更好。对于“Rails开发停滞”的观点,Nutter认为十分荒谬,因为熟悉内情的人都知道,Rails是发展最快的框架之一。

网友AnneOminous在声援Nutter的同时指出,Friedman提到的关于Twitter的信息是错误的。Twitter的其中一名创建者之所以使用Scala重写Twitter引擎的某些部分,是因为他不擅长Ruby,未能正确使用。后来的分析也证明,他使用Scala所做的工作并不比使用Ruby快多少。对于Friedman有关GitHub的说法,也有网友指出,GitHub之所以在Rails 3发布那么久之后才升级到Rails 3,是因为他们自己派生了Rails,使用了许多内部补丁。

总之,对于Friedman的观点,反对者居多,但也有少数网友持赞同观点。感兴趣的读者,可以进一步阅读原文评论。


感谢魏星对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT