Linus:开源是 Linux 成功的核心要素 | 摩尔定律已失效

简而言之,如今的 Linus Torvalds
是代码管理者和维护者,而不是开发人员。迅速响应别人发来的补丁,及时给出反馈,并保持维护状态,Torvalds
对此感觉还好,这是一名代码维护者应做的。

谈到目前业内火热的量子计算,Linus
表示他并不看好,“在这件事情上,我是一个非常不相信的人”,Linus
说。同时他也认为现在已经没法看到计算机性能像以前那样迅速加速了,他不相信摩尔定律仍然有效。摩尔定律的基本思想是计算能力每两年会增加一倍,Linus
认为这已经不再应验了,但他也表示这是一件好事:“这意味着我们可能会更关心软件性能,在写代码的时候更加小心,而不是仅依靠硬件性能的提升。”

关于SCM(Software Configuration Management软件配置管理系统
)工具,比如,以Git版本控制系统的问题为例,他回答说:“我不认为工具是最重要的。”

消息来源:ZDNet

(文/开源中国)    

“所以我认为LKML非常重要,但我们不是通过它来保持人们走在正轨上的。所有的开发者都非常主动积极,而且他们都有非常好的意见和想法(核心成员之所以是核心成员因为他们的自我定位)。LKML很重要,因为这是公开讨论的,即使实际中参与某些特定问题的只有特定的一小组人。在开源项目中事情就是和其他不一样。”Torvalds总结道。

最后,Torvalds 还承认,尽管对关于 Linux
所做的事情感到满意,但他仍对自己的能力表示怀疑。“我对 Linux
的一个自我怀疑是,这只是 Unix
的重新实现,对吗?”“我可以给出更好版本的东西吗?”

Linus 还评论了他作为 Linux
维护者的角色以及为开发者社区发展所能做或应该做些什么。“作为一个项目的维护者,你的工作就是确保项目能够正常运行,并使你能够对你所拥有的开发人员做出响应”,Linus
说。他也承认现在他并不知道 Linux
内核中的每一行代码,“看了很多年的补丁,我知道内核中所有区域的大局,我可以看一个补丁,知道它是对还是错。”但他觉得这不一定是坏事,他认为没有人了解整个内核。

当然,Linux就绝对不是同一个层次的了,“对于内核,我们每个release都有成千上万个补丁,而且基本上每三个月就有一个release,所以对我们来说SCM工具就尤其重要了。”他说,“但我仍然不认为这所有大的错误是因为最初几年开发的目标球和补丁,这是一个小得多的项目,而且直到很多年后是因为缺乏管理工具才显现出来。”

Torvalds
解释说,他不再了解编码了,目前写的大多数代码都在电子邮件中。每当有人发送了补丁,他就用伪代码回复。现在的 Torvalds
对编辑补丁习以为常,有时还会将未经测试的补丁直接发送出去。他要做的,就是在邮件中告诉别人“我认为应当这样”。“但这就是我所从事的,我不再是程序员了”。

www.9778.com 1

文章内容如下:

在近期举行的欧洲开源峰会上,Linus Torvalds 与 VMware 的首席开源官 Dirk
Hohndel 进行了公开对谈。期间,他表示不再认为自己是一名程序员。

Linux 现在依赖于一组内核维护者和子维护者来处理内核的特定领域,因此 Linus
指出,如果他被一辆公共汽车撞到,那么这对 Linux 将不会有任何影响,毕竟
Linux 内核有那么多内核维护者在不断地开发着。他认为工作流比代码更重要,如果你有正确的工作流,代码会自我清理、发现
bug 并知道如何去处理。另一方面,Linux
内核不断变大的规模导致了它的复杂性,Linus
认为在这个过程中,开源模式使得复杂性问题得到解决,并且它也成为了 Linux
成功的核心要素。他表示:“如果出现了复杂性,你无法在封闭的环境中去管理它,你需要让那些真正发现问题的人去参与并帮助解决它们。处理复杂性的唯一方法是公开交换意见。”

关于开发工具的重要性

实际上 Torvalds
的工作内容不仅仅是读写电子邮件。他认为自己工作的本质是对人说“不”,必须有人对一些补丁或
PR
之类的说“不”。在他看来,如果开发者得知有被拒绝的可能,将会更好地编写代码。

在 8 月 31 日的北美开源峰会上, Linus Torvalds 与 VMware 首席开源官 Dirk
Hohndel
进行了一次对话,两人聊到了包括量子计算、摩尔定律、Linux
的开发过程以及没有 Linus 指导的 Linux 的未来等话题。

“现在重要的是你的项目是否有一个好的工作流程,工具当然能够启到帮助的作用,”他说,“但是,大多数的项目其实并不是必须要使用这些工具。许多项目其实并没有那么多改动,多到必须要在他们整个工作流程中使用这些工具;如果你在每个release中只有几百个补丁,你可以随便怎么维护他们,完全手动也不是问题。”

这些听起来也许有些无趣,毕竟 Linus Torvalds
算是众人皆知的有趣人士,他的早期自传就叫《只是为了好玩》(Just for
Fun)。Torvalds
承认了这一点:“也许有些不好玩的是,我们必须制定很多规则。过去比较随心所欲,现在人们的态度更加认真。没错,我可能大部分时间都在阅读电子邮件,但部分原因是,不这样做的话我会更加无聊。”

关于信任,托付和保持清醒

