[TED] Linus Torvalds: Linux 背后的智者

Linux 之父 Linus Torvalds 是一个怎么样的人?他平时是怎么工作的?Linux 这么大的一个项目,大家如何协同开发?2016 年,他做客 TED,为我们展现了他鲜为人知的一面。他两次推动了技术的革命,第一次是 Linux,第二次是 Git,下面的访谈,详细记录了他为什么要做这两个项目, 他对开源的看法,以及他对自己的评价。

视频地址

Chris Anderson(下文简称 CA ):有件事情很奇怪。你的软件,Linux,运行于数百万的计算机中, 可以说是他驱动了网络。我想,全世界正在使用将近15亿台的安卓设备。每一台里都有你的软件。这非常了不起。你肯定有一个特别高大上的总部来实现这一切。我以前真这么想——到我看到这张照片(如下图),我被震惊了。真的惊了,这就是linux总部。

(笑声)

(掌声)

Linus Torvalds(下文简称 LT ):好吧,让大家失望了。我不得不说,这张照片里最有意思的地方,被最多人问起的地方,就是那种会动的办公桌。这是我办公桌最有趣的地方,虽然我现在不怎么用它了。我觉得两者是有关系的。

我的工作方式是…。我不想要太多外来的刺激。大家能看到,我的墙是淡绿色的。据说精神病院的墙就是这种颜色。

(笑声)

这种颜色能让你平静,不会刺激到你。

其实大家看不到我的电脑(主机),只能看到我的显示器,我对电脑最主要的要求 —— 并不是性能强劲,尽管我也爱 —— 就是它必须没有任何声音。我认识一些在谷歌工作的人,他们在家里都有小型的数据中心,我可没这习惯。我的办公室也许是你见过最无聊的一个。我喜欢独自一人,享受安静。如果有猫进来,它会坐在我的大腿上,我喜欢听猫打呼噜,而不是听特烦的电脑风扇的声音。

LT:太了不起了,你的这种工作方式,才能让你运行如此庞大的一个技术帝国——确实是一个帝国——这是开源(软件)强大力量的一个最好例证。

请告诉我们你是如何理解开源的以及它又是如何一步一步发展成Linux的。

LT:我现在还是独自工作。真的,我独自一人在家工作,经常穿着浴袍干活。当一个摄影师来的时候,我才会穿戴整齐,所以(这张照片里)我是穿着衣服的。

(笑声)

我一直以来就是这样工作的。Linux也是这样诞生的。Linux并不是一个合作的产物,它是我一系列项目中的一个,纯粹出于当时自己的需要,部分原因是我需要得到结果,但更重要的原因是我享受编程。这段旅途的终点,在25年后的今天,我们仍未达到。当年我只是想做一个完全属于自己的项目,我压根就没想过开源这件事情。

但在那之后,随着项目越来越大,你会开始想让别人知道。感觉就像“哇,快来看看我的成果!”,但说实话,刚开始并没那么好。我把它放到网上供人下载,当时甚至还不是开源的。当然,所有的代码都是开放的,但我并没有想过要用我们今天所熟知的开源方法来改进它。我当时想的是, “看,这是我折腾了半年的成果,我想听听大家的意见。“

有人来找过我,在赫尔辛基大学,我有一个朋友是做开源软件的——当年还叫免费软件——他让我了解到,“嘿,你可以用那些已有的开源许可证”我考虑了一段时间。我其实有点担心商业利益牵涉其中,我想,很多人一开始会跟我一样,担心自己的工作成果会被人利用,不是吗?于是我决定了,“不管了“。然后…

CA:然后某一天,一些人对你的代码提出了些建议,你觉得“哇哦,真是不错,我都没想到这一点。对改进软件很有帮助。“

LT:其实最开始没有多少人直接改代码,而是提出很多的想法。让别人看一下你所做的项目——我想在其他行业也是这样——有人对你的代码感兴趣,仔细研究过,能给你反馈,给你建议。对我而言是非常重要的一件事。

