科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件Ruby语言FAQ

Ruby语言FAQ

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

此FAQ是Jellen根据英文版翻译整理而成,供Ruby爱好者查阅!

作者:Jellen 来源:Ruby中文社区 2007年9月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

5、Ruby的运行效率如何?我能用Ruby编写应用程序吗?

Ruby是解释型的语言,效率当然和传统编译型的语言有差距。未来的计划是使Ruby的运行效率和编译型语言更加相近。现在已经有了目标为编写Ruby虚拟机的Rite项目,还有一个Cardinal项目在做Parrot虚拟机的Ruby前端程序。解释型执行确实在一定程度上影响了Ruby的运行速度,但是实际上Ruby在各种语言运行速度测试上表现的相当好。虽然一般没有Perl那么快,但是并没有慢多少。

我们当然可以用Ruby做桌面应用程序,事实上也已经有很多人这样做了。但是在开始用Ruby做应用程序之前,你必须了解它不会像你的C++程序那样快,然后生成的程序文件体积会比原生程序大一点。

6、听说Python也很不错,Ruby和它相比有什么特点?我要选择哪个呢?

Python和Ruby都声称自己是面向对象的程序设计语言,但是和Smalltalk不同,你可以在Python和Ruby中编写面向过程的程序代码。Smalltalk只有对象,在完全理解对象、继承和相当数量的Smalltalk系统类之前,你不能做任何事情。通过提供对过程化编程范式的支持,Python和Ruby“修复”了这个使Smalltalk不能进入主流的原因(毕竟,过程化思想对初学者来说很好理解)。但是这两种语言是通过完全不同(可以说正好相反)的方法来实现这个目标的。

Python是一种混合型的语言。它有函数的概念来支持过程化编程,也有对象的概念支持面向对象编程。Python通过允许函数和方法之间用方法定义前显式的'self'参数的转化来连接这两个世界。当一个函数插入一个对象时,它的第一个参数自动变成一个指向接受对象的引用。

但是,Ruby中的面向过程编程代码其实是“假装”出来的。Ruby语言是纯面向对象语言,它没有函数概念,只有类方法调用。在一个Ruby“函数调用”中,方法的默认接受者是'self',这是一个隐藏的参数,就像C++里面的'this'指针。一个在类外面的'def'方法声明(这在Python里面是函数),在Ruby里这实际上是一个方法调用。这个“假的函数”会自动变成Object对象的一个私有成员(Object对象是Ruby继承树中的根)。所以如果您对面向对象编程方法还不熟悉,您还是可以通过编写许多'def’方法,然后直接调用---这样的面向过程思想来完成很多有用的代码的。

Ruby的纯面向对象特性提供了一些Python缺少的或者正在发展的特性:一个统一的单根继承体系、元类、接受任何东西为子类和统一的方法调用(绝对没有len ()是函数但是items()是方法这种自相矛盾)。同Java类似,Ruby只支持单继承,但是它有一个非常强大的Mix-in概念:一个类中可以包括多个模块(Module),然后把模块中的方法,常量等变成自己的东西。

而且,Ruby提供了和Smalltalk中功用相同的闭包(Closures)和程序块(Blocks)概念。Ruby的集合类库和迭代器是相当出色的,比Python提供的特殊解决方法更加强大和优雅。

Ruby的语法和设计哲学深深地受到了Perl的影响。和Perl一样,我们可以把'if','while'等放在一个语句的尾部(比如这样“print "Yes!" if a == 1”);然后Ruby中很多特性都是从Perl中直接拿过来的,比如对正则表达式的内置支持、$_变量、 Here documents概念和$、前缀是对不同类型的变量的修饰等。

如果你喜欢Perl,那么你也会喜欢Ruby的自由语句结构;如果你习惯Smalltalk和Java,那么你也会喜欢Ruby的OO语法,但是如果你喜欢Python,那么你可能喜欢也可能不喜欢Ruby,因为Python和Ruby之间设计哲学的相差的太大了。

所以当你打算是用Python还是Ruby的时候,我建议你先两个都接触一下,看看自己对哪个比较感冒,然后再做决定(jellen是因为不习惯Python古怪的缩进语法才投奔Ruby的)。你要注意的是Ruby语法比Python复杂多了,不过幸运的是语法之间都是很优雅地结合在一起的。呵呵,但愿你会选择Ruby,并且成为一个快乐的Rubyiest!

7、我想学Ruby,但是不知道我的系统是否支持?我需要安装什么软件?

Ruby可以很好的在Windows系列、各种Linux、Unix和MacOS上运行,甚至在(Dos、BeOS、OS/2等不常见系统上也可以)。所以,你要做的是到Ruby语言的主页:www.ruby-lang.org去下载你使用操作系统对应的Ruby安装程序,安装上去就可以了。然后建议你安装一个支持Ruby语言的语法显亮的文本编辑器(比如Vim或者Emacs),这会使你的Ruby之旅更加惬意!

8、哪里有Ruby的学习资料?

你可以到www.ruby-doc.org去下载一个“ruby-doc-bundle”,你们有Ruby的用户手册,参考文档和被称为“Ruby语言圣经”的《Programming Ruby》第1版的电子书。这些都是很有用的资料,可惜都是英文的,对英文不好的朋友是个障碍。不过随着Ruby的流行,越来越多的Ruby教材资料会出版出来。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章