转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> 互联动态 >> 正文
关于Ruby语言(什么是Ruby)         ★★★★

关于Ruby语言(什么是Ruby)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1007 更新时间:2010/6/23 22:58:27

        想知道 Ruby 为什么会如此受欢迎吗?为什么使用过它的支持者都称赞它为巧妙、优雅且易用更实用有趣的语言?

Ruby 发明者的理想

        Ruby 是一个注重均衡的语言,它的发明者松本行弘 Yukihiro “matz” Matsumoto,混合了他喜欢的语言(Perl、 Smalltalk、 Eiffel、 Ada 和 Lisp ) 产生了一种具有函数式及指令程序设计特性的新语言。

        他常说,他是“试着让 Ruby 更自然,而不是简单,就像生活一样”。

        除此之外,他还提到:

        Ruby 就像人的身体一样,表面上看来简单,但是内部却相当的复杂[1]。

Ruby 的成长

        在 1993 年,没有人会相信一个由日本业余语言设计者创建的面向对象的语言,能最终在世界范围内被广泛使用并且变得几乎像 Perl 那样流行。自从 1995 年 Ruby 公开发表以来,Ruby 在全球吸引了许多忠实的程序设计员。在 2006 年,Ruby 被广泛接受。在各大城市都有活跃的使用者并通过社区举办许许多多场场爆满的研讨会。

在 Ruby-Talk,主要的 邮件列表 上,讨论 Ruby 语言的文章爬升到每日 200 封。

        在 TIOBE, 最流行的开发语言排名调查中, Ruby 排名为全球第 11 位。 根据这样的成长情况,他们预测“在半年之中 Ruby 将会进入最受欢迎开发语言的前 10 名。”有越来越多受欢迎的软件如 Ruby on Rails web framework2 是使用 Ruby 撰写而成,也是造成 Ruby 如此快速成长的原因。

        Ruby 是开源软件。 不只是免费,而且可以自由的使用、复制、修改与发布。

所见到的都是对象

        最初,Matz 从其它语言中找寻理想的语法,在网络上他做了一段时间的调查,找到候选如“Perl“和“Python“。但都不是他想要的,他需要一个比 Perl 更强大、比 Python 更面向对象的语言[3]。

在 Ruby 中,所有的东西都是对象,所有的信息和代码都可以给它们所拥有的属性和行为。面向对象程序设计中称属性为实例变量(instance variables),称命令为方法 (methods)。 从下列程序代码中看到 Ruby 能够给数字赋于行为,从这点可以证明 Ruby 是纯面向对象的语言。

5.times { print "We *love* Ruby -- it's outrageous!" }

        在许多语言中,数字和其它原生的类型都不是对象。而 Ruby 受 Smalltalk 语言影响,让所有的类型都可以赋予方法及产生实例变量,并让这些规则适用于 Ruby 所有对象。

Ruby 的灵活性

        Ruby 是一个相当灵活的语言,她允许用户去改变她本身。 Ruby 的核心部分可以被更改或重新定义,模块可以被添加。Ruby 试着不去妨碍程序员。

        比如(+) 是用做加法的运算符。如果你更喜欢使用易读的 plus 的话,你可以给 Ruby 的内建 Numeric 类添加一个函数。

class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6
# y is now equal to 11

Ruby 的符号只是语法的甜头 (syntactic sugar)。你可以随时重定义他们。

Blocks,一个独特且强大的特性

        Ruby 的代码块是非常强大的。程序员可以给任何函数添加一个密封 (closure) 来表述这个函数该如何工作。密封也被叫做代码块,是用过其他比如 PHP, Visual Basic 等规则语言的 Ruby 的初学者最喜欢使用的一个功能。

        代码块取自函数语言。Matz 说:“我希望在 Ruby 的密封中融入 Lisp 的文化 [4]。”

search_engines = 
  %w[Google Yahoo MSN].map do |engine|
    "http://www." + engine.downcase + ".com"
  end

        在上面的代码中,代码块是在 do ... end 中的结构。 map 函数将代码块应用到一个词的列表中。Ruby 的其他函数经常会为程序员留出一个空当给代码块来控制函数的功能。

Ruby 与 Mixin

        于其他面向对象语言不同,Ruby “有意”只提供单继承。不过 Ruby 拥有模块(在 Objective-C 里面叫做类别)。模块是把许多方法放在了一个类别里。

        类可以混合一个模块,得到这个模块提供的所有方法。比如所有提供 each 方法的类可以混合 Enumerable 模块,来得到这个模块提供的所有方法,当然这些方法都会调用 each 做循环。

class MyArray
  include Enumerable
end

        一般来说,Ruby 爱好者相对于复杂和限制颇多的多态继承方法来讲更偏向于这种混合方法。

Ruby 的面貌

        尽管 Ruby 只用很少的符号并且偏向与英文单词做关键字,但是少量的符号也被用来装饰 Ruby。Ruby 不需要提前定义变量。它用简单的命名法来提示变量存在的范围。

  • var 可以是局部变量。
  • @var 是一个实例变量。
  • $var 是一个全局变量。

这些信号让程序员更清楚的看到每一个变量的角色,增强了程序的可读性,也不需要在实例变量前面加上 self. 了。

更上一层楼

Ruby 还有其他丰富的特性:

  • Ruby 有类似于 Java 和 Python 的异常处理,使处理错误更方便。
  • Ruby 有一个真正的表示-清扫(mark-and-sweep)垃圾手机器来出来所有的 Ruby 对象。不需要在库里维护引用数了。就像 Matz 说的:“这对您健康有意。”
  • 为 Ruby 写 C 的扩展比 Perl 和 Python 更容易。Ruby 有一个非常雅致的 API 从 C 语言调用 Ruby。这包括把 Ruby 作为嵌入式脚本语言时,从其他软件里调用 Ruby。SWIG 界面也是可选的。
  • Ruby 可以在操作系统允许的情况下动态调用库。
  • Ruby 提供不依赖操作系统的线程。所以在所有 Ruby 支持的操作系统里都可以使用多线程处理,不管操作系统支不支持,比如 MS-DOS!
  • Ruby 极为轻便:它只要是在 GNU/Linux 上开发的,但也在很多类型的 UNIX 上运行,也支持 Mac OS X, Windows 95/98/Me/NT/2000/XP,DOS,BeOS,OS/2 等。

[常用软件]进入Ruby on Rails世界  [网页制作]CSS文本:ruby-position
[网页制作]CSS文本:ruby-overhang  [网页制作]CSS文本:ruby-align
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台