尼古拉斯·卡尔再次只说对了一半

2003 年,尼古拉斯·卡尔发表了题为“IT 无关紧要”的文章,震惊了日益无关紧要的 CIO 社区。我认为他只说对了一半:信息技术的不可逆转趋势是走向商品经济,因此为专有软件支付租金的想法是荒谬的。但他没有完全理解正确的是,他没有正确认识到,他的洞察力本身对于那些足够聪明以理解他所识别的趋势的竞争后果的人来说,是一种战略推动力。开源软件为用户提供了商品经济的好处,而没有专有软件的束缚,这确实很重要。CIO 们觉醒并认识到开源的活力将像商品能源、商品通信、商品原材料(所有这些都在美元、欧元和/或日元等商品货币中交易)的使用一样,对公司战略和执行产生世界性的变革,这确实很重要。(他的分析中遗漏的另一点,但后来由 Brent Williams 补充的是,开源软件公司在做得好的情况下,可以提供商品利益,同时仍然享受非商品金融回报的卓越方式,但我已经写过关于这方面的博客。)因此,尼古拉斯·卡尔再次给我们带来了另一篇关于开源文章,其中一半充满了精彩的见解,这次的标题是《人群的无知》。尼古拉斯完全正确的一半是,开源开发模型通常比专有模型在改进代码方面要好得多。事实上,埃里克·雷蒙德在 Linux 内核中观察到的现象最终成为了弗雷德·布鲁克斯的“人月神话”的答案。即,“多人眼球”的有机模型胜过“分而治之”的工业努力,这可能是因为前者是自组织的,而后者是集中组织、资源和管理的。从亚当·斯密到米尔顿·弗里德曼的经济学家都应该很高兴看到他们的经济理论最终在软件开发领域成为主流!然而,尼古拉斯犯错的部分是对开源模型局限性的分析,特别是他(在没有证据的情况下)断言他归因于开源模型的弱点因此是专有模型的优势。没有逻辑理由假设,如果一个问题很难用一种方法解决,那么用另一种方法就一定更容易甚至微不足道。让我们仔细看看他的论点的细节,以便更好地了解他犯错的那一半。首先,他认为集市模型本质上仅限于修复损坏的东西,不利于创新或创造真正的新东西。当然,他反驳了自己,因为他自己也认识到,像 Linux 这样的东西(他认为它是 Unix 的非创新克隆)发展的关键推动因素是……互联网。但互联网是开源社区的创造(早在它被称为开源之前)。阅读、共享和修改集体和可互操作代码的自由、公平和平等的约定是一项巨大的创新,其影响至今仍在感受到。我记得 1995 年参加一次 CEO 会议,当时微软的伟大“创新”是推出“Bob”,而 Jim Clarke 和 Marc Andressen 则在开源基础设施(即 Mosasic 网络浏览器)之上向世界展示了他们能做什么。告诉我:哪一项被证明是更大的创新?事实上,互联网仍然是巨大的创新源泉,这种创新是开源和开放标准的自由、公平和平等结构的直接结果,也是互联网鼓励无限参与的直接结果。然后,他试图使用维基百科来支持他的观点,即集体开发注定会产生二流的结果。作为维基百科的频繁用户(卡尔本人提供的每月 1.5 亿访问者之一),我不得不不同意。虽然大英百科全书已经存在了 250 多年,但维基百科才存在了仅仅 6 年多,在如此短的时间内,维基百科已成为我工作和我想学习的东西更相关的参考资料。我发现维基百科是学习几乎所有引起我兴趣的主题的好方法:声学、非周期性平铺、数字滤波器、模拟合成器、3D 渲染技术和军事历史(包括在我写作时正在书写的历史)以及气候变化。虽然我小时候很喜欢阅读大英百科全书的文章,但维基百科及其表亲 MIT 开放课程项目已真正成为我在 21 世纪获取知识的首选资源。维基百科的不断增长(在广度、深度和读者群方面)向我证明,它已成为在竞争中更胜一筹的产品,尽管雷蒙德对《纽约客》发表了评论。你真的认为哪个在 6 年、10 年或 20 年后会更重要?对我来说,是维基百科,因为当我有一些相关内容要添加时,我会添加它!但正是在最后一部分,尼古拉斯走得最远,他完全误解了开放心态和专有心态之间的根本区别。当量子物理学家孤立地观察单个原子时,原子是固体、液体还是气体?这个问题毫无意义。单个开发者先验地不是教堂也不是集市,这就是为什么雷蒙德引入了第三个术语:巫师。现在,巫师是打算 conjuring 教堂还是集市,这是一个有趣的问题。但是,分析少数人并说“少量定义类型”就像说“乔治·华盛顿,在第二届大陆会议之前,就像凯撒一样”一样荒谬。它错过了美国革命的全部要点。理解少数人之间如何创造的更具启发性的方法是阅读 Herbsleb 和 Mockus 比较和对比开源和专有软件开发项目的案例研究。他们发现两者都非常依赖巫师:在这两种情况下,顶级开发人员都添加、删除或更改了大约 20% 的所有代码,而接下来的 4-5 位开发人员完成了接下来 30%-50% 的所有工作。(如果所有人都能贡献 20%,那么每个软件项目都只需 5 个人就能完全完成并发挥作用。)但随后他们观察到了一条尾巴——在 Apache 的案例中很长,而在所有专有软件项目中都被外科手术般地缩短了。换句话说,与开源的包容性模型相比,专有项目是自我限制的。Herbsleb 和 Mockus 得出的结论,与我多年来与世界各地开发人员交谈的经验相符,是开源的长尾严格来说是一种好处,而不是缺陷,相反,专有软件开发中长尾的必然缺失严格来说是一种缺陷,而不是特性。因此,尼古拉斯不应该得出“换句话说,让集市远离教堂”的结论,而应该得出“防止集市变成教堂”的结论。而做到这一点的方法是从一位有兴趣创建集市而不是捍卫其教堂的巫师开始。