Ruby 的未来
我并不是一个非常守旧的Ruby爱好者。我从2005年开始接触Ruby,那时跟我一起的还有很多极限编程(XP)的同事,我们都加入了Rails 大潮。传说很多Ruby爱好者都是在那个时代从敏捷/极限编程社区转来的。我们都讨厌在企业级Java里为了完成一个东西需要成堆的代码和XML配置文件 的标准做法。
那是一段醉人的日子。元素数据编程,动态类型,Ruby和Rails组合而带来的约定优于配置(Convention Over Configuration)的模式,给了我们更加快速的开发和更简洁的代码。已经内置到语言中的测试驱动原则、框架和整个社区提供给大家了很多写的很好 的,经过验证过的代码。行为驱动开发(BDD)——在Java中垂死挣扎(有谁在用JBehave?)——在Ruby中出现并兴旺发展:Rspec是最早 的成功案例,接着是Cucumber。如今,这最好的Ruby展示厅同样也是最好的Agile/XP展示厅,其它的语言望尘莫及。
转眼来到了2012年,革命的年代已经结束。Ruby开发已经成熟,Ruby成为了编程界的主流语言,至少主流在向Ruby漂移。虽然在传统企业 里,如银行业,Ruby的渗透并不是很成功,但新兴的Ruby企业,如LivingSocial和Groupon,如今已发展成大企业。而使Ruby成为 主流的标志性时刻是2010年11月Salesforce.com收购Heroku,这一地位在七月进一步被加强——Ruby的创始人Matz (Yukihiro Matsumoto)被 Heroku 聘为首席架构师。
更有趣的是,Rails已经成为Web创业公司的标准技术。而这种成功并没有对Agile/XP社区造成太大的影响,这个社区仍是一个关注编程工艺 的社区,喜欢尝试各种语言,如Clojure和Erlang,这是一个由草根阶层推动的社区,伴随着世界各地各种各样的研讨会。
大部分当年做Ruby开发的今天仍然是Rails爱好者,但我们却进入了一个反对Rails的时期。简单死板的Model-View-Controller(MVC)架构在2005年是非常有吸引力,而现在它却因为缺乏合适的独立分层结构而受到批评。Yehuda Katz——推动Rails 3的中坚力量——在Twitter上讽刺说:
Rails如今的问题是:1/2的人担心它会变成Java,而另一半人正在努力把它变成java
我希望,也相信,Ruby on Rails社区会越来越成熟,能够充分的反省,在Web开发中引入正确的架构分层,而不需要再发明一个类似企业级Java Bean这样的东西。随着即将到来的苏格兰Ruby大会上Rails六边会谈,我们的信心更加增强;还有Avdi Grimm的Objects on Rails 和Steven Baker的Solid Rails都在推动改革的发展。
Ruby的首次出现距今已有17年,Rails的诞生已有8年,Ruby社区仍然是一个令人兴奋的地方。看着当前的各种活动,各种变革,各种成果,这是我以前从未见过的繁荣景象。