`
luotuoass
  • 浏览: 634967 次
文章分类
社区版块
存档分类
最新评论

RUBY的优点和缺点

 
阅读更多

优点:
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语言优缺点)


上述很多缺点都可以通过良好的编程方法和规范来避免。

http://www.railscn.com/viewtopic.php?t=3508

分享到:
评论

相关推荐

    ruby 变量

    虽然无类型变量存在一定的缺点,但却有更多的优点并很好的符合Ruby快速简便(quick and easy)的哲学精神. 在大多数语言里,变量都必须指定其类型,可更改性(是不是个常数)和范围;由于类型的不存在,剩下的东西也可由...

    java画随机的圆源码下载-ruby-processing-session:ruby-处理会话

    这有一些优点和缺点,尽早将它们排除在外可能是有意义的。 Ruby Processing 是Processing 的包装器,它是Java 的包装器。 一方面,它是 Ruby,而 Ruby 很棒。 另一方面,它主要由 . Internet 上的大多数文档和教程都...

    ip_anonymizer:Ruby和Rails的IP地址匿名器

    :globe_showing_Americas: Ruby和Rails的IP地址匿名器 适用于IPv4和IPv6 旨在帮助遵守 入门 将这些行添加到应用程序的Gemfile中: gem 'ip_anonymizer' 匿名IP有两种策略。 掩蔽 这是: 对于IPv4,将最后一个...

    满满科技感的程序员个人简历

    并在项目中成功将它们整合,感受流行框架进行项目开发的优点和缺点。 服务器:熟悉在tomcat上的J2EE开发,熟悉tomcat的启动流程,能及时的发现问题并解决问题。 操作系统Linux/Unix等:基本了解,掌握linux上面的...

    arena-rpg-s05e01:用 Ruby 制作的 Arena-RPG!

    维布兰茨卢安·卡斯特罗(小丑) 恩里克·里贝罗格雷森塞尔吉奥乔纳森·沃尔多布鲁娜·戈麦斯迪戈·费尔南多优点新人时间地点有军衔每个人都喜欢 RUBY S2 “史诗”和有趣的问题我们学了一点RPG缺点苹果键盘错过的...

    云采集.zip

    缺点:虽然也较为有名,但与火车头和海纳相比,发展时间相对较短,相对新锐,偶尔采集的内容不太准确,不过很容易校正调整。 技术:QQ技术支持、论坛、微博。有永久免费版本、收费版本。收费版本也可以通过嵌入代码...

    Git多媒体处理组件Gitmedia.zip

    Git media 可能是可供选择的最古老的多媒体处理...优点: 支持多种后端 使用透明缺点: 不再发展。 含糊的命令(e.g. git update-index --really refresh))。 并不完全与Windows兼容。 标签:Gitmedia

    Rintro:有关R的资源

    Python,JavaScript和R都有优点和缺点。 而且,如果您已经知道其中的一个或两个,那么您应该能够相对快速地理解R(尽管这里有)。 此仓库包含大量指南和资源,可帮助您开始使用R或解决特定问题。 这包括: 解释了...

    AutoTestDemo:移动端UI自动化测试脚本,Appium + Cucumber测试模式,Ruby编写。https

    前几年使用TDD模式和XCode自带的XCTest开发过“Lighten”的早期版本,但后来由于各种原因,测试用例“年久失修”基本已经报废,现在基本全靠人工测试。在使用TDD模式开发的时候,优点挺多,比如能增强自己的全局思维...

    cplmakerlab.github.io:CPL Maker Lab Jekyll网站

    Ruby和Jekyll都赞成使用。 这样做的优点是可以缩短编码时间; 缺点是您需要学习约定。 有时,约定会让人觉得很神奇-根据您的观点,约定可能是赞成还是反对。 目录结构 类型 描述 /_数据 数据 包含.yml格式的网站...

    galera_cluster_migrations:帮助使用 MariaDB Galera Cluster 执行 Rails 数据库迁移的 gem

    每个都有其优点和缺点,但是一旦您的数据库达到一定大小,您就必须开始考虑 RSU 对大型表的修改。全序隔离 (TOI) TOI 是 Galera Cluster 中默认的 DDL 复制方法。 当主节点收到 DDL 语句时,它会在开始 DDL 处理...

    late:在模板引擎中作为共享库或通过FFI提供的实验。 受Shopify的Liquid启发

    在使用Liquid多年之后,我正在建立LATE来保留Liquids的许多优点,同时弥补许多缺点。 另外,我想将其提供给Ruby生态系统之外的人们。 LATE的目标 严格且定义明确的范围规则 严格且定义明确的解析规则 完全可配置...

    pcpartspal

    每种都有各自独特的优点和缺点,如下所述。 Facebook市场: Facebook市场不是用户友好的,特别是从潜在买家的角度来看。用户界面笨拙,从个人经验中导航也不是特别容易。此外,要准确搜索您感兴趣的列表非常困难;向...

    10个超级有用值得收藏的PHP代码片段

    PHP最大的缺点是太简单,语法不严谨,框架体系很弱,但这也是它最大的优点,一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了。 网上有人总结几种编程语言的特点,我觉得也挺有道理的...

    RESTful Web Services 中文版.rar

    RESTful Web Services中文版 1,3,4章 缺第二章和其他章节,源码网无色会在第一时间补齐,敬请关注本页。 本身完整目录: 目录 ...序.......................................I. ...Ajax的缺点........

Global site tag (gtag.js) - Google Analytics