专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
码农翻身  ·  千万别学Rust! ·  昨天  
程序员小灰  ·  海康威视,开了体面的薪资! ·  6 天前  
码农翻身  ·  世界上最伟大最邪恶的软件发明 ·  2 天前  
51好读  ›  专栏  ›  程序员大咖

Linus:鄙视用道德绑架开源的行为

程序员大咖  · 公众号  · 程序员  · 2017-04-29 18:35

正文

(点击上方公众号,可快速关注)


英文:linuxfr.org,编译:51cto
译文:http://os.51cto.com/art/201105/262279.htm


在 Linux 开始发布时,Linus Torvalds 为何选择非 GPL 许可而不是 GPL ?让我们一起来看看 Linus Torvalds 的回答。本文是 LinuxFr 2011 年对 Linus Torvalds 的采访。

LinuxFR:截至目前,你已经从事了大约20年的Linux开发,我们知道这是一个辛苦的工作,不知道你现在是否还和当初一样感觉很有趣,很兴奋?

Linus Torvalds:哦,当然!我仍然觉得这是一件有趣的事情,部分原因恰恰是因为我为它做了20年的工作。我不想将其称为一个“辛苦”的工作,它仍然充满挑战和趣味,但我认为我已经轻车熟路了。

LinuxFR:你为什么选择将Linux内核最初的非GPL版权转为GPL许可?是出于道德还是现实需要?

Linus Torvalds:是为了现实需要。我最初选择的许可考虑到了道德方面的原因,但它显得过分严格,知名度也不高。转向GPL解决了原许可模式存在的问题,越来越多的人拥护,并主动为我宣传。

LinuxFR:我知道你认为你自己是一个非常务实的人,而不是一个预言家,但不知你是否赞同GPL许可协议中关于道德部分的内容?

Linus Torvalds:我用两个不同的方法来回答你这个问题,并说说我为什么要用两种方法。

首先,我个人非常鄙视那些将道德和GPL相提并论的人。我认为这完全是胡说,为什么?因为道德是人们的隐私,无论何时,你在一份协议中使用道德来约束其他人应该做什么事情,你首先就是不道德的,你只是一个道貌岸然的伪君子。

但第二个答案是,我个人觉得GPL(v2)和我的想法最吻合。我的确很喜欢编程,我希望将我的经验和别人分享,我认为只要你能想到就一定能做到,但要提高的确需要前人的经验,这对开发人员来说是一条捷径。

因此,我个人认为GPL v2最符合我的口味,就好像生活找对了方法一样美好,但我认为正确的方法不应该只有一个,我也从事一些商业编程,我也喜欢分享,我觉得这是平等的(嘘,他们是付了钱的)。

我认为GPL v2是一个伟大的许可协议,我出于个人原因而使用它,我想很多人也和我有同样的看法吧。但我真的想指出的是,许可协议和道德本身是没有干系的,好比很多人认为BSD许可协议具有更多的自由,所以它是一个更好的许可协议;但也有一部分人更喜欢使用保留所有权利的许可。当然每个人都有自己的选择权,我没有丝毫贬低他们的意思。

但是,企图将任何特殊的许可当做道德选择真的让我愤怒。

LinuxFR:为什么桌面如此特殊,为什么比其它市场艰难?

Linus Torvalds:因为它更加有趣。在这个市场中,人们可以做许多不同的事情。的确,服务器几乎没有做不了的事情,它可能有充足的CPU计算资源,快速的网络和大量的IO,但它一直做着相同的事情,而且是有限制的:它运行一个数据库,一个邮件或Web服务器,各种分析等。对企业来说,它可能是重要的,但它的工作负载不会经常发生变化,也没有哪个个体会喜欢它。

相反,你的桌面是你每天都要看到的,即使有些东西你不需要,你也不会对它们产生反感,使用时间长了,你可能还会产生一种依赖。

桌面做的事情更多,你在它上面玩游戏,编写文档,开发软件,对某些人来说,只有一个浏览器就足够了,正是要应付这么多的任务,桌面比服务器更复杂。有趣的是,智能手机也慢慢开始出现桌面的复杂性。

LinuxFR:为什么Linux桌面未被主流用户采用?内核社区能改善这个情况吗?还是这本身属于用户空间的问题?

Linus Torvalds:我认为在内核方面没有太多的解决办法,但我们会继续想办法改进。我们不是没有主流用户 – Android用户就是Linux主流用户,问题是桌面是一个困难的市场,有巨大的网络效应,大多数人都不希望改变他们的环境,如果必须转移到新环境,他们也希望获得帮助和支持,这里的“支持”不一定非得是商业支持,只要有一个经验丰富的人在你身边给你提供一些建议即可。但这不全是技术问题,更多的是社会问题。

LinuxFR:下面这个问题可能有点唐突,你现在仍然完全了解Linux内核的所有部分吗?或者说你真正信任维护者吗?例如,就复杂的路径名查找补丁,你是如何在Nick Piggin和Dave Chinner贡献的补丁做出选择的?你是否接受了A1 Viro的一些建议,还是你一个人做的决定?

Linus Torvalds:没什么,我肯定不能了解内核的所有部分,但我比大多数内核开发人员了解要多一些,不过有些地方我几乎完全依赖于维护者,因为我对某些子系统几乎一无所知,当然每个人都有自己感兴趣的领域。

例如我非常熟悉VFS和VM层,因此在这些方面我可以自己做出决定,但这并不意味着我不希望获得别人的帮助。

对于我不熟悉的领域,我一般不会做独裁决定,但我会敦促维护者认真思考问题,并给予一定的指导性意见,协助他们做出正确的决定。

顺便说一下,“正确的决定”不一定需要正确的表达,有时你仅仅需要做一个决定,并不一定要明确“正确”答案是什么,有时说“我们不知道”可能更好,毕竟不能靠拍脑袋做决定,但有时我们必须做出技术选择,这是一个痛苦的过程,完全可能做出错误的技术选择,但有什么办法呢,在没有任何可供借鉴的经验之前,我们只有通过试错的方法来找出正确的技术。

幸好这种情况并不多见,开发期间大多数时候不需要做出艰难的选择,前进的方向都非常明了。

推荐iOS开发者必备微信号 


iOS开发
微信号:iOSDevTip



推荐理由:
最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!


 ▼长按下方↓↓↓二维码识别关注