若您曾经“想要一种简单的面向对象的语言”,或者认为“Perl的功能虽然好用,但它的语法真让人受不了”,又或者觉得“lisp系列语言的思想不错,但到处都是括号真让人讨厌,最起码算式应该按照通常的样式书写”。那么,Ruby或许能让您满意。
归纳以来,Ruby有以下优点。
- 解释器 
- Ruby是解释型语言,其程序无需编译即可轻松执行。 
- 变量无类型 
- Ruby的变量没有类型,因此不必为静态的类型匹配而烦恼。相应地,错误检查功能也变弱了。 
- 不需要变量声明 
- 所有变量均无需声明即可立即使用。另外,从变量名即可判断出是何种变量(局部变量,全局变量,实例变量)。 
- 语法简单 
- 语法比较简单,类似Algol系语法。 
- 不需要内存管理 
- 具有垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。 
- 一切都是对象 
- Ruby从一开始就被设计成纯粹的面向对象语言,因此以整数等基本数据类型为首的所有东西都是对象,它们都有发送信息的统一接口。(这方面连Java都不如Ruby) 
- 类,继承,方法 
- Ruby当然具有面向对象语言的基本功能。 
- 特殊方法 
- 可向某对象添加方法。例如,可以把GUI按钮被按下时的动作作为方法记述下来,还可以用它来进行原型库(prototypebase)的面向对象编程(有人这么干吧)。 
- 用模块进行混合插入(Mixin) 
- Ruby故意舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。 
- 迭代器 
- 该功能可以将循环抽象化。 
- 闭包 
- 可以将某过程片段对象化。对象化后的该过程片段就称作闭包。 
- 功能强大的字符串操作/正则表达式 
- 以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。 
- 拥有超长整数 
- 添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。 
- 具有错误处理功能 
- 错误处理功能可以使您编写代码处理出错情况。 
- 可以直接访问OS 
- Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。 
- 动态加载 
- 若OS支持的话,可以在运行时读入对象文件。
但Ruby也有下列缺点。
- 因为Ruby是解释型语言,所以速度较慢 
- 静态检查比较少