ruby 主要用于做web,如使用 ruby on rails
优点:
1 采用虚拟机实现跨平台
2 支持垃圾回收
3 脚本语言,灵活,容易扩展
4 支持面向对象
5 基于脚本语言,易于同linux shell进行交互
6 拥有功能强大和完善的标准类库
7 拥有良好的交互式运行环境:irb,方便进行开发和调试
8 语言内置对规则表达式(regular express)的支持
9 直观的block语法来实现循环遍历和函数回调
10 开放源代码
11 支持异常机制
12 同perl和python相比更容易用c语言扩展(来自ruby官方网站)
13 支持动态载入类库
14 因为是解释型语言,不需要编译,修改后马上就可以执行
15 拥有一个完善的web开发框架rails
缺点
1 性能不如纯静态编译语言,例如c,但可以通过用c语言来扩展来解决
2 完全没有类型检查,灵活但容易隐藏潜在的问题
3 使用module来实现多重继承,不如java所采用的接口(interface)方式清晰,而且由于没有严格的类型检查,所以框架层的设计无法对实现有很严格的约束
4 没有很完善的开发,重构的工具,虽然现在eclipse已经提供ruby的开发插件,但还没有实现重构,跳转和自动代码生成等很有用的功能,主要原因是由于ruby支持动态类型
5 依然保留部分非面向对象的语法,例如全局变量,全局方法
6 允许在扩展代码中随意替换现有类的方法定义或变量,非常灵活,但可能会因为错误地修改了框架逻辑而引发难以发现的错误,但可以用freeze方法来组织被修改
7 不支持真正的多线程,多线程环境是通过在虚拟机环境中模拟出来的,不能充分发挥多cpu的功能,如果一个线程在执行底层调用被block住则整个应用程序也被block住。
8 对unicode和多国语言的支持不好(来自martin上海演讲实录3:细数ruby语言优缺点)