1. 一般的问题

1.1 Ruby是什么?

一言以蔽之,Ruby是一种

语法简单且功能强大的面向对象的脚本语言。

与perl一样,Ruby的文本处理功能十分强大。当然了它的功能远不止于此,您还可以使用它来开发实用的服务器软件。

Ruby博采众长,吸收了众多语言的优点,却又别具一格。

Ruby的优点主要体现在以下几个方面。

1.2 为什么取名叫Ruby呢?

松本先生曾经在[ruby-talk:00394][英译稿](June 11, 1999)中讲过取名的经过。

据说当初松本先生一直琢磨着要给这个新语言取个像Perl这样的宝石名字,正好有个同事的诞生石是Ruby,因此就取名叫Ruby了。

后来发现Ruby和Perl真的很投缘,例如pearl诞生石代表6月,而ruby诞生石则代表7月。还有pearl的字体大小是5pt,而ruby则是5.5pt等等。因此松本先生觉得Ruby这个名字很合适,并努力使其成为比Perl更新更好的脚本语言。

松本先生正期待着Ruby取代Perl的那一天早点到来(^^)。

1.3 请介绍一下Ruby的诞生过程

松本先生曾经在[ruby-talk:00382][英译稿](June 4, 1999)中介绍过Ruby的诞生过程。[ruby-list:15997]修改了Ruby的诞生时间。

1.4 哪里有Ruby的安装文件?

您可以在这里<URL:ftp://ftp.ruby-lang.org/pub/ruby/>找到最新版的Ruby。

镜像站点列表如下

您可以在Ruby Binaries中找到cygwin版、mingw版和djgpp版的二进制文件包。

另外,Windows(cygwin)中还为初学者准备了Ruby Entry Package。安装方法请参考面向初学者的Ruby安装说明

1.5 请问Ruby的主页在哪里?

Ruby的官方网站是<URL:http://www.ruby-lang.org/>

1.6 请问有Ruby邮件列表吗?

现在有6个正式的Ruby邮件列表。

详情请参考Ruby邮件列表

1.7 怎么才能看到邮件列表中的老邮件?

<URL:http://blade.nagaokaut.ac.jp/ruby/ruby-list/index.shtml><URL:http://ruby.freak.ne.jp/>里面有搜索邮件用的表单。

另外,ML Topics中列出了老邮件中的重要话题。

1.8 rubyist和ruby hacker的区别是什么?

松本先生对rubyist和Ruby hacker的定义如下。

rubyist是指那些对Ruby的关心程度超过常人的人。例如

而Ruby hacker是指那些在技术层面上对Ruby有所专攻的人。例如

等就是Ruby hacker。

这些称号只不过是自我解嘲式的自称,我不会为任何人进行正式的认证。松本先生特别将上述人士列为{rubyist、Ruby hacker},可见其尊敬之情。

1.9 它的正确写法是"Ruby"还是"ruby"?

Ruby的正式写法是"Ruby",其命令名是"ruby"。另外只要不让人觉得别扭的话,也可以使用ruby来替代Ruby。

但不能把"RUBY"、"ルビー"或"るびー"用作这门语言的名称。

此前曾经有一段时间把"ruby"用作正式名称。

1.10 请介绍一些Ruby的参考书

主要有《オブジェクト指向スクリプト言語Ruby》(译注:日语书名未翻译)[松本行弘/石塚圭树 合著 ASCII出版(ISBN4-7561-3254-5)],其他书目请参考Ruby相关书籍

至于正则表达式,请参考Jeffrey E. F.Friedl著的《詳説正規表現》(译注:日语书名未翻译)[reilly Japan出版(ISBN4-900900-45-1)]。这本书介绍了各种正则表达式的实现问题,有助于加深您对于Ruby正则表达式的理解。

1.11 我看了手册可还是不明白,该怎么办?

Ruby的基本句法从Ruby1.0以后就没有太大的变化,但却在不断完善和扩充,因此有时文档的更新速度跟不上最新的发展。另外,有人坚持说源代码就是文档,如此种种。

若您有何疑问,请不必顾虑太多,直接到ruby-list中提问即可。Ruby教主松本先生以及各位尊师还有我都会为您排忧解难。

提问时,请写明ruby -v的结果并附带上您的代码(若代码太长的话,只需摘录重要部分即可)。

若您使用的是irb的话,则稍有不同。因为irb自身也存在一些问题,所以您最好先用irb --single-irb重试一下,或者用ruby重新运行一次为好。

虽然搜索ML可以解决您的大部分问题,但因为邮件数量庞大,想找到答案实属不易。为遵从网络礼节(请参考RFC1855的3.1.1、3.1.2),您可以只搜索最近的内容,但是说起来容易,做起来难。况且说不定最近又出现了什么新观点呢。所以您还是壮起胆子来提问吧。

1.12 ruby的性格比较像羊?

羊、蜂鸟、兔子...

1.13 遇到bug时怎么上报?

遇到bug时应该上报到Ruby Bug Tracking System,通常很快就会得到回复。您也可以用邮件将bug的情况上报到ruby-bugs-ja

上报时,最好能提供ruby的版本和平台信息、错误消息以及能再现bug的脚本和数据。

遇到bug时,通常会显示[BUG]消息,而Ruby也将被强行关闭。此时大部分系统都会生成一个core文件。若您的调试器可用的话,可能还会有backtrace。若您能提供这些信息就更好了。