微胜教育带你全面了解编程语言Ruby的特性

发表时间: 2019-05-28 09:59

Ruby是一种纯粹的面向对象语言,其中的所有东西都是一个除了块之外的对象。

起源

•Ruby具有与许多编程语言(如C和Java)类似的语法,因此同Java、C语言一样很容易学习;它还支持多平台,例Windows,Mac,Linux等。

在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。

它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。它是一种解释型脚本语言,这意味着它的大部分实现都可以直接自由地执行指令,而无需事先将程序编译成机器语言指令。

Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。

•因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。

Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。

发展

Ruby归根结底源于Perl和Lisp两类语言,与C,C++,C#,java是不同大类;

2011年10月31日1.9.3的第一个稳定版本1.9.3p0发布;

2013年2月22日发布了Ruby 1.9.3-p392;

2013年2月24日发布了Ruby 2.0.0-p0;

2015年4月13日发布了Ruby 2.2.2;

2015年12月25日发布了Ruby 2.3.0;

目前最新稳定版本为:Ruby2.4.2。

优势

1) Ruby是一种动态面向对象语言,具有很多强大的面向对象的高级特性,可以轻松创造出来Java语言很难实现的功能,因此可以极大提高编程效率,减少代码量。

2) Ruby是一种动态编程语言,因此没有关于如何内置功能的严格规则,并且它非常接近英语的自然语言,描述和表达能力很好,语法扩展能力很强,因此被用来作为DSL(领域专用语言),例如Ruby的构建工具rake就是一种DSL。而Java则不具备这样的能力,从而不得不借助使用XML来描述各种配置信息。

3)基于Ruby语言的rails框架,除了充分利用了Ruby语言强大的语法能力之外,rails框架自身也有很多理念非常领先的创新性技术,在这些方面,Java的主流框架在技术创新能力上被远远甩到了后面。

4) 除了技术因素之外,基于rails框架来开发web应用,最大的优势就是开发速度快,一般认为达到使用Java的5-10倍速度,另外代码量很少,这是Ruby吸引很多开发人员的主要原因。

5) 使用Ruby on rails开发web应用,其入门门槛和学习成本要远低于使用Java,一个基础扎实的程序员通过一个月学习就可以熟练使用rails开发,但是学习三个月,都未必能够熟练运用主流Java框架来开发。

6)由于Ruby是免费的,Ruby可以自由复制,使用,修改,它允许程序员在需要时进行必要的更改。

劣势

1)从技术角度来说,Ruby解析器的性能比较差,远低于Java的JVM。

用Ruby编写的代码更难调试,因为它大部分时间是在运行时生成的,所以在调试时很难读取。不过对于Web应用来说,这个缺点没有什么影响:因为Web应用的瓶颈往往出现在数据库访问上面。

2)与其他编程语言相比,Ruby没有大量的信息资源。

相对比Java丰富的各种第三方类库来说,Ruby的第三方类库显得非常缺乏,。而且不成熟,特别是针对企业应用的各种第三方类库支持,空白点很多。这是目前制约Ruby在企业应用普及的最大障碍之一。

3)Ruby,特别是用rails开发的web应用在Windows操作系统上面得到的支持还很不够,传统上都是部署在Unix/Linux操作系统上的。Windows目前来说只能作为开发环境,而不能作为生产运行环境。

4)Ruby是一种解释型脚本语言,脚本语言通常比编译语言慢,因此Ruby比许多其他语言慢。