[eiffel 翻译]采访 Ruby 创始人
注: Matz 就是著名的编程语言 Ruby 的创始人(日本人)
这段对话翻译自 oreillynet.com 网站对 Matz 的访谈。
英文文章原址:
http://www.oreillynet.com/pub/a/linux/2001/11/29/ruby.html
未经本人同意,不要任何地方转载这篇翻译文章
(最先发表在本人的网站 http://www.eiffelqiu.com)。
Ruby 被称一种纯面向对象的语言,它试图集成脚本语言中最好的特点,
它本身是用 C 语言开发的,但是在设计的时候更多地考虑到了拥有 Perl
,Python 的能力。虽然起源于日本,但是Ruby已经渐渐在美国得到了瞩目。
Yukihiro Matsumoto (网上被称为 Matz)是 Ruby 的创始人,同时
也是O'Reilly 最新出版的语言类书籍 “Ruby in a nutshell” 的作者。
Matz 是一位专业的程序员,他在日本的开源公司 netlab.jp 工作。他
也是日本最为著名的开放源码传播者之一。他发布了许多开源的产品,包
括 cmail,一个基于 Emacs 的邮件客户端程序,完全用Lisp 写的。
Ruby 是他第一个在日本以外国家成名的软件。 最近我们跟Matz 谈起了
Ruby 的历史,Perl , Python 对 Ruby 的影响以及为什么我们需要
另外一种脚本语言。
以下就是采访片段:
Stewart:
让我们从回顾历史开始吧,您为什么要决定开发 Ruby 语言?
Matz:
那追溯到 1993 年的事情了,我当时跟一个同事谈起了脚本语言,它们的
强大的功能和可能性给我留下了深刻的印象,我觉得脚本语言是条正确的道路。
作为一个长期的面向对象编程的忠实拥护者,对我来说面向对象编程也非常适
合于脚本语言,所以我开始在网上搜寻。我发现了 Perl 5,当时它还没正式
推出,正打算实现一些 OO 的特点,但是那不是我想要的, 我最终放弃了将
Perl 作为一个面向对象脚本语言的企图。
后来我发现了 Python, 它是一个解释型,面向对象的语言,但是我觉得它不
是一个“脚本”语言,除此之外,它还是一个包括了过程编程和面向对象编程的
混合型语言 。
我需要的是一个比 Perl 更强大,比 Python 更面向对象的语言,这就是为
什么我决定设计我自己的语言的原因。
Stewart:
你什么时候真正开始编写 Ruby 的? 最终花了多长时间才使成为一个可用的
语言?
Matz:
我开始开发 Ruby 是 1993 年的 2 月 24号, 第一个 Ruby 版本的
“Hello world” 运行的时候是同年的夏天。第一个 Alpha 版本发布于
1994 年 12 月。
Stewart:
你是单独完成它的吗?或是由开源社区贡献了大部分代码?
Matz:
直到 1996 年,我都是独立在开发它,打那儿以后,一个 Ruby 社区形成了,
他们帮了我很大的忙,但是我仍然做绝大部分的工作,但是很多人给我提供的
代码的修补和补丁。
Stewart:
日本的开源社区有多活跃?和美国的开源社区运动相比,你觉得如何?
Matz:
非常的活跃,但是我觉得比美国的社区在规模上要小。
Stewart:
你怎么会想起用 "Ruby" 这个名字的?
Matz:
Ruby 是一种珍贵宝石的名字(红宝石)。它不是什么简称。当我始这个语言项
目的时候,我就跟一个同事开玩笑说,这个项目必须以一个宝石的名字来命名(
比如 Perl),我的朋友想出了“Ruby”,它是一种美丽珍贵的宝石的简称。所以
我就采纳的这个名字,它最终成为了这个语言的官方名字。
后来我发现 Pearl(珍珠)是六月的诞生石,而Ruby 是七月的诞生石, 我认为
Ruby 这个名字作为 Perl 之后的一门语言的名字真是再恰当不过了。
Stewart:
你在设计 Ruby 的时候有什么指导原则吗?
Matz:
是的, 我称之为“最少的惊奇”,我觉得人们在编程的时候都希望表达他们自己的
思想,他们并不想使用语言来斗争。编程语言对程序员来说应该显得自然。 我试
图让程序员在使用 Ruby 的时候感受到编程的乐趣,而将注意力集中在编程的趣
味和创新上来。
Stewart:
你在 Ruby 的邮件列表中很活跃,在那里最通常的问题是什么?
Matz:
各种各样的问题,从“我如何在 windows 2000 的机器上安装 Ruby” 到 “你能
将我的补丁合并进来修复你的错误吗”,应有尽有。 Ruby 社区中的人是如此的不
同而又互相友好,真是让人惊奇,我相信社区是 Ruby 最强大的力量。
Stewart:
在 Slashdot 或其他网站上,如果提及 Ruby , 有个问题总是会反复出现,“为
什么会需要另外一种脚本语言?”,你对这个问题的想法是怎样的?
Matz:
为什么需要另外一种语言?理论上,不需要。我们只是需要一个图灵机来解决我们
所有的问题。人们需要更多复杂的工具来编程,这是人类的需求。只有有人觉得使
用Ruby很快乐,对我来说,这个原因就足够了。
Stewart:
我注意到,在发明 Ruby 之前你在使用 Perl 和 Python. 在 Ruby 中你集成
了 Perl 的那些部分?
Matz:
很多。 Ruby 的类库是对 Perl 语言功能的面向对象重组,另外添加了一些
Smalltalk 和 Lisp 的东西。我想我是用了很多 Perl 的东西, 不过我不应该
继承诸如 $_ $& 和其他一些风格丑陋的变量。
Stewart:
那么 Python 呢?你试图重用这个语言中的哪些特点?
Matz:
远比 Perl 要少,但是我还是偷学了一些东西,比如异常名,另外我从它的源码
中学到很多东西。
Stewart:
如果人们已经熟悉了 Perl 和 Python, 他们有什么理由要转到 Ruby 上来呢。
Matz:
为什么要转到Ruby? 如果对Perl 或者 Python 很满意,就不需要转到 Ruby
上来。但是如果确实觉得需要一门更好的语言,Ruby 可能就是你的选择。学习一
种新的语言并没有害处。 它给你新的想法和见解,你不比转到它,可以仅仅学习
和试试。 在你觉得 Ruby 使用起来非常舒服的时候再决定转到使用它。
Stewart:
你觉得 Ruby 在日本如此成功,但是在美国和欧洲并流行是什么原因呢?
Matz:
Ruby 自从 1995 年第一次正式发布就在日本有了名气,直到 1997 年才有了
英文文档。 在 1998 年建立 Ruby-talk邮件列表之前我没有对Ruby 做过任何
宣传,所以,对非日语国家来说,这是一门非常新的语言。我想这是主要原因。
现在我们有了关于 Ruby 的英文书籍了,就像我的这本 “Ruby in a Nutshell"
。 社区也在发展,去年日本之外没有人知道 Ruby 是什么。今年,人们知道Ruby
是一个语言的名字,我想今后三年情况会有所改观。
Stewart:
文化差异是否也在其中起了作用?
Matz:
我不这么认为。我设计 Ruby 是为了尽量减少我的惊奇。当世界各地的人告诉我
Ruby 减少了他们的惊奇并让他们享受到编程的快乐,这多少让我感到惊讶,现在
我确信全世界的程序员都是很相像。
Stewart:
你未来还有什么计划吗?
Matz:
loop do
read and reply mails
write code
write document/article/book
write code
end
Stewart:
你现在对下一个版本 Ruby 有什么计划吗?
Matz:
我希望把它做的更快,更稳定。我计划重写 Ruby 2.0 的解释器,代码名是:
”Rite“.它将更小,更容易嵌入,线程安全而且速度更快。
它将使用字节码引擎。它可能要让我花上几年的时间来实现,因为光维护现在的
版本已经让我相当的忙碌了。
邱海峰(eiffelqiu)
mail: eiffel_q@163.com
weblog: http://weblog.eiffelqiu.com