上个月 Ruby 之父松本行弘来到中国参加 Ruby Conf 大会,期间他接受了二叉树视频的采访,我们很荣幸获得了二叉树视频的授权,转载了这篇文章,希望各位读者看到一个不一样的松本行弘。

视频丨二叉树团队

编辑丨小智

翻译丨乐馨

在近日于上海召开的 RubyConf China 站上,InfoQ 有幸采访了 Ruby 之父松本行弘先生。松本行弘先生是 Ruby 语言的设计者,投身编程行业已逾三十年。作为一门编程语言的创造者与推动者,他是怎么看待对于 Ruby 语言的褒奖与批评?又是怎么看待 Ruby 与 Java 语言的对比?对于日本的 IT 产业现状与 996 的加班问题,他又抱有怎样的看法?
 松本行弘、Ruby 与中国

我是松本行弘,Ruby 的主要设计者和实现者。大概 25 年前我开始设计和开发 Ruby,目前这门语言被全世界包括中国的开发者所使用。最近我的新书《编程语言的设计与实现》被翻译成中文在中国出版。我对编程语言本身有浓厚的兴趣,几十年来一直孜孜不倦地研究各种语言,这对我设计 Ruby 有很大的帮助。

在日本以自制编程语言为主题的书非常多,这些书绝大部分是介绍编程语言的实现的,几乎都没有涉及语言设计。设计编程语言是一件比较小众的事,有这方面经验的人很少,我这二十多年来一直在从事 Ruby 的设计和开发工作,在这些年的经验基础上,我把设计编程语言的过程和心得写成了一本书,那些对编程语言感兴趣的程序员读起来会有所收获,非常感谢图灵公司能够引进并组织翻译这本书。

Ruby 在世界各地都有开发者社区。光今年,我就参加了欧洲、美国、印度、新加坡、中国的 Ruby Conf 大会。看到这么多人都在使用 Ruby,我觉得很开心。各地的开发者虽然国籍、人种、身高不同,但他们有着惊人的相似之处:他们都非常热爱和享受编程,能与他们相遇并交流是一件幸福的事。

注:本届 RubyConf China 是举办的第十届,松本行弘在大会上做了《The future of Ruby》的主题演讲。

 关于 Ruby 语言的那些爱与批评

我最开始开发 Ruby 时,没有想过会有这么多人来使用它。我当时想,大概会有百来个人用它,过了几年它就会被人淡忘。令我意想不到的的是,Ruby 后来被很多开发者所使用,越来越多的人参与到 Ruby 语言本身的开发和发展中来,用户们自发在全世界各地成立了开发者社区,这进一步促进了 Ruby 的推广。

Ruby 语言有很多特性,我觉得最为大家喜爱的是它的简洁、高效以及人性化。开发者用 Ruby 写的程序比用别的语言写的程序更简洁。Ruby 非常高效,很多情况下只需要短短几行代码就可以处理很多工作。它非常人性化和灵活,让开发者能够更加专注于编程最有乐趣的部分。这些也许是 Ruby 开发者最喜爱的特性。

的确开发者对 Ruby 语言有很多正向的评价,比如刚才讲到的简洁、高效和人性化。但同时也有开发者不喜欢 Ruby,因为一旦将 Ruby 应用到工作中,由于 Ruby 太过灵活,犯错的概率会随之增大。

从使用 Ruby 的角度来说,我个人认为最重要的是灵活性。当然容易写出 bug 的确很烦,不过我还是想要保留 Ruby 的灵活性。的确有一些开发者跟我抱怨 Ruby 太灵活,还有人说 Ruby 很多东西都是在运行时来决定的,比较麻烦。这些其实是一个取舍的问题。Ruby 会持续改进,进一步提高开发效率。

 Ruby 3.0,coming next

Ruby 团队正在开发 Ruby 的 3.0 版本。(在此前 Ruby 25 周年庆祝会上,松本先生曾表示 Ruby 3.0 有望实现 3 倍提速。)目前 Ruby 还处于 2.X 的阶段,预计 3.0 版本会有比较大的变化,计划发布时间在明年的年底。

3.0 版本针对 Ruby 的一些不足之处做了改进,具体来说:

  • 比如 Ruby 多核利用的问题。现代电脑一般都有多个 CPU,但 Ruby 诞生之初,电脑普遍只有一个 CPU,这就导致 Ruby 目前在设计上还没能完全利用多核,在这方面我们希望有所改进。

  • Ruby 需要测试才能知道数据类型是否正确,这一点也常常被吐槽。更快发现错误能够提高开发效率,所以我们希望引入类型检查的功能。

  • 另外,我们还引入了函数式语言的一些特性,以提高生产效率。

 Ruby 和 Java 是同龄人,也是一个追赶者

Ruby 的确常常被拿来与 Java 作比较。Java 诞生于 1993 年,而 Java 作为一门编程语言正式发布于 1995 年。我开发 Ruby 也是从 1993 年开始的,发布也在 1995 年,但比 Java 要晚一些。所以 Ruby 和 Java 基本上可以算是“同龄人”。

