Ruby是何方神圣?

Ruby是何方神圣?

php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby是一种功能强大的面向对象的脚本语言,她可以使您方便快捷地进行面向对象编程.php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby使文本处理和系统管理变得简单,与Perl非常相似.一句话:简单明了,扩展性强,移植性好.
Ruby的几大亮点:

  * 语法简单
  * 垃圾回收
  * 可移植性
  * 动态载入
  * 完全免费
  * 正则表达式

走向世界的Ruby

松本行弘"Matz"(Matsumoto Yukihiro)是Ruby语言的发明人,他从1993年起便开始着手Ruby的研发工作。他一直想发明一种语言,使你既能进行高效开发又能享受编程的快乐。1993年2月24日Ruby诞生了,1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。不久Ruby便凭借其独特的魅力横扫日本,相信在不久的将来,Ruby将走向世界。
Ruby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号matz)开发,遵守GPL协议和Ruby License。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言。其他特色包括:

  * 运算符重载
  * 自动垃圾回收
  * 弱类型(动态类型 | 标量变量)
  * 变量无需声明 (不必事先宣告变量)
  * 在Windows上,加载DLL
  * 巨大的标准库(函式库;Library)

目录

  * 1 历史
  * 2 Ruby 的理念
  * 3 Semantics
  * 4 Ruby的Hello World程序
  * 5 Ruby 的特点
    o 5.1 完全面向对象
    o 5.2 变量没有类型
    o 5.3 任何东西都有值
    o 5.4 命名规则
    o 5.5 已经定义的类可以在运行时修改
  * 6 JRuby
  * 7 参见
  * 8 外部链结

历史

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

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

Ruby现在的稳定版本是1.8.6(2007年3月12日发布)。

Ruby 的理念

减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计 Ruby 语言的 Matz 的一个首要的考虑;其次是良好的界面设计。他强调系统设计必须强调人性化,而不是一味从机器的角度设想。
“     人们特别是电脑工程师们,常常从机器着想。他们认为:“这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。”实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。     ”

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

Semantics

Ruby 是完全面向对象的:任何一点数据都是对象,包括在其他语言中的基本类型(比如:整数,布尔逻辑值),每个过程或函数都是方法。

Ruby的Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

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

Ruby 的特点

完全面向对象

在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数

变量没有类型

Ruby的变量可以保有任何类型的数据。

任何东西都有值

不管是数学或者逻辑表达式还是一个语句,都有值

命名规则

Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。常数则以大写字母开头,

已经定义的类可以在运行时修改

Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单立方法。

class MyClass
 def the_method
  "general method"
 end
end

mc = MyClass.new
def mc.the_method
 "special for this instance."
end

mc.the_method