在最近工作的几个项目中,我有意无意的采用了Ruby语言。 作为一种介于主流与非主流之间的动态语言(TIOBE排名10左右),采用ruby的开发者群体在一度暴涨之后,一直处于一个相当稳定的水平。

从效率来看,ruby确实不是一个让人完全满意的选择。 在我以前一个项目中实现的一个搜索项目,最先采用了一个PHP的版本,运行起来显示了php一贯的高效和稳定特性。 后来采用了ruby进行功能扩展,开发的过程让人愉悦,少量的代码实现了全部功能,并且增加了灵活性,但是在数据量急遽增加的时候,ruby的表现并不如php那样轻松自在。 jruby等正在尝试通过新的手段来对这个方面进行改进,前面的路还有很长,值得期待。

而抛开这个瑕疵,Ruby语言本身的优雅简洁,却能将开发者吸引到它的圈子。

ruby强调代码的质量,在ruby的世界里,到处看到的是短小精悍的代码,寥寥几行,可以清晰看到进程的脉络。 那比较负责的任务怎么实现呢?Ruby的解决方案是将问题分解,在单独的块里实现复杂的功能。 其实这个单独的块也是一个清晰的框架,复杂的功能还会继续分块下去,直到所有的功能的实现都在一个简洁的块中实现。 不用卖弄任何技巧,问题在逐步自然而优雅的分解过程中,已经有了一个完美的解决。

大多数语言支持完善的函数,大都有代码重用的机制。 而Ruby所特有的灵活高效的block机制,让它出类拔萃。 在你需要的时候,方便地def你的方法;采用block/closure,对进程进行有效的控制。 通过引入这种灵活性,使Ruby的代码更加简洁。 开发者会发现这种语言不会因为严格的语法规则来限制他/她的思维,怎么能不爱它呢?

Ruby的社区也比其它的社区更为友善一些,很少能看到其它社区常见的那句RTFM。 这一方面可以归因于ruby是个后起之秀,很多问题都在解决之中,文档中并没有成熟的解决方案。 而另一方面,ruby开发者一直处于一种愉悦的开发心情中,大都应该不会以那种暴躁的方式来对待有相同兴趣的吧。