当时我21岁,还很年轻,但在那之前,我人生一半时间都在敲代码。 之前的每一个项目都是我独自完成的。有人开始评论我的代码,给予反馈,真是头一遭。他们甚至还没开始改代码,当对我来讲足以载入史册,因为我觉得,“我爱世人!”,别误会我, 其实我并不合群。

(笑声)

我并不爱世人

(笑声)

我爱电脑, 我喜欢通过发邮件互动, 因为这样能给你缓冲。 但我真正喜欢的是 人们给出评论,参与我的项目。 这样能让我的项目快速成长。

CA:有没有那样一个时间点, 你发现自己一直在做的项目 突然开始成型了, 你对自己说, “等一下,这事儿也许能做成, 不单单是一个我能得到良好反馈的个人项目, 而是能在整个科技界掀起轩然大波的大事”?

LT:还真没有。 对我而言,最重要的时刻 并不是它变大的那一天, 恰恰是在它还不够大的时候。 对我而言,当我不再独自工作, 有10个人,或者100个人加入进来—— 这才是一种突破。 之后事情就顺其自然了。 对我来说,从100人到100万人, 并不是那么重要。 其实我的意思是,如果你……

(笑声)

如果你是想把自己的成果卖掉, 那确实就很重要—— 别误解我的意思。 如果你感兴趣的是科技本身, 是这个项目本身, 那么最重要的就是找到志趣相投的人。 之后这个群体会自发壮大。 并没有一个特别明显的时间点,我会觉得 “哇哦,这事儿快成了!”因为—— 这个时间非常漫长。

CA:所有我采访的技术专家们 都对你赞不绝口, 说你极大改进了他们的工作。 不光是Linux, 还有Git, 是一种软件开发管理系统。 简单介绍一下它以及你在其中扮演的角色。

LT:我们遇到的问题之一, (在项目开始后)一段时间后才开始显现, 就是当你…… 从10个或者100个人参与一个项目, 增长到1万人的时候,而这—— 关于(Linux)内核,我们碰到的问题是, 每次更新都有1000人参与, 而更新频率是每两、三个月一次。 这其中有些人作用不大。 有很多人能做出小小的改进。

但要进行维护, 所需要的工作量就会大大增加。 我们吃尽了苦头。 有时候甚至整个程序 都仅仅是为了对源代码进行维护。 CVS曾经是最流行的, 我恨透了它,连碰都不想碰, 我喜欢更基础、更有趣的方法, 但其他人又不喜欢。

CA:(笑声)

LT:我们陷入了僵局, 成千上万的人想参与进来, 但很多时候,我成为了那个断点, 我无法让自己跨出那一步, 同上千人合作。

因此Git是我的第二个大项目, 它存在的意义就是维护我的第一个大项目。 事实上这就是我的工作方式。 我编程并不是为了…… 我编程是因为好玩, 但我也想做一些有意义的事情, 因此我设计每一个程序 仅仅是因为我自己需要 而且……

CA:因此,实际上,Linux和Git的出现, 都是意外的收获, 仅仅因为你不想跟太多人一起工作。

LT:千真万确。没错。

(笑声)

CA:太牛了。

LT:可不是吗。

(掌声)

你带来了技术革新, 不是一次,而是两次, 我们试图去探寻背后的原因。 你给了我们一些线索,但是…… 这是一张你小时候的照片, 你手里拿着魔方。 你刚才提到,你从10岁、 11岁就开始编程了, 人生的一半,

你是那种电脑天才,技术宅吗? 你在学校里是无所不能的明星吗? 你是个什么样的孩子?

LT:没错,我觉得自己就是宅男的原型。 我是说,当年…… 我并不喜欢跟人打交道。 那是我弟弟。 显然我对魔方更有兴趣, 完全无视我弟弟。

(笑声)

我还有个妹妹,她不在照片里, 当我们全家聚在一起的时候—— 我家人不算多,但我有好几个侄子侄女—— 她会事先给我打预防针。 在我进屋之前,她会说, “好的,你要注意什么什么……” 因为我其实…… 我是个技术宅。 我喜欢电脑, 喜欢数学, 喜欢物理。 我擅长这些。 但也没到出类拔萃的地步。 就像我妹妹说的, 我最突出的品质就是不放弃。

