生平:

  松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县。1984年,就读于筑波大学第三学科信息学系。2年后休学,成为末日圣徒耶稣基督教会的宣讲师。大学复学后,加入中田育男教授的研究室。1990年大学毕业。后在岛根大学攻读博士课程,修满学分后退学,未获学位。

  现任株式会社Network应用通信研究所研究员、乐天株式会社乐天技术研究所研究员、Ruby association 理事长、Heroku首席构架师。

  经历篇:

  高中时代:用自己设计的语言编程

  第一次接触电脑,是小学6年级。父亲给我买了一个口袋型电脑L-Kit16,当时真是激动坏了。到了初中3年级,父亲又给我买了Sharp PC-1210,这个时候我第一次知道编程这个概念。只要发出指令,计算机就能按照你的指令进行操作,真是有意思极了!

  我的父亲,是建筑公司的一个普通的上班族。他之所以买电脑,是用来计算建筑数据的。没想到这两台电脑成了我的玩具(笑)。

  回忆起小时候,感觉一天到晚都在看书。我家前面有一个书店,我天天都泡在那里。有时候朋友来玩,我让他到家里来,他却指着书店说:那不是你家吗?那时候什么都看,科幻小说呀,漫画呀。百科全书全都记在脑子里。总之就是特别喜欢文字。实在没东西看,就看药品的说明书(笑)。

  上了高中之后,就迷上计算机了。成天看计算机杂志。能让计算机按照自己的指示来运行,这比什么都有意思。特别是对编程语言非常感兴趣。当时对汇编语言、Basic都不喜欢,不想用它们来编程(笑)。于是我就开始自己发明语言,然后用这种语言来编程,写在笔记本上。不过这本笔记已经不知道去哪儿了,真遗憾。当时连语言的名字都想好了。当然了,不是Ruby啦。不好意思说,哈哈。

  大学时代:不是去图书馆就是去研究室

  大学我考上了信息科学学院。在那里我接触了许多在书中看到但从未使用过的软件和语言。大学里的老师都是我高中读过的书的作者,简直太不可思议了。不过,研究室里我是最不听话的,老是猫在那里设计自己的语言(笑)。

  当时是日本泡沫经济崩溃的年代,但是我一点儿都没有闲着。整天泡在图书馆里,看了许许多多书。休息的时候就去电影院或者是书店(笑)。我不擅长运动,也不关心身边的人都在干什么。我从小就喜欢读书,虽然最近拜网络所赐,读得少了(笑)。阅读各领域的书籍,对我的成长影响很大。另外,我还常常关在研究室里。比如通宵在研究室里弄电脑,到了早上回家洗一下澡,然后再到研究室去(笑)。当时是80年代后期,研究室里已经连上网络了,我常常看BBS、新闻什么的。能接触到很多聪明的人物,觉得非常有意思。

  当时是计算机的黎明期。我父亲是反对我考信息科学学院的。什么计算机,什么编程,当个兴趣就得了。不过我真是太喜欢计算机了。未来的出路我从未考虑过。可谓是义无反顾了。

  经济不景气,开始开发Ruby

  1990年毕业之后,我进了一家软件公司。我找工作有一个原则:坚决不在东京工作。我从小在农村长大,不喜欢人多的地方。花1、2个小时去上班,那简直不可想象。我其实更适合在小地方工作,不过那样的话可以选择的公司就比较少。后来遇到滨松一家软件公司招聘,我就去了那里。

  我的主要工作是公司内部OA软件的开发。当时的电子邮件只能发送文字,我就弄一个可以粘贴附件的软件。有意思。公司一般会给我一个大致的范围,然后让我自由地去发挥。因为喜欢这个工作,所以常常加班到很晚才回家。当时的梦想就是一辈子做一个程序员。即使将来当爷爷了,也要继续工作。

  过了几年,泡沫经济崩溃的后续影响开始显现出来。公司的业务一下子少了许多。时间非常充裕,于是我就想自己干一点事情,开始开发Ruby。这些我都是在公司弄的,也和同事交流过,同事亦给我许多帮助。

  1年之后,我去了另一家公司,叫做名古屋CAD vendor。因为原来那家公司的经营状况已经非常不好了。虽然我对工作很满意,环境呀、人际关系呀都很好,不过当时我结婚有了家庭,考虑的东西就会多一些。万一公司倒闭了,那就比较惨了。而且我也想趁自己比较有优势的时候把自己推销出去。当时能做面向对象的脚本语言的人还是比较少的。

  1995年,松本行弘将Ruby公开于众。反响极其热烈。

  理念篇:

  还是当怪才比较好

  很多人都比较奇怪,我的数学怎么会那么差。高中时我甚至考过全班最低分。擅长计算机的人数学就一定好,这只是人们的臆想而已。

  在日本的教育体制下,学生都被培养成面面俱到可又面面平庸的综合型人才。不过,我遇到的成功人士,大多都是一些在某些方面特别强,但在某些方面特别差的人。我的数学从来就是1(满分为10分),一旦到了程序语言的考试,我则有取得1000分的自信(虽然满分为100分)(笑)。每个人的能力都有上限,综合型人才往往是全面发展,而那些怪才往往专注于磨练他的专长。这样的人走上社会之后,更容易成功。

  我开发计算机语言的初衷

  所谓软件,其目的就是让计算机为人类工作。正因为人类的大脑有一定的能力限度,所以需要让计算机承担大部分的工作,让人脑空出来去解决更难的问题。因此我开发了ruby这样面向对象的脚本语言。

  我为什么不自己创业

  我是一个数学很差的人(笑)。让我算钱,就更差了。很多人都会问我为什么不自己做公司,这是因为我实在不擅长。我现在的工作,能让我自由、专注地开发程序。这样就足够了。

  编程人员不需要擅长数学

  编程人员要做的其实就是倾听客户需求,写下来,然后借助计算机语言让计算机去执行相应的任务。这哪里需要数学嘛?大家不要被表象所迷惑。算术反正有计算器,不用愁。而在计算机的世界里,比数学更重要的,是作为人本身所需要的一些技能。比如倾听能力、理解力等。其中最重要的是沟通能力。

  编程是一种体育运动

  很多人年轻时都热衷于体育运动,有些人上了年纪依然热衷。很不巧,我从小就不擅长体育,不过我能理解那些体育爱好者的感受。体育能够使人生变得丰富多彩。而编程其实与体育有着许多共同之处。可能很多人觉得编程和体育根本不沾边。不过,请你试着想一想,棋类常常被归类为体育运动之一,这是为什么呢?因为它其实是一种脑力运动。

  说到编程和体育的共通点:

  第一,两者都需要通过反复练习才能获得技术上的提升。要想成为一名优秀的程序员,知识和经验都很重要。编程人员常常需要以苦为乐。

  第二,编程对美和速度的追求,与体育相似。优秀的程序言对自己作品中蕴含的程序之美,非常执着。另外,程序员在进行性能调优时的测定行为,以及对自我瓶颈的突破,和游泳以及田径选手有类似之处。

  编程是一种兴趣

  在日本,棒球爱好者可谓多如牛毛,可是真正成为专业棒球手的却是屈指可数。大多数人都是因为兴趣才接触棒球的。同样,有许多人爱好编程,于是世界上诞生了许多开源软件。同时,解决程序bug的过程,和解谜的过程一样,都是充满惊喜的。

  不过和专业的体育选手不同的是,很多专业程序员并不是因为喜爱编程才干上这一行的。这一点,着实是比较悲哀的事。

  编程是一种交流

  在大家的印象里,编程其实就是坐在计算机前敲打键盘。不过这个工作其实非常人性化。至今依然没有出现能够自我编程的计算机,这也说明了编程是一种人类活动,甚至可以说,只有人才能编程。此外,程序编写出来是供给人类使用的。理解人的追求、人的感受,对于编程人员来说是非常重要的。另外,当一个团队联合进行编程工作时,团队成员之间的沟通能力也是不可或缺的。

  编程是一种创造

  多年来,我对编程的热爱从未有丝毫减少。其中最重要的原因是:编程是一种创造性的工作。只要有一台计算机,就能从无到有,构建出一个新的世界。编程的世界中,没有重力、因果等等现实世界中的制约因素。如此自由的创造性活动,除编程外,别无他选。我能通过编程,创造出一个我想象中的世界。这是编程最大的魅力。

  编程是一生的事业

  和许多活动相比,编程不需要体力。如果你不去那些彻夜加班的公司,那基本上年龄和体力都不是问题。编程更需要的是知识、经验、判断力等等,这些都不会因为年龄的增长而退化。换句话说,编程是可以干一辈子的。这一点,和那些专业体育选手略有不同。

  日本有一个说法:35岁是程序员的退休年龄。我的身边的确有许多30岁左右就渐渐远离编程的朋友。与其说是因为他们能力低下,不如说是社会因素使然。在日本的IT界,优秀程序员的价值没有得到充分的认可,再加上论资排辈的传统以及职业价值的不平衡,35岁成为一个分水岭。

  实际上,国外许多著名的编程人员即使到了暮年也依然活跃在第一线。我的大学导师,退休之后依然高产,因为退休使他没有杂事的干扰,能够专心致志地干他想干的工作。干一辈子编程,也是我的梦想。编程本来就是一件有趣的事。因为觉得有趣,所以进步很快,能编出优秀的语言来。如果你觉得编程只是一种谋生手段的话,那还是趁早辞职吧。快乐编程能使你的人生硕果累累,我相信。

  

  原文资料:

  Tech总研对松本行弘的访谈

  《我的编程人生》

  《松本行弘×结城浩:话说Ruby》

  《乐天×松本行弘:世界将会怎样?》