Torvalds最后总结道:“有太多的项目将代码质量置于用户之上,结果两边都不讨好,而且还不肯承认错误,因为他们觉得是在“修复”问题,并且一点都没错。”

Torvalds就第二个问题上继续展开言论,他说:“这就是为什么Linux内核团队无法容忍这种‘脱离本质’的东西。比如,为了“修复”某个问题而打破原来的用户体验绝对是错误的观点;千万不要这么干。如果你破坏了用户体验,或许你觉得是在修复问题,但你就犯了刚才说到的第二个错误——你以为代码质量比用户重要,大错特错。”

接下来说说它怎么工作的,“大多数人其实不阅读LKML,他们经常让它自动存档,只对某几个关键词或关键人物参与的话题感兴趣。”它其实有点类似于某种存档机制。人们可以在日后查阅它,而且很多Bug可以通过Google找到LKML中以前报道的记录。如果某人提出了一个问题,它可能只是个别硬件问题,但如果Google后发现在LKML中已经被提交过几次了,那这个问题原因会有点不确定,但必然不是个案。”

他还说,“一些工具积极鼓励工作流程,我认为CVS(Concurrent Versions
System并发版本控制系统)”例如已经影响了很多项目,使他们有了一个概念“承诺团体”,

其一:“大都数人认为可以把事情丢给其他人,让他们帮忙。在你公开你的想法后,你得假设自己一个人要干完全部的活,然后你在网上征求人们的意见,你应该询问自己该干什么,而不是他们该干什么。或许开始他们会偶尔帮助你解决一些实际问题,但是,必须从一开始就告诉自己这份工作只有你一个人负责,并且做好完成它的准备。”

以上就是全部内容了。这就是Torvalds怎么做的,如果你觉得你比他好,先问问自己:有创造过一个在大多数超级计算机、股票交易和类似于Google这样的网站上运行的世界级的操作系统吗?如果你的答案是没有,如果我是你,我会重新读一遍他的答案并且好好想想自己是怎么维护项目的。

现在的人们是怎么一起工作的呢?我向Torvalds提问了关于正在实施中的LKML(Linux
Kernel Mailing
List ,用来将讨论话题转发给各位开发者。)他回答说:“我认为过去在LKML上发生的讨论比现在的多。LKML中的signal-to-noise和纯信息量表明大多数开发者没有时间仔细地去读LKML——最多他们会扫一下标题栏。所以,现在我主张大多数开发者都在独自完成工作,然后他们会在一个大的开发者范围中发送email告之对方是如何完成的”。

Linus
Torvalds说,有两件事,世界上大都数人,无论是独立开发者还是公司级别的开发团队,都有普遍的错误认知。

“如果我从中学到了什么的话,那就是你必须学会放手,不要试图控制别人和他们的代码。如果你不信任别人,而一定要监视着他们的话,还是早点放弃这个负责人位置吧。”

Torvalds还说,“你只能偶尔关注一下细节,而不是老是站在开发者后面监视他、检查他写的每一句代码。我相信分负责人做的事99%都是没问题的,然后偶尔我会大声抱怨一些东西。”比如说GNOME桌面系统正在怎么改进,或者根本没有改进。

曾经Linux是一个个人项目。现在他有成千上万的提交者和贡献者。接下来我问道:“现在有多少工作你是交付给其他人做的?对于如何分配才能保持人们思路清晰和遵循工作流程你有什么想法?”

导读:没有人比Linus
Torvalds更了解软件开发项目管理中的酸甜苦辣了。作为Linux的创建者,Torvalds在过去二十年指导了数以千计的开发者共同改进开源操作系统内核。

www.9778.com,转注:英文原文写于 2011 年

“并不是说LKML不重要,而是说LKML已经成为了独立开发者的公共纽带。所以事情最后会变成这样:你其实只有4-5个人一同参与一个讨论,但是LKML会转发并且让其他人有机会能够参加进来,而不是让他成为一个封闭的讨论。”

如何把大家都保持在正轨上

他说:“是的,我经常会跟别人纠结一些细节,但不是因为我不信任别人或不愿分配给他们权限。而是因为一些小错误最后会闹到我头上。要么是个Bug(而且都是一些平时忽视的小错误),要么是一些把我弄烦了的工作流程问题(就像今天早些时候我向一个分负责人抱怨开发者的名字显示不正常)。”

Torvalds继续说,“我个人认为tar-balls和补丁相比他来说要好得多,因为他们使开发者都是“平等”的。而且你不会遇到这种情况:一些开发者有委员权限而其他的人都是二级权限。有时全部人都只有二等权限要比有人有特权要好得多。”(注:Torvalds很熟悉CVS很而且非常讨厌有很多年时间了。就如他在Google
Talk
2007所说的,“我讨厌带着许可证的CVS”。)Torvalds还说:“比工具更重要的是人,是维护者和他们的思想。”

其二:“人们往往认为自己写的代码是最重要的东西,而事实不是这样。即使你编写了100%的代码;即使你是世界上最好的程序员并且从来不需要任何帮助。然而最重要的东西也不是你写的代码,而是代码的用户。代码本身不重要;只有当用户真正用到它的时候项目才是有用的。之所以提到这一点是因为它不只是一个程序员的问题,我见过一些公司把追求完美的程序当做事情的全部。”

如果你一开始就认为全世界的人们都会联合起来为你的项目工作,一起创造一个更美好的世界,那么你可能不会走得很远。