CA:好的,那我们就来聊聊这个, 这很有意思。 你不轻言放弃。 也就是说,不是因为技术宅或者聪明, 而是因为……固执?

LT:没错,就是固执。 就像, 我开始做一件事情, 我不会说,“好的,我不干了, 我要去干点别的…… 看,比如那个!”

我发现我在做其他事情的时候也会这样。 我在硅谷生活了7年。 一直在同一家公司上班, 那可是在硅谷哦, 从未换过。 这简直闻所未闻。 尤其在硅谷这个地方。 硅谷最大的特点就是,人们总在跳槽, 一会这一会那。 而我不是这样。

CA:但在Linux系统发展的过程中, 这种固执有时会让你和别人产生冲突。 给我们讲讲这个。 维持已有成果的质量是不是非常必要? 你会如何来形容之后发生的事情?

LT:我不确定这是不是非常必要。 还是说回到“我并不合群”这一点, 有的时候我还…… 可以说, 不太理解他人的感受, 经常会说话伤到别人。 对此我感到很抱歉。

(掌声)

但与此同时, 有人告诉我,我应该友善一些。 然后我会跟他们说,可能你是友善, 但你应该更加富有侵略性一些, 他们会把这个当成我的不友善。

(笑声)

我想说的是我们是不同的。 我不是个合群的人, 对此我并不感到骄傲, 但这就是我。 而我喜欢开源软件的一点就是, 它能让形形色色的人在一起合作。 我们不必相互喜欢—— 有时候我们甚至互相讨厌。 是真的,我们经常吵得不可开交。 但是你会,你会发现许多事情—— 甚至都没法同意保留不同意见, 因为大家的兴趣点真的不一样。

回到我刚才说过的, 我担心商人们利用我们的劳动成果, 但没过多久,我发现, 这些商人都是非常非常好的人。 他们做那些我不感兴趣的事, 关注点与我完全不同。 他们使用开源软件的方法跟我不一样的。 但正因为是开源的,他们可以这么干, 而且实际上效果很好。 我甚至认为跟我使用的效果一样好。 我们需要合群的人,需要能与人交流的人, 需要温暖友好的人 就像…… (笑声) 喜欢拥抱你,带你走进这个圈子。 但不是每个人都能做到。 比如我就做不到。 我关注的是技术。 有的人关注用户界面。 我死也做不来用户界面。 举个例子,如果我被困在一个孤岛上, 逃出生天的唯一办法 是设计一个漂亮的用户界面, 我宁愿死在岛上。

(笑声)

人跟人是不一样的, 我并不是在找借口, 只是想解释给大家听。

CA:我们上周见面的时候, 你聊到自己的一些其他特点, 我觉得很有意思。 是关于品味的。

我这里有一些图片。 我觉得这一段代码就没什么品位, 而这一段要好一些, 相信大家一看便知。 这两段代码有什么不一样?

LT:这是…… 在座的有哪些人编过程?

CA:我的天啊。

LT:我敢保证, 刚刚举手的每一位, 肯定做过单向链表。 它是在…… 这个,第一段不怎么漂亮的代码, 基本上是在你刚开始学编程的时候学到的。 你不需要真的理解这段代码。

我觉得最有意思的 是最后一个“if”语句。 因为在单向链表中—— 这里是试图将一个已存在的入口移出链表—— 不同之处在于这是第一个入口 还是一个位于中间的入口。 如果是第一个入口, 你需要将指针改向第一个入口。 而如果位于中间, 你需要将指针改向上一个入口。 这是两种完全不同的情况。

CA:这一个比较好。

LT:这一个比较好。 它没有if语句。 这完全不影响—— 你不必了解这里为什么没有“if”语句, 你需要了解的是 有时候你可以换个角度看问题, 重写代码,排除特例, 完美覆盖所有情况。 这就是好的代码。 同时也很简单。 这是最基本的原则。 其实这都不重要—— 当然,细节非常重要。

对我来说,我愿意与之共事的人, 必须有好的品位,这就是如何…… 我举的这个例子很傻, 没什么意义,因为实在太短。 好的品位体现在更长的代码里。 好的品位体现在能看清全局 甚至有一种直觉, 知道怎么把事情做漂亮。

