Ruby

Ruby,一种为简单快捷面向对象编程而创的脚本语言,在20世纪90年代由日本人松本行弘开发,遵守GPL协议和Ruby License[1]。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。

 

Ruby
Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。之所以称为Ruby,是因为Perl的发音与6月的诞生石pearl(珍珠)相同,因此Ruby以7月的诞生石ruby(红宝石)命名。

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

2004年,RoR框架诞生,Ruby更加广为人知,Ruby并于2006年为TIOBE获选为年度编程语言。

 


Ruby的理念

减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计Ruby语言的Matz的一个首要的考虑;其次是良好的界面设计。他强调系统设计必须强调人性化,而不是一味从机器的角度设想[2]

人们特别是电脑工程师们,常常从机器着想。他们认为:“这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。”实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。

遵循上述的理念,Ruby语言通常非常直观,按照编程人认为它应该的方式运行。

Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本运行、又有Perl强大的文字处理功能的编程语言。

Ruby的Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序:

#!/usr/bin/env ruby puts "Hello, world!" 

或者是在irb交互式命令行的模式下:

>>puts "Hello, world!" Hello, world!=> nil 


其他特色

  • 完全面向对象:任何东西都是对象,没有基础类型
  • 变量没有类型(动态类型)
  • 任何东西都有值:不管是四则运算、逻辑表达式还是一个语句,都有回传值。
  • 运算符重载
  • 垃圾回收
  • 强类型[3]
  • 变量无需声明
  • 在Windows上,加载DLL

让人惊讶之处

  • Ruby的false等同与nil,这点和C语言的‘用0代表false’不同,常使用C的人可能会因此惊讶。
  • Ruby的字符串是可改变的,这与Java固定不变的字符串不同,Java的字符串比较像Ruby的Symbol
  • Ruby的继承功能相当脆弱,尽管Ruby是一个面向对象语言,Ruby内的许多规则,却使得子类有可能不小心就改写了父类型的功能,在《The Ruby Programming Language》一书中,建议除非程序员对一个类型相当了解,否则尽可能不要使用继承。

和Perl 6比较

  • CPAN上排名第一名,同时也是Perl 6的开发者的唐凤(Autrijus / Audrey)说:“Ruby就是‘没有到处打广告的Perl 6’”。[4]
  • 松本行弘在接受欧莱礼(O'Reilly)访问时,提到“Ruby借用了很多Perl的东西……,Python远比Perl要少……”、“我认为Ruby这个名字作为Perl之后的一门语言的名字真是再恰当不过了。”[5]
  • Perl之父拉里·沃尔(Larry Wall)说:“很多方面上我还是很喜欢Ruby的,这是因为那些部分是从Perl借过去的。:-)”、“我还喜欢Ruby的C<*>一元星号操作符,所以我把它加到Perl 6里面。”[6]

内容介绍来自:http://zh.wikipedia.org/wiki/Ruby