Ruby在面向对象的脚本语言中是独一无二的。在某种意义上,对于那些热爱面向对象语言的人来说,它是一种纯粹主义者的语言。毫无例外,所有东西都自动成为对象,而在其他编程语言中并非如此。
什么是对象?在某种意义上,你可以把它想象成造一辆车。如果你有一个蓝图,那么对象就是根据这个蓝图构建的。它包含对象拥有的所有属性(即make、model、color)和它可以执行的操作。但是,即使作为一种纯粹的面向对象语言,Ruby也不会因为省略了与面向对象编程无关的特性而牺牲任何可用性或灵活性。
Ruby的架构师Yukihiro Matsumoto(在网络上简称为“Matz”)将这门语言设计得足够简单,让初学者可以使用,同时也足够强大,让有经验的程序员可以拥有他们所需的所有工具。这听起来有点矛盾,但这种对立要归功于Ruby纯粹的面向对象设计和Matz从其他语言(如Perl、Smalltalk和Lisp)中仔细选择的特性。
有一些库可以用Ruby构建各种类型的应用程序:XML解析器、GUI绑定、网络协议、游戏库等等。Ruby程序员也可以使用强大的RubyGems程序。与Perl的CPAN相比,RubyGems可以很容易地将其他程序员的库导入到您自己的程序中。
像任何编程语言一样,Ruby也有它的缺点。它不是一种高性能的编程语言。在这方面,Python的虚拟机设计具有巨大的优势。同样,如果你不是面向对象方法论的爱好者,那么Ruby也不适合你。
尽管Ruby确实有一些不属于面向对象语言领域的特性,但是不使用面向对象的特性就不可能创建一个不平凡的Ruby程序。在原始计算任务中,Ruby并不总是表现得像其他类似的脚本语言那样好。话虽如此,未来的版本将解决这些问题,而JRuby等替代实现也可作为这些问题的解决方案。
Ruby用于典型的脚本语言应用程序,如文本处理和“胶水”或中间件程序。它适用于小型的、特别的脚本任务,这些任务在过去可能是用Perl解决的。用Ruby编写小程序非常简单,只需导入所需的模块并编写类似于basic的“事件序列”类型的程序即可。
像Perl一样,Ruby也有一流的正则表达式,这使得编写文本处理脚本很容易。灵活的语法也有助于小型脚本。使用一些面向对象的语言,您可能会陷入冗长和庞大的代码中,但是Ruby让您只需要担心脚本即可。
Ruby也适用于大型软件系统。它最成功的应用是在Ruby on Rails web框架中,该软件有五个主要子系统、许多小部件和大量的支持脚本、数据库后端和库。
为了帮助创建更大的系统,Ruby提供了几个划分层,包括类和模块。它没有多余的功能,使程序员能够编写和使用大型软件系统而不会有任何意外。