CA:好的,让我们来总结一下。 你有品位, 当然是对于程序员们而言, 你很有品位——

(笑声)

LT:对在座有些人而言,是这样。

CA:你是个非常有才华的电脑程序员, 你异常固执。 但肯定不止这些。 因为你是改变了未来的人。 你一定有实现未来宏伟愿景的能力。 你是个有远见的人,是吗?

LT:其实在过去两天里,我在TED大会 觉得不太自在 , 因为有很多关于未来的想象,对吧? 我并不是一个有远见的人。 我没有制定未来五年的计划。 我是一名工程师。 而且我觉得,真是—— 我是说——我非常乐意跟梦想家在一起 他们行走四方,仰望苍穹, 看着满天星辰说,“我想到那儿去。” 但我是低头看路的那种人, 我只想填好眼前这个坑, 不让自己掉进去。 我是这样的人。

(欢呼)

(掌声)

CA:上周你跟我聊过他们俩。 他们是谁?你跟他们有什么关系?

LT:这其实是技术界的一个老故事了, 特斯拉和爱迪生之争, 特斯拉被认为是一名有远见的科学家, 总是有疯狂的想法。 大家都爱特斯拉。 你看,还有人把自己公司也叫这个名字。

(笑声)

另一个人是爱迪生, 经常被嘲讽说他是一个单调乏味的人, 而且—— 他最有名的一句话就是, “天才是1%的灵感加上99%的汗水。” 而我是爱迪生一派的, 尽管人们经常讨厌他。 如果你比较一下这两位, 特斯拉很能抓眼球, 但真正改变世界的是谁? 爱迪生也许不是个讨喜的人, 但他做了很多事—— 他也许没那么天才, 不是那么有远见。 我觉得自己更像爱迪生而不是特斯拉。

CA:TED大会这一周的主题是梦想—— 宏伟、大胆的梦想。 而你却像碎梦人。

LT:我会试着收敛一些。

CA:太好了。

(笑声) 我们接受你,我们爱你。

谷歌和其他许多公司 使用你的软件, 挣了非常多的钱。 你会觉得不爽吗?

LT:不会。 原因有很多, 其中一个原因是,我过得不错。 真心不错。

另一个原因就是—— 如果我不将它开源,而过于纠结的话, Linux就不会发展成今天这样。 而且Linux让我有了许多经历, 尽管我不喜欢,比如在公开场合讲话, 但同时,这也是一种历练。 相信我。 很多事情让我成为了一个快乐的人, 我觉得当初的选择没有错。

CA:开源软件这个想法—— 我想这是最后一个话题—— 开源软件这个想法已经在全世界实现了吗? 还是说还有潜力可挖, 还有很多可以做的?

LT:我有两个想法。 我认为开源软件如此成功的原因之一 在于归根结底, 代码是一个非黑即白的事情。 我们有非常明确的方法来分辨, 一段代码是行还是不行。 代码要么运行成功,要么失败, 这就意味着没什么可争议的。 我们有很多争议,不是吗? 在其他许多领域—— 人们探讨过公开政治和其他类似的事情—— 有时候真的很难去说, 没错,你可以在其他领域也采取同样的原则, 因为在那些地方不是非黑即白的,有灰色, 也有其他颜色。

因此,科学界的开源显然是一种回归。 科学最初是开源的。 但之后变得越来越封闭, 只存在那些昂贵的科学期刊上。 开源让科学回归了, 我们有了arXiv和开放期刊。 维基百科也改变了世界。 还有其他许多例子, 我觉得未来还会有更多。

CA:但你不是个有远见的人, 这些事跟你没啥关系。

LT:当然。

(笑声)

得靠你们去实现了,对吗?

CA:没错。

Linus Torvalds, 谢谢你的Linux,谢谢你为互联网做的一切, 谢谢你为安卓手机做的一切。

谢谢你来参加TED大会, 让我们更加了解你。

LT:谢谢。

(掌声)

发布了106 篇原创文章 · 获赞 69 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u014142379/article/details/103713353