卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/09:05
登录|注册

第12期 | 因兴趣而诞生的Ruby

讲述:池建强大小:8.30M时长:09:05
你好,这里是卖桃者说。今天想跟你聊聊 Ruby 之父松本行弘(Yukihiro Matsumoto)和他的一些理念。
松本行弘是诸位语言之父中少有的亚洲人,他 1965 年出生在日本,第一次接触编程这个概念是在初中的时候,他的父亲给他买了一台口袋型电脑 Sharp PC-1210 。这种只要发出指令,就能让计算机按照自己意志去运行的感觉,让松本行弘深深着迷。随后,这台电脑成了他最喜欢的玩具,并在上面用 Basic 写了第一个程序。
松本行弘认为编程是一件非常有意思的事情,并在一次采访中用“可爱”来形容它,原话是这么说的:
这有点像训练小狗,你对小狗说“来,把东西放在我手上”,它就会把东西叼到你的手上。同样,你对计算机发出指令“请计算一下”,它就会帮你计算好。看到计算机这样努力的样子,我打心眼里觉得可爱。
沉迷于编程的技术人们一般都会用有趣、极客、挑战性等等词汇来形容编程,这还是我第一次看到有人用可爱来形容编程。有句话恋爱中的话不是这么说的么?“当你觉得一个人无论做什么都可爱的时候,那就是完全沦陷的时候了。”
松本行弘对编程的热爱就这么一直延续了下去了。大学的时候,他自然而然的选择了信息科学学院。但这个决定遭到了父亲的反对,当时是计算机的黎明期,未来的出路其实并没有那么明朗,但因为松本实在是太喜欢计算机了,这些问题他都没有去考虑,可以说是义无反顾了。所以说很多时候都是这样,你没那么功利,反而做出了伟大的成就。
大部分技术人喜欢计算机,都处于应用层面,想着用计算机来做点啥,比如辅助计算、开发游戏等等,松本行弘就不一样了,他对编程语言本身更感兴趣,沉迷于如何把自己的意图更好的传递给计算机,让计算机计算的更快,让编程更方便,也能带来更多快乐。
1990 年,松本行弘大学毕业后加入了一家软件公司,但那个时候,日本还在承受着泡沫经济崩溃带来的影响。加入后没几年,到了 1993 年的时候,他所在的公司就没什么业务了。公司不景气,也没裁员,松本行弘就有了大把的空余时间,出于兴趣,他开始开发 Ruby 这门编程语言。
这其实不是松本行弘第一次设计编程语言了,早在高中时期,因为不喜欢用汇编语言和 Basic,也不想用它们来编程,就开始自己尝试设计新的编程语言,并用这种语言在笔记本上编程。到了大学时期,也设计过另外一种和 Eiffel 非常相似的静态语言,当时设计的语言是以学术研究为目的的。
解释一下,Eiffel 是一门诞生于 1985 年的面向对象编程语言,当时还挺流行的,现在已经没什么人知道了。Eiffel 强调契约式设计,即所有的方法都必须设定执行前需要满足的条件和执行后需要满足的条件。条件不满足,就报异常。Ruby 在早期开发中参考了 Eiffel 中的保留字。
松本行弘开始想设计一门真正的编程语言来做为自己的工具。经过长时间的思考,他觉得还是动态语言实际用起来比较好。选择动态语言还是静态语言,算得上是松本行弘在设计过程中做出的“最大”的一个判断了。
确定了要开发一门动态语言之后,松本行弘广泛对比了各种编程语言,包括 Smalltalk、Lisp、Perl 等等,开始将一些优秀的语言特性吸收到 Ruby 中。比如,Perl 的文字处理和正则表达式,Unix 里的文件和管道技术,Smalltalk 的面向对象编程和 Lisp 的函数式编程方法等等。
但一门新语言,如果只是采撷百家之长而没有自己的特色,出来注定是个四不像的作品,没有生命力并失去它作为一种新的语言存在的价值。在 Ruby 中,松本行弘也设计了很多全新的特色,比如为了解决多重继承的难题,克服 Java 的接口设计缺陷,松本行弘设计了 Mix-in 模块。Mix-in 是降低多重继承复杂性的一个技术,最初在 Lisp 中开始使用。
实现 Mix-in 不需要编程语言提供特别的功能,只要按照语言设定的规则来限制多重继承就可以了。对 Ruby 语言感兴趣的读者可以看下 Mix-in 的代码实现,因为咱们不是讲语言特性,我就不在这里做详细描述了。
到了 1994 年的时候,松本行弘独立完成了 Ruby 的第一个 Alpha 版,那年他才 28 岁。随后在 1995 年,他对外发布了 Ruby 的第一个版本。Ruby 灵活的语言特性给动态编程语言注入了新的活力,在提高了开发者工作效率的同时,还让编程变得更有乐趣,所以很快在日本流行了起来。
在 Ruby 的发展过程中,还有两个关键人物不能不提,一个是 Dave Thomas,他在 2000 年首次将 Ruby 介绍到了英文社区,引起了全世界程序员的关注,在此之前,Ruby 主要是在日本流行。另一个是丹麦人 David Heinemeier Hansson,他用 Ruby 开发的 Web 框架 Ruby on Rails,在那个时代以脚手架的方式极大的提升了 Web 应用开发的速度,被当时很多人视为“软件开发的银弹”,直到今天依然具备蓬勃的生命力。随后,Ruby 开始在全球范围内流行起来,并于 2006 年斩获 TIOBE “年度编程语言”的称号。
虽然松本行弘自称自己是“语言 otaku”,也就是“语言宅男”,但他的思想却一点儿也不“宅”,在他的整个编程生涯中,一直非常重视“人”的作用。虽然看起来程序员只是坐在计算机前敲打键盘,但这个工作其实非常人性化。至今仍然没有出现能够完全自我编程的计算机,这也说明了编程是一种人类活动,甚至可以说,只有“人”才能编写出规模化可用的程序。与此同时,程序写出来是给人类使用的,因此,理解人的追求、人的感受,对于编程人员来说就非常重要了。
在最开始开发 Ruby 的时候,松本行弘完全是出于兴趣,并没有想过“让全世界的人都来用它”或者“这下子可以大赚一笔了”,一个仅仅是从兴趣开始的项目却在不知不觉中发展成了如今的规模,Ruby 有了广泛的社区和开发者,成为了一门成熟而流行的开发语言。
松本行弘没有觉得开发一门编程语言有多么难,语言就是用来进行交流和沟通的,可以说,每个开发者平时设计的代码、API 和接口等等,其实都是一门“语言”。
只要有心,人人都能成为编程语言的设计者,当然前提是要转变一下想法,把“编程语言是别人给我们的,我们只能被动接受”这种看法,转变成“自己创造一种编程语言也是一件蛮有意思的事嘛”。
听了这么多,你有自己设计一个语言的冲动吗?你是 Ruby 语言的用户吗?欢迎在留言区谈谈你对松本行弘和 Ruby 语言的看法。
好,今天的话题就先聊到这里,卖桃者说,明天见。
(编辑:成敏) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 金子菇凉的铁粉小逗
    老板,我就想问,极客时间啥时候能出套ruby的课程?

    池建强回复: 规划中了

    3
    10
  • 吃草🐴~
    惭愧,同为 28 岁,松本行弘已经开发语言了,而我还在学着封装公用方法方便日后的开发。人家是制定规则,而我仅仅是遵守规则,按照规则优化,感觉完全不是一个数量级的。还是要拥有更高的眼界,才能做到开发一门语言~加油加油!

    池建强回复: 天才很难比拟啊

    2
    4
  • allean
    啥时候出redis?

    编辑回复: 这个还在磨合啊

    3
  • ca01ei
    还真会出Ruby的课程啊?感觉在国内用Ruby的很少,而且有越来越少的趋势。

    池建强回复: 会比较晚一些

    2
  • 子杨
    池大,在文章下面留言之后,作者回复如何才能收到提醒?每次都要打开自己的留言看老师有没有回复,有点烦。

    池建强回复: 下载最新版本,消息中心会提醒哈

    1
  • Taylor
    真正的热爱创造了一个新的语言,做自己喜欢的事,用程序表达出人的思考,思想。设计语言是一种主动思考。
    4
  • 匠心零度
    池老师对各语言的历史很感兴趣
    2
  • 李洪亮
    任何事物的诞生都是由于一个不明确的契机产生的
  • 小斧
    每一个语言都有它的优势与弱点,找到自己自己的兴趣点很重要。
    2
收起评论
显示
设置
留言
9
收藏
41
沉浸
阅读
分享
手机端
快捷键
回顶部