分享 松本行弘:我为 Ruby 2.0 打 90 分

lakuxin · 2013年06月17日 · 最后由 lakuxin 回复于 2013年06月18日 · 4862 次阅读

2013 年 2 月 24 日是松本行弘开发 Ruby 整整 20 周年的日子,而就在这一天,他发布了 Ruby 2.0。我与他面对面,听他讲为开发 Ruby 2.0 所做的努力,以及对未来的展望。(日经 Linux 安东一真)

++++++++++++++++++++++++++++++++++++++++++++++++++++ 安东:20 年之后才推出 Ruby 2.0,您给这个新版打多少分呢?

Matz:90 分吧。90 分的话及格了吧。

任何事情都是如此,能得到 80 分已经很了不起了。我认为 Ruby 在 1996 年发布之初就已经有 80 分了,然而从 80 分到 90 分,这个提升简直是太难了,而实际上它也足足用了 20 年。

Ruby 2.0主要的新功能是关键字参数、Module#prepend和Refinement三个。我非常想实现这三个功能,而这个想法是在10年前的2003Ruby大会上最早提出的。10年过去了,也终于实现了。

而要从 90 分提升到 100 分,就几乎不可能了,特别对一门编程语言方面来说。Ruby 的普及,是因为它特别重视兼容性,但如果不一直改善性能的话,它早晚有一天会被淘汰。在今后,我们会继续在实现方面下功夫,加快执行速度,强化多核的应用。

++++++++++++++++++++++++++++++++++++++++++++++++++++ 安东:把编程语言做到如此境界,它的难点在哪里呢?

Matz:语言在实际使用上如果超过了一定的规模,那语言的开发是一个人做不了的。它能够作为一个开源软件(OSS)获得成功,应该归功于社区。Ruby 也正是借助社区发展起来的。

但事实上,不能一个人完成开发,指的是一个人无法决定,也无法随意安装新功能。Ruby 社区的基本原则就是每个人都可以参加。况且设计语言本身就是件很有乐趣的事情,我也很希望大家都能参加进来。

Ruby 1.8 之前的所有细节我都很清楚,如果要添加新功能,需要改动的地方我了如指掌。但在 1.9(2007 年发布)的新虚拟机(VM)中直接采用了笹田先生开发的 YARV,我插不进手,这点上变化还是很大的。

没有自己动手,其实是因为我觉得必须让别人来做。Ruby 必须接受一些新东西的刺激。

++++++++++++++++++++++++++++++++++++++++++++++++++++ 安东:那么实现这次新功能的动机又是什么呢?

Matz:我在 2011 年时宣布,会在 20 周年的时候,也就是今年,发布 Ruby 2.0,这可能是发布新功能最主要的动机吧,对我来说也是一份激励。之前一直都停留在 Ruby 1.X,终于升级到 2.0 了。我看有很多人在讨论应该添加些什么新功能,也有很多切实可行的想法。

事实上,Ruby 2.0 的三个新功能是由其他三个人分别开发出来的。Ruby 社区也很喜欢类似 20 周年纪念这样的活动呢。他们把这个叫作“活动驱动式开发”(意即以庆祝大型活动为契机来进行开发)。当然,这和它本来的意思不一样啦(笑)。

翻译:金松月 (转载自图灵社区 http://www.ituring.com.cn/article/44490

不说别的,坚持 20 年开发一个东西,足够我们仰视。

90 分及格,也就是说满分 150 咯.. 不晓得 Haskell 能多少分 20 年了,真赞

很好!Ruby 从语法上来说已经足够 OK 了,现在差的就是虚拟机性能,以及多核并行的支持,看来 Matz 先生对 Ruby 未来的发展应该补足的功课是非常清楚的,那就让我们期待 Ruby2.1 的分代垃圾回收和多核并行的支持吧。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号