总结自己过去这段时间Ruby的开发经历以及网上的评论,列出以下几点,希望能够有助于加深对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语言优缺点)

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

Ruby语言的优点和缺点相关推荐

  1. ruby语言开源Web应用框架 Ruby on Rails 简介

    目录 Ruby on Rails是什么 历史 Rails 的 MVC 架构 Web 服务器支持 数据库支持 系统要求 集成开发环境 Ruby on Rails是什么 Ruby on Rails(官方简 ...

  2. ruby语言仅仅是昙花一现

    Ruby语言本身存在非常久了,在国内一直没火过.非常多人仅仅是知道有这样的语言,会的人少之又少.不论什么一种语言坚持十来年的发展,变得越来越好,一定有它不平常的地方.不能任意的去比較语言本身的好与坏. ...

  3. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要 ...

  4. Ruby语言学习系列--基本的ruby语法

    Ruby语言学习系列--基本的ruby语法 1.     基本的ruby语法 1.1      变量.常量和类型 1)      定义变量 变量类型 描述 示例 局部变量(或伪变量) 以小写字母或下划 ...

  5. 【ruby】ruby语言的几个特性总结

    最近在学习ruby,我觉得学习一门语言要先了解语言的基本特性,然后再深入语法.细节特性等. 所以先从ruby语言的特性入手,结合例子简单总结了几点,才真正开始学没多久,绝对不全面,还需后续的学习再补充 ...

  6. Ruby 语言的冗余性、缺陷性和动态性正是现实世界的真实写照

    Ruby语言具有动态特征,代码行为随时可以改变,本书后面内容都将围绕这一特征展开介绍. 产生高级编程语言以来的50年间,从没有哪一种语言像Ruby这样近似于现实世界.看看网络,数不清的信息扑面而来,你 ...

  7. Ruby 语言问世 | 历史上的今天

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 12 月 21 日,在 55 年前的今天,世界第一例心脏移植者逝世:世界上第一个心脏移植病人路易·华 ...

  8. Ruby语言能做什么?

    Ruby语言是一种通用的编程语言,它具有面向对象.动态.解释型等特点.自1995年发布以来,Ruby语言已经发展成为非常流行的编程语言之一.Ruby语言具有很多优点,它可以用于开发各种类型的应用程序, ...

  9. Ruby语言发展史(个人理解)

    Ruby是一种动态.面向对象.通用的编程语言,它由松本行弘(Yukihiro Matsumoto)创造,最初于1995年发布.Ruby的设计目标是"人性化",即让编程更加简单.自然 ...

  10. Python语言的优点和缺点

    01. 前言 Python是一门解释型高级语言,应用广泛.与Java和C/C++相比,Python的的代码更加简洁. Python一行抵C++十行,坊间流传着这个说法. 用Python开发,既简单又有 ...

最新文章

  1. 关于easyui的layout的region的resize的问题(自适应浏览器)
  2. 软件构造学习笔记-第七周
  3. 《C++ Primer》第一章的 Sales_item.h头文件源码
  4. § Transitive Intransitive Verb
  5. JVM——字符串常量池详解
  6. Jquery第一章环境的搭建和介绍第一节
  7. 记录—java获取服务器的信息
  8. AUTOCAD——文本标注
  9. 计算机教学常规检查小结,总结·反思·提高——邮政路小学全体教师期末教学常规检查反馈...
  10. 逍遥安卓多开器出现android,逍遥安卓模拟器
  11. [渝粤教育] 广东-国家-开放大学 21秋期末考试电算化会计10169k2
  12. html5 canvas实现高并发视频弹幕功能
  13. HTK 安装、编译以及测试——Ubuntu 14.04
  14. 计算2的100000次方
  15. 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法
  16. 《Hadoop权威指南》学习笔记(一)
  17. Noise Contrastive Estimation 前世今生——从 NCE 到 InfoNCE
  18. USACO-Moo Operations
  19. ToolStrip添加自定义的DateTimePicker
  20. Linux WiFi Porting

热门文章

  1. ajax中xhr监听,在firefox插件中监听http响应时确定XHR(ajax)响应
  2. C#项目获取当前时间的农历时间
  3. eeg地形图matlab,Matlab画地形图
  4. 一份无锡工程师的分享
  5. Boot Option中没有USB启动选项的解决办法
  6. 前端html制作中国地图,echarts实现中国地图
  7. cad中直径符号不显示_你知道在CAD制图软件中如何输入公差/直径符号吗?CAD入门学习技巧!...
  8. 数字信号和模拟信号抗干扰能力分析
  9. 「x86」- 特权级(Privilege Level)学习笔记 @20210215
  10. 学习了pr后的收获_学习后的感想和收获