从流量来说,在线文档上传及分享社区 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的运行速度,如 Rubinius 、 JRuby 、 YARV ,但只有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 VC 对 AngelList 上广受欢迎的公司所使用的服务器语言的 统计分析 ,如下图所示:
另一个依据是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读者交流群 )。