Java 有 Sun、甲骨文、IBM 这些大公司的支持,商业上非常成功。Ruby 一直以来都仰仗社区成员和开发者的支持,从这个角度讲 Ruby 的发展比 Java 慢得多。随着互联网的兴起,因为 Ruby 的灵活性和动态特性十分适合 Web 开发,Ruby 才渐渐为人们所知。

Java 有大量的使用者和开发者,有一个规模庞大的生态圈,Ruby 也希望能够以 Java 为榜样,迎头赶上。

 技术不能解决所有问题

最近几年时常会有人说 Ruby 不如前几年那么火了,甚至有比较毒舌的人说:Ruby 已死(笑)。所有这些言论,其实都可以归结为一种光环效应:当一种新技术产生的时候,受到过度的关注,大众会抱有过高的期待。但是当真正明白这个技术是怎么一回事时,往往又会有点失望。接下来会进入一个稳定期,基本所有技术都会经历这样一个过程。

比如说,现在比较热门的 AI、深度学习,大家都在谈论它们。但是当发现 AI 不是之前想象的那样万能的时候,又会有点失望。

Ruby 也一样,Ruby on Rails 刚出来的时候,因其在 Web 开发上的优势,获得了比较多的关注。但实际上,Ruby on Rails 不是无所不能的,也会有各种各样的问题,人们此后逐渐转向其他技术,Ruby on Rails 的热度也就没有那么高了。

但 Ruby on Rails 的价值并没有随之减少,它仍旧十分适合初创企业快速开发中小规模的 Web 应用。如果能认识到这一点,在适合的场景去使用它,就能体会它的价值 。虽然当应用在几百万用户的 Web 应用或者几千人的开发团队时,有开发者遇到了一些困难,但实际上对于一些大规模网站,熟练灵活地应用 Ruby 和 Ruby on Rails 也是可行的。在国外也有很多用 Ruby 和 Ruby on Rails 开发大规模网站的案例,但需要明确是,Ruby on Rails 并不能解决 Web 开发的所有问题。没有任何一种技术能解决所有问题。

 日本软件行业发展并不好

日本的 IT 产业本身十分依赖大公司,这些大公司本身对于 IT 商业化也不是特别在行。所以说实话日本的软件行业发展得并不太好。

但近几年来,日本出现了很多提供 Web 服务的公司。这些公司大多是中小规模,当然和谷歌、Facebook 这样的巨头不能比,但做得还不错。

话说回来,Software as a production 这样偏保守的 IT 产业特点,的确在商业上不是很有利。总体而言,日本软件行业相对之前来说还是有所进步,之前日本的 IT 产业里创业公司不多,近年来有所增加。

注:日本与中国同在东亚文化体系下,但在软件行业,二者之间差别迥异,尤其是在软件行业的商业化方面,日本距离中国乃至世界都有不小差距。但比较有意思的一点是,日本的顶级技术人物并不在少数,比如本文主人公 Ruby 之父松本行弘,同样还有 Jenkins 之父川口耕介等。另外一点值得称道的是,日本开发者的编程书籍写得特别好,很多国内开发者学习某个语言、框架,都是通过日文编程书籍进行。

 总加班的人,很难做出创新与创造

我从事开发工作已经超过 30 年了。在我刚毕业的时候,日本加班现象比较严重,我当时常常听人说一周上了 100 多个小时的班。这是 30 年前的情况了,一般来说加班有两种人:一种是因为可以拿到加班费,还有一些人是因为工作效率低下而加班。

这两种都是不可取的。作为一个开发者来说,应该尽量提高自己的工作效率,在单位时间内为公司提供尽量多的价值,同时公司也为开发者提供丰厚的报酬,这样是比较理想的状态。还是不要加班比较好啊(语重心长)。

我最开始开发 Ruby,是工作比较闲的时候。当一个人很忙的时候,是基本不可能去创造一个新东西或者搞出什么创新来的。做开发可以改变世界,这是软件开发这个职业的迷人之处。从这个角度讲,提高自己的工作效率,不加班,拥有自由的时间。利用自己的时间创造新的东西,做一些创新性的工作,这才是正道,希望这样的人越来越多,也希望鼓励这种文化的公司越来越多。

 后记

虽然跟松本行弘先生的交流只有一个小时左右的时间,但我们已经收获满满。穿着格子衫、牛仔裤背着双肩电脑包的他给人一种十分亲和的感觉。日本人特有的礼貌让我们在采访过程中非常舒适,反倒是他对着镜头开始时有些羞涩、紧张。随着谈话逐渐深入,讲到技术细节、趣事时,松本先生开始眉飞色舞、手舞足蹈,完全忘记了镜头的存在。

Martz 新书推荐:

揭秘大师级程序员的思维方式

作者:[日] 松本行弘 

译者:郑明智

Ruby 之父全新力作,学习大师级程序员的思维方式。本书全面公开语言设计的秘诀,一边教你设计编程语言,一边帮你解析隐藏在各编程语言背后的设计缘由。最重要的是,还能听故事:语言设计与实现过程中的纠结与取舍,不省略各种试错细节,有趣又有料!

Ruby之父:写Ruby时工作特别闲,总加班的人很难做出创造相关推荐

  1. 写程序时,经常要重载OnPaint,定位很麻烦,现在有个简单办法

    写了一个类,可以象控件一样加载,然后在绘制的时候调用一下Draw,还是觉得挺方便的,现在缺的是设计器的支持,如果有这个就太完美了.   关于设计器的支持,我现在的麻烦是,自己建立了一个设计器界面,但是 ...

  2. 庖丁解牛:Xshell连接虚拟机中的Linux时经常自动断开,断开之后还很难连接上

    文章目录 问题重现: 原因分析: 解决方案 解决方案一: 解决方案二 问题重现: xshell连接虚拟机,一段时间后自动断开,有时候一分钟就短开了. 原因分析: 极大可能是因为IP地址冲突,在IP不冲 ...

  3. 工程师如何实现财务自由:为什么绝大多数人追求财务自由而不得,为什么有些人很有钱仍然拼命工作...

    过年了.收到很多祝愿新年发财的祝福.这里我们就应景的聊一聊关于财务自由的事. 财务自由,相信是绝大多数人追求的目标.工程师,当然也不例外. 当被动收入超过支出,那么就可以认为财务自由了.因此要达到财务 ...

  4. 听Ruby之父畅谈编程语言的设计

    本文摘自<松本行弘:编程语言的设计与实现> 1-1 自己创造编程语言的意义 通过实际创造一门新的编程语言,可以学到编程语言的设计思路和实现方法.随着开源的普及,创造新编程语言的门槛一下子降 ...

  5. Ruby 之父:编程要给程序员带来乐趣

    作者 | 年素清 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 很多人会将编程能力和数学能力挂钩,可在一众泰斗级的计算机专家里,来自日本的松本行弘,是一位数学"学渣&quo ...

  6. 专访Ruby之父:27年初心不改,Ruby绝不会停下脚步

    Rubyist与Matz的合影 松本行弘,Ruby 之父.1965 年生于鸟取县米子市,现居岛根县.筑波大学第三学群信息学类毕业.Ruby 语言发明者,亦是亚洲首屈一指的编程语言发明者.日本唯一的专业 ...

  7. RubyProgramming:向Ruby之父学程序设计pdf

    下载地址:网盘下载 内 容 简 介 编辑 Ruby是为了让程序设计更快乐而开发的程序语言.Ruby具有"彻底面向对象"."丰富的程序库"."亲和力高的 ...

  8. 写文章时,你是不是也有这4个困惑?

    首席作文官(冷雨)作品[胡巴,胡巴,你困惑吗?] 一.文章标题怎么起? 写一篇文章,总得有个标题.什么?无题?那在自媒体时代就没人会去读!这标题告诉读者文章要写什么,中心思想是什么.标题的好坏,直接就 ...

  9. 写论文时要用到的word技巧

    1 WORD里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉.文件--页面设置--版式--页眉和页脚--首页不同 2 请问word中怎样让每一章用不同的页 ...

最新文章

  1. 《实现模式(修订版)》—第1章1.2节那么,现在……
  2. python三十一:random模块
  3. Opencv之生成棋盘标定板
  4. pytorch_pix2pix之argparse
  5. mac80211概览
  6. Vue页面返回顶部功能实现
  7. PHP回纹判断_第四十八章 回纹考核
  8. CCS6.0新建DSP_2833x工程文件详解
  9. 《那些年啊,那些事——一个程序员的奋斗史》——10
  10. 吐血整理:顶级程序员工具集和在线网站大集合~
  11. NLP情感分析——KNN算法
  12. Shodan完全手册部分翻译(1)
  13. 皮卡丘(pikachu)文件包含
  14. 手机如何优雅地自动化登录校园网?
  15. 影创科技孙立:江西将成为施展“鸿鹄”之志的热土
  16. 【BZOJ 3083】遥远的国度 树剖
  17. java 加密指定位数字符串
  18. python多行注释符号快捷键_python多行注释快捷键
  19. php一年过去多少天,php 显示今天是星期几与一年的每几天代码
  20. 详细讲解C语言经典例题:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位

热门文章

  1. opencv resize_利用OpenCV 识别两张相似的图片
  2. java跳转语句包含goto_Java 语句标签实现goto跳转
  3. 用专业的说一句情话 计算机,用电脑专业说一句情话
  4. 图片资源 php,php图片转为资源数据
  5. Vue教程3【使用Vue脚手架】render ref props minin scoped $emit $bus 消息订阅发布 动画
  6. 【c语言】打印*型金字塔
  7. 【c语言】蓝桥杯算法训练 斜率计算
  8. 网络广告计费方式常用术语
  9. 燃爆了!天猫联合天一广场搞事情,800万宁波人坐不住了
  10. 06-Windows Server 2012 新特性 ---- Hyper-V实时迁移