开源正在蚕食整个世界?
(多谢 Dominic Alves 提供的题图! CC BY 2.0)
"软件正在吞没整个世界"的说法最先见于2011年。2015年,开源软件替代了这个位置。
“如果这个理论推开来,软件吞没世界,那么开源软件将取代之,对吗?”2015年初福布斯还不确定地试探道。 但到年底他们就非常自信地发文“开源软件确实正在吞没整个世界”。
这不是一个声音发起的运动。《连线》发表文章如,今年开源软件如火如荼。充满了引用,如:“这不仅仅是一个转折点,更是一个引爆点,”GitHub 带头大哥 Brandon Keepers 说。
这也多次出现在各类会议中,如 Defrag2015 之类。我参加了一个题为“开放平台和策略——为什么你应该开放平台”的演讲。在那里我听到很多强大的猜想,例如:在大约五年内大部分产品将在 GitHub 之类的开放平台上开放源码。
开源软件会霸占这个世界吗?将来所有的许可证都会是 GPL,MIT,Apache 之类的吗?当然不是。Linux,网景和 Apache httpd 都在开源基金会里等了很长时间了。
如果是这样的话,为什么2015年会有如此涌动的激情?
git commit -m "改变了什么"
预测未来是徒劳的。这一点,Philip Tetlock 通过实验研究证明那些专家“大约和扔飞镖的黑猩猩一样准确”。
因此,预测了解自由/开源软件的未来可能会使我们误入歧途,让我们看看现在正在发生些什么。我的论点是,开源和闭源一直是一种互补的关系。我们现在看到的趋势在很大程度上是从开放与封闭的圣战里走出来的赢者。
混合的组织方式是主流
开源软件是主流。苹果可以说是最封闭的公司,开源了 Swift。微软开源了 Visual Studio、.Net 和最近他们的 JavaScript 引擎 Chakra。谷歌、Facebook、甚至 NSA 也将其项目通过 GitHub 托管并开放源码。
然而,许多这样的组织也从根本上闭源。为什么会混合起来搭配呢?Joel Spoelsky 给了我们一个解释,他在2002年关于互补市场的论文中说到:
”当一个产品的互补品的价格下降,它的需求就会增加。一般来说,一个公司的战略利益是让他们互补产品价格尽可能低。”
比免费更好是什么?Sun Microsystems 放开 Java,因为他们的主营业务是销售服务器。你在构建一个很酷的 Java 应用程序后需要什么?当然是要一个在服务器上运行它。
抽象表达主义
我们的朋友 Joel 也在最近的一条 a16z 播客上表达了开源的其他好处:
“我们现在编码的系统比过去复杂一百万倍。(……)今天只用一行代码,你可能会完成接受和处理信用卡。(……)作为程序员,我们的力量更强大了。”
软件占领的领域越大,这个世界就会变得更加互相通联。开发也会变得更加复杂。自由/开源软件是一个开启所有的复杂性的方式。
如果我们相信随着时间的推移熵不断增加,那么我们可以做出这样一个预测,如果开源能有效减缓熵增加,那开源的采用率将随着熵的增加而增长。
值得注意的是,这个模型中 Twilio、STripe、和他们的弟兄是一个明显的问题。他们关闭了 SaaS 产品,也做了大量消除复杂性的工作。问题是,很难在多个方面说明开放和封闭的解决方案哪个是“胜者”。
急需急需 HIPAA(简化方案)
Stripe, Twilio 和其他类似的公司都推动开源,但是所有上述公司都提供区别于开源的闭源服务。这是为什么?
闭源服务提供类似与 PCI 标准的服务,不用调用注册,HIPAA 甚至提供易学好记得功能,你只需关注自身业务逻辑。现在越来越多的公司愿意支付费用使用闭源服务,从而减少负担,避免让人头痛的集成问题。
我坚信这种情况不会改变。以闭源服务提供的优秀封装为依托,将会更好的实现自身公司业务。隐藏琐碎细节,提供实用功能。闭源服务善于化繁为简。
FOSS 支持者被替换为中立者
开源是成熟,这是个谬论. 经常看到如下宣言“再也不会有下一个红帽(Ret hat)”。a16z的 Peter Levine 说的如果开源是一个商业选项,它通常不是市场上最有效的方案。
收入很重要. 任何产品都需要支撑. 它(某开源软件)是否会继续开发和维护?Satirical Twitter 担忧道:
“我认为一些 JavaScript 框架的存活时间还不如一瓶牛奶”
同样,FOSS 的主要原则正在产生问题。记得心脏滴血问题吗(HeartBleed)? Jeff Atwood 肯定记得. 他利用该问题反驳
林纳斯定律(Linus’ Law 是计算机软件开发者熟悉的开发测试定律之一), 该定律被强制放入到 Cathedral and the Bazaar(该书介绍了开源软件的模型)中.
李纳斯定律说,“只要看足够长时间,所有的Bug都会被发现“。换句话说,开源软件不应该有灾难性的 Bug。因为有足够的人公开审查代码,只有些小 Bug 可能会溜过去。
阿特伍德回应说:
然而,Heartbleed SSL 脆弱性是李纳斯定律的一个转折点,这是一个开源软件的严重错误导致的灾难性的漏洞。灾难性有多大呢?它影响了大约18%的世界上所有 HTTPS 网站,并允许攻击者查看所有这些网站的流量,还未加密…而且已经两年了。
哎哟。阿特伍德的当前企业 Discourse.org 是一个100%开源的产品。他显然对自由/开源软件很有信心。它只是受到了一个现实的世界的磨练而已。
易用性
GitHub 是开源的港湾。在它上面,写作和共享代码变得容易得多。业余爱好者能够提高文档,即使他们不能代码。通过 Pull request 专家很容易分享和指导。
分布式版本管理系统(git)取代集中式版本管理系统(svn)对自由/开源软件有如此大的影响,这是一件很诗意的事情。你想解决一个问题吗?先去看看 GitHub 上有没有解决方案。
任何理智的商业都会愚蠢的忽略开源。但是,GitHub 如何赚钱?通过出售私人存储库。其中大量都是闭源的。甚至 GitHub 也是在这个游戏中。
未来不是一个纯粹的开源仙境。而是一个将开源和闭源结合起来的拼缀图。
都来一点才是美丽的
开源和闭源软件之间没有永远的冲突。微软曾经是闭源的正义斗士。如果你是一个老兵,你仍然可以读到他们之间战争的故事。
今天,微软完全顺应自由/开源软件的潮流。像许多其他公司一样,他们开发大量的闭源项目的同时参与开源。嘿!这同样也是讽刺之处。我们喜欢开源的解决方案,如 Docker,Golang,Rails。我们又依赖于 Slack 等闭源的解决方案。
现代企业需要充分拥抱两个世界。谷歌,Facebook,和 Uber 是这个开明的做法的成功例子。他们证明可以利用开放源码,无需让你的午餐被偷走了。
圣战已经结束。开源和闭源的竞争也需要结束。