1980年代,我在麻省理工学院人工智能实验室有一间办公室,紧挨着理查德·斯托曼。我们带着彼此无法说服对方的观点,来来回回争论了两年。在那些年里,软件到底该开放还是封闭,是一个让两位工程师都寸步不让的问题。

斯托曼的立场直白又坚硬:软件的源代码应当对所有人自由开放,任何人都能使用、学习、改进。他的逻辑并不复杂——软件封装的是知识,而知识不该被任何人锁起来。把软件藏进一家公司的围墙后面,等于把知识本身隐藏起来。我当时不同意,我坚持的是那个时代的主流看法:只有企业拥有专有代码的控制权,软件才能持续进步。我们都相信计算机会成为人类进步的加速器,但怎么走这条路,观点截然相反。

打开网易新闻 查看精彩图片

我没有立刻意识到,软件并不仅仅是一种商业资产。它更像一个知识体,而知识体只有在被分享时才会变得更强大。经过大约两年断断续续的争论,斯托曼终于让我相信,我之前想错了。那个转折点不是某一个瞬间,而是一个逐渐看清的过程:开放不是放弃商业利益,而是让知识在最合适的方式下生长。

在此后的年月里,斯托曼把自己的信念变成了一场运动。他坚持主张,人们应当有权研究自己使用的软件,有权修改它,改善它,并把它分享给别人。这成为了自由软件运动的核心,后来也为今天被全世界称为开源的东西铺下了地基。他动手写出了GCC,那是一套将代码转译成计算机真正可执行的机器语言的翻译程序。直到今天,GCC仍在工作。它的成功不仅来自斯托曼一个人的代码,更来自成千上万个贡献者的接力。同样的精神催生了GNU/Linux,这个操作系统现在撑起了互联网的大部分身体。现代世界运行在开源之上,开源的开发原则是其驱动力。

当时反对这一切的声音不是没有,首当其冲的就是安全顾虑。常见的理由是:想保证计算机安全,就必须把软件藏起来。依靠模糊性来获取安全,这个思路表面上有它的逻辑,但反方观点后来被证明更坚固——透明让全世界的开发者共同发现并修复问题,而隐藏只能寄希望于别人不仔细窥探。开源用透明赢得了这场辩论,几乎可以说是碾压式的。

这种开放还以一种不太显眼的方式加速了科技行业。一个活跃的开源社区把构建软件的知识扩散开去,成了整整一代工程师实实在在的教科书。反过来看,一个被锁紧的系统几乎什么也教不了。如果每一套最前沿的系统都从公众视野里消失,下一代创新者又该到哪里去学习呢?这个问题至今仍有分量。

几十年来,技术以惊人的速度演进,背后依赖的是一个微妙而精巧的生态系统——私营公司、大学和数以万计的志愿者,都在给一个共享的开源软件基础添砖加瓦。世界上最成功的一些公司就建在这个基础之上,它们在开放核心之上叠加服务,获取商业回报。专有软件自有其位置,但开源已经证明了,知识分享不仅可行,而且是加速人类进步的最强引擎。