Matz访谈录:我为什么要创造Ruby语言?

开发 开发工具
O'Reilly出版社在Ruby in a nutshell一书出版时对该书作者,同时也是Ruby创始人的松本行弘(Matz)进行了访谈,本文是访谈片段。

本文是Ruby in a nutshell一书出版之际,该书的作者,同时也是Ruby语言的创始人Matz介绍O'Reilly出版社访谈的对话内容整理总结。

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:

  1. loop do   
  2.   read and reply mails   
  3.   write code   
  4.   write document/article/book   
  5.   write code   
  6. end   

Stewart: 你现在对下一个版本 Ruby 有什么计划吗?

Matz: 我希望把它做的更快,更稳定。我计划重写 Ruby 2.0 的解释器,代码名是:”Rite“.它将更小,更容易嵌入,线程安全而且速度更快。它将使用字节码引擎。它可能要让我花上几年的时间来实现,因为光维护现在的 版本已经让我相当的忙碌了。

【编辑推荐】

  1. 李刚老师谈Ruby语言的未来
  2. 陆亦斌谈Ruby语言的发展与前景
  3. Peter Cooper谈Ruby是否将会流行
  4. Dave Thomas谈编程与Ruby修炼之道
  5. Ruby百家谈
责任编辑:yangsai 来源: eiffelqiu.com
相关推荐

2009-07-16 17:06:05

JPython

2009-03-04 09:17:47

GoogleChrome工程师

2012-12-13 23:01:02

云计算天地超云云箱

2011-05-05 14:54:17

敏捷

2020-11-24 09:55:37

编程语言C ++Vasa

2010-10-14 20:36:47

敏捷

2011-08-16 09:09:04

jQuery

2022-05-06 19:04:25

开源

2009-09-18 12:32:28

Rasmus LerdPHP

2020-01-22 16:53:54

编程语言PythonJava

2011-10-09 11:29:32

笔记本行情

2024-05-28 08:09:27

2012-06-18 14:51:09

Python

2022-12-09 10:00:20

算法推荐模式

2017-04-05 18:10:05

R语言开发Ross

2009-09-09 17:45:25

Ruby的blocks

2011-10-09 10:34:35

笔记本评测

2010-01-22 15:14:37

学习C++

2010-11-03 09:22:00

C语言

2022-08-26 07:26:03

技术人人生阅历行业
点赞
收藏

51CTO技术栈公众号