转自:http://kb.cnblogs.com/page/120592/

转载于:https://www.cnblogs.com/flyinghare/archive/2012/01/30/2331524.html

Ruby之父松本行弘的编程人生相关推荐

  1. 我和Ruby之父松本行弘的握手

    5月21日早上,去广大会展中心,参加shanghai on Rails组织的ruby china conference,进会场之前的路上遇见kembo公司的sasaki san和天狗软件的koz sa ...

  2. 人物访谈:松本行弘谈Ruby

    2011年11月11日,图灵社区就Ruby的设计和中国程序员关注的诸多话题,采访了Ruby设计者松本行弘先生,以下为访谈内容. 图灵社区:<松本行弘的程序世界>中文版上市之后,在程序员(不 ...

  3. 松本行弘:我的编程人生

    生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣讲师.大学复学后,加 ...

  4. 松本行弘为什么要开发Ruby

    Ruby是起源于日本的编程语言.近年来,特别是因为在Web开发方面的效率很高,Ruby引起了全世界的关注,它的应用范围也扩展到了很多企业领域. 作为一门编程语言,Ruby正在被越来越多的人所了解,而作 ...

  5. 转:松本行弘:我的编程人生(r6笔记第83天)

    生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣 讲师.大学复学后, ...

  6. 带您走进松本行弘的程序世界

    编者按: 在此书上市之前,特别对此书做一下方向说明,<松本行弘的程序世界>适合各层次程序设计人员和编程爱好者,也可以供相关技术人员参考. 本书的目的不是深入讲解哪种特定的技术,也没有全面讨 ...

  7. Ruby中的设计模式——《松本行弘的程序世界》

    < 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...

  8. [Ruby编程语言].弗拉纳根_松本行弘读书笔记

    Ruby is Object-Oriented, Ruby是一门完全的面向对象语言.Ruby里的每个值都是对象 迭代器(iterator)行为类似于循环,包含在花括号中的代码称为代码块(block), ...

  9. 松本行弘(Ruby发明者):Emacs怎样改变了我的人生

    原文(英文版本)见这里. 以下是我的翻译兼一些技术方面的背景资料: 1 1980年,我开始编程. 2 Basic,400 steps (此句不知如何翻译) 3 1988年,我遇到了Emacs,在学校的 ...

  10. 《松本行弘的程序世界》中文版原作者序

    从年轻的时候开始,我就一直对编程语言有着极为浓厚的兴趣.比起"使用计算机去干什么?"这一问题,我总是一门心思在想着"如何将自己的意图传达给计算机?".从这个意义 ...

最新文章

  1. Linux文件的复制、删除和移动命令
  2. bo耳机h5使用说明_真香时刻·性价比大旗——红米AirDots2 TWS真无线耳机体验测评...
  3. java 分析java死锁_有益的CountDownLatch和棘手的Java死锁
  4. 单词短语搭配用法网站
  5. GPS 校验和 代码_Linux recovery 移除签名校验
  6. Endless Spin
  7. Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
  8. try-expect在集合处理中的应用
  9. 【渝粤教育】国家开放大学2018年春季 0605-22T中国古代文学(2) 参考试题
  10. 一分钟搭建Spring Boot
  11. 【LeetCode】【字符串】题号:*49. 字母异位词分组
  12. MacPorts 命令集合
  13. 计算机桌面左上角 鼠标,鼠标一直跑到桌面左上角怎么解决
  14. 为什么要升级BIOS呢?(1)
  15. 对抗样本生成方法论文阅读笔记
  16. navigation Bar、toolBar、tabbar 区别
  17. android开发文字滚动代码,android实现滚动文本效果
  18. 李永乐(四)初等变换、初等矩阵、分块矩阵——笔记
  19. vivo手机html卸载不了,vivo手机怎么彻底卸载删除软件残留的垃圾文件呢
  20. 性能统计工具 sysstat 使用介绍

热门文章

  1. 支付宝支付提示 4006 ISV权限不足
  2. 运行 java applet_创建运行第一个Java Applet程序
  3. 74hc138译码器实验c语言程序,实验二74HC138译码器实验学生
  4. 金山反间谍清理专家能清除的部分恶意软件清单(截至2007年2月28日更新)
  5. SCADA电力系统基础业务知识
  6. JDBC知识 - 马士兵视频教程笔记
  7. loadRunner之中文语言包安装
  8. 软件测试过程的四个阶段(单元测试、集成测试、系统测试、验收测试)
  9. 【接口测试】Jmeter+ant安装及简单使用教程(集成)
  10. 黑客使用浏览器中的浏览器技术窃取Steam凭证