利用假期在家的时间,找了一本书看,Manning出版的《Ruby for Rails - Ruby Techniques for Rails Developers》。 偶尔在网上googling一下RoR,找到这么一张有趣的图:
这张图的意思大致也就是说,目前的图书中,关于Java, Java EE的书简直就是多如牛毛,而关于Ruby和RoR的书只有2本(我现在在看的,算是第3本吧,O'Reilly也有一本关于RoR的书,算是第4本)。 但是RoR这个新应用框架却正在以狂风暴雨之势席卷 Web 开发社区,特别是Java和PHP。
汇总一下网上的以及自己从书中看到的资料:
- 什么是Ruby?
Matsumoto Yukihiro ("Matz")是Ruby这个编程语言的发明人,他从1993年起便开始着手Ruby的研发工作,1993年2月24日Ruby诞生,1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。Ruby 是一种动态编程语言,它在许多方面类似于 Perl、Python 和 Smalltalk,但是它是自成体系的,Ruby成功的组合了Smalltalk的优雅以及Python的易用性,还有Perl的实用主义。Java 和 PHP 编程人员应该可以很轻松的掌握这一语言。
Ruby 的历史不短,先于在1995 年便为公众知晓的 Java 和 PHP。所以尽管 Ruby 是一个成熟的语言,却不如其它语言普及。这造成了 Ruby 编程语言阵营并不如 Java、PHP 和 Perl 阵营强大(这也是上面这张图展示出来的现状)。
- 什么是Rails?
Rails是一个用来开发以数据库为后台的Web应用的开源框架。 David Heinemeier Hanson 发明的 Rails 框架是 Ruby 诞生以来最受欢迎的应用程序,Ruby 社区推广能力不济的颓势也得到了扭转。Rails 将 Ruby 编程语言扩展为极其适用于 Web 开发的领域特定语言。它还借用了 ActiveRecord 扩展,将对象关系持久性引入了 Ruby 语言。
Rails使用了严格的 Model-View-Controller (模式-视图-控制器)体系结构,赢得了自尊且醉心于设计模式的Java程序员的尊敬 - 这是 J2EE 开发人员对其情有独钟的原因; 同时 Rails 可以非常方便地构建基础系统 - 这是它吸引 PHP 开发人员的原因。
但Rails有它自己的一些薄弱的地方: 从数据库角度来看,Rails 有一些非常明显的缺陷。Rails 对数据库布局和应用程序需求作了许多假定。比如,Rails 假定所有表都使用一个非复合的主键。它不支持复合主键也不支持双步提交(two-phase commit),它只能用于单个数据库后端的情况。
- RoR的优势?
Ruby on Rails最大的优点就是在于简单!RoR的核心思想就是"更少的编程,更简单的配置!"
- 安装和配置非常简单,不象Java需要安装运行环境,安装应用服务器,然后再进行一大堆的配置。Ruby只需要装一个简单的解释环境就可以了。RoR避免了繁杂的XML配置文件,你的应用程序和数据库里已经包含了所有Rails需要的东西。
- 编码简单,很多代码都是可以自动生成,可以自动生成MVC,可以自动生成框架、Web服务。甚至你只要写上一行代码就可以实现以前使用Java上百行代码的工作量,越少的编程量就意味着越少的bug。
- RoR稳定吗,适合企业应用吗?
企业应用需要的是稳定和高效。 Ruby和PHP一样,属于解释性语言。 目前使用PHP来开发的Web应用,适合于企业应用的不少,blog系统和讨论组系统也都大量使用PHP。 配合Ruby的RoR在效率上应该没有什么问题。 至于稳定性,目前还没有什么实际的数据可以来讨论。
【相关链接】
Ruby: http://www.ruby-lang.org/en/
Rails: http://www.rubyonrails.org/