前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源的七大基本品质

开源的七大基本品质

作者头像
开源社
发布2019-07-23 10:48:56
5280
发布2019-07-23 10:48:56
举报
文章被收录于专栏:开源社开源社
翻译:肖科 | 校正:Ted Liu | 编辑:Corrie

前言

“开源” 一词最初是在1998年创造的,用来描述 Netscape 发布的Navigator 网络浏览器源代码,最终成为 Firefox。不幸的是,Netscape 正处于死亡阵痛之中,因此,由于错误的原因,Netscape成为了开源的一个例子。

选择性编辑会扭曲想法。比如,很多人都知道 Stewart Brand 的名言 ,”信息渴望自由”。这句话是单独使用的,经常被引用来支持对数字信息的限制是徒劳或不道德的这一论点。

但很少有人听到它很少被引用的下半句,意思恰好相反:“信息希望昂贵”。当从上下文来看,很明显,Brand 的意思是描述两种对立的力量。然而,通过选择性编辑,意义发生了变化。

选择性编辑也扭曲了开源的含义。随着开源世界的发展,它吸引了更多的参与者,从个别程序员到大公司。这是意料之中的。并非所有这些参与者都同意开源的含义。这也是意料之中的。一些有影响力的参与者试图误导开源的想法,将其从一种方法变成了一条捷径。这也是意料之中的。

但即使是意料之中的,抵制这种刻意的误解还是值得的。为什么?从长远来看,这对开源不利。不一定是因为伦理或道德--而是因为实用性和可持续性。因为如果开源被不断下降的预期冲淡,我们这些享受其好处的人最终会吃亏。另外,那些对名义上 “开源” 的项目做出贡献的人,将会浪费其正能量在不确定的结局上。因此,我们都应关注于捍卫开源不被误解。

本着这种精神,我认为这里有七个品质对开源的辨识至关重要,这与那些误解方式常有的假设形成鲜明对比。本文的目的不是提供一个答案,说明”开源” 的含义,也不是暗示别人做错了,因为我也没资格这么做。开源本质上是异构的,就像在一个公开市集里发生的一切一样。

不过,我们完全可以谈论开源,这意味着它必须有一些不可减少的特征。例如,通情达理的人在什么是艺术的问题上可能存在分歧。但有人会质疑蒙娜丽莎是一件艺术品吗?同样,尽管单一地谈论开源是没有意义的,但断言这是一个纯粹的主观概念也没有意义。开源一定意味着什么,否则它就毫无意义了。

这就是它对我的意义。

开源的七大基本品质

01

误解:开源从自由与合作的精神中崛起。

本质:开源源于资本主义竞争的精神。

开源作为一个软件开发流程,允许竞争产品在没有传统专有软件开发的资本和劳动力需求的情况下出现。大多数成功的开源项目都是为了替代成功的专有软件产品。这不是巧合。对专有产品的需求也创造了对开源替代品的需求。

此外,开源项目的成功取决于它与专有产品替代方案的竞争优势。时间就是金钱。无法完成任务的开源软件最终是上不了台面的。虽然有些人会选择开源软件纯粹作为一种政治声明,但大多数软件客户都会用通常的条件--成本与收益--来评估自己的选择。

02

误解:开源开发人员免费工作

本质:开源开发者是有报酬的。

没有人免费从事开源项目。也许一小群开发者为了自娱自乐,选择对开源项目做出贡献,而不是选择在瓶子里造船。他们是少数。大多数开源工作都是由专业开发者依照专业费率有偿完成的。

这必然是事实,原因有二。

1. 软件开发人员不是利他主义者。他们是劳动力市场的理性参与者,也是高薪的参与者。在有很多公司会付钱让他们做同样的工作的情况下,他们没有动力以低微报酬致力于开源发展。

2. 正如上面提到的,开源软件如果不能与具替代性的专有软件竞争,就不可能成功。而且,除非能吸引品质相当的软件开发人员,否则它无法与专有软件竞争。而吸引这些开发者的唯一办法就是向他们支付市场价格。从没有免费午餐的意义上说,没有免费软件。

03

误解:开源使事物免费。

本质:开源重新定义了什么是有价值的。

开源开发人员不是免费工作的,但有一个对称的主张伴随着:开源项目向支付开发时间费用的人 (通常是开发人员的雇主) 返回同等的价值。

如果你相信科技公司的行为是理性的,上述的说法一定是真实的。一家公司将把资本投入到它能找到的最有价值的活动中。如果一家公司正在资助开源,公司必须期待比其他选择更好的投资回报。

开源软件的倡导者有时会不准确地将其描述为 “像啤酒一样免费” 或”像在讲话中一样自由”。很久以前我在 Red Hat 工作时,一位工程师朋友更准确地将其 描述为 “像小狗一样自由”。不,你不为开源软件买单。但您也无法获得专有软件标准的额外功能:易于安装、支持、文档等。你用你自己的时间弥补了二者之间的差距。或者你可以为这些服务付钱给别人。这二者之间差距的净效应是,软件相关服务的市场被转移到软件本身之外,而不是被纳入专有软件的许可证价格里。市场只是被转移了--而不是被摧毁了。

04

误解:开源对参与没有障碍。

本质:开源依赖于精英治理

没有精英治理制(任人唯贤)的甄别,开源就无法运作。这一原则自然源于开源是创造有竞争力产品的一种方法的理念。要获得高品质的结果,开源项目必须坚持高品质的贡献,并拒绝其它非高品质的贡献。开源项目通常向所有人开放,因为任何人都可以对代码提出修改建议。但这些修改总是可以拒绝或回滚复原的。

当没有精英治理制的过滤并愿意接受任何人贡献的项目时,开源的想法就被滥用了。这些项目最好用 “文件共享” 来形容。开源方法的区别在于它依赖开发人员社区来找到最好的想法。这必然意味着大多数想法都被拒绝。

05

误解:开源是民主的。

本质:开源依赖于仁慈的独裁者。

开源项目由开发人员领导,他们有时被称为”仁慈的独裁者”。通常情况下,这些人是启动项目的人,被认为对项目的未来抱有远见卓识。

仁慈的独裁者不是选举产生的,但另一方面,只有在所有其他参与者同意的情况下,才允许他们继续掌权。而开源即意味着--任何人都可以拿着代码,开始 (又名”分叉”) 一个新的项目。

这种情况很少发生。说到底,在一位仁慈的独裁者的带领下保持项目的完整性,而非将其分割成多个项目,开源项目的参与者可以获得更多(再说一次,这是理性思考的奖励所带来的影响)。同样,独裁者也有保持仁慈的动力,因为这个项目总是有可能在他们的管理之下消失。

06

误解:一个开源项目可以只有一名开发人员。

本质:开源项目需要多位开发者。

这一要求自然源于开源是任人唯贤的观点。如果所有的贡献都来自一个人,就不可能出现精英治理制的过滤。个人有时会发布他们的个人软件项目,并宣布 “嘿,这现在是开源的“。但是,这并不能使它成为开源的东西,就像买一箱啤酒和一袋薯片成为聚会一样。你还需要客人。同样地,要制造任人唯贤的压力,开源项目需要多个开发者 (创造各种想法的竞争) 和仁慈的独裁者 (在这些想法中做出选择)。如果没有这种压力,那就是文件共享,而不是开源。

07

误解:一个软件项目可以随时开源。

本质:开源是项目DNA的一部分,否则它就不是开源。

随着开源变得更加成功,更多的专有软件项目被 “转换” 为开源。这类似于把翅膀嫁接到大象身上,希望它能飞起来。

开源是一种制作软件 (和其他东西) 的方式。它体现了某些价值观,并排斥了其他价值观。开源在本质上并不比专有开发更好,也不一定适合每个项目。但是在项目早期做出让项目开源的决定才有意义。这样,领导层、开发人员社区和代码就可以围绕这些原则而演变。

专有项目由根本不同的原则启动,并围绕这些原则成长。它以后不可能成为一个开源的项目,就像大象不能变成老鹰一样。然而,那些将专有项目转换为开源的人往往认为这是融合两个世界的最好做法:一种与开源社区分享专有开发好处的方式。

几乎没有例外的,这是两个世界中最糟糕的:开源只是成为一种输出专有项目问题的充满讽刺意味的方式。不幸的是,这是更常见的场景,因为成功的专有项目并不会从开源中获得任何好处。真正的场景是:没有开发人员采用您的专有技术?将价格降低到零,并将其重新打造成开源品牌。你的专有软件充满了深藏且神秘的 bugs?让它成为开源期盼或许别人会修复它们。由于更新得很慢,你的技术即将过时?也许开源会延长它的寿命。当专有软件一文不值的时候,公司就把它扔开源的栅栏之后。

但以上这些甩破烂的技巧从未见效。成功的开源项目会尽早采用并坚持开源的方式。仅有承诺不足以实现开源的成功,但这是必要的。

我上面的大部分解释都是用软件开发的语言来措辞的。但这一讯息超越了软件。虽然开源来自软件世界,可能仍然特别适合这种项目,但没有理由不能理直气壮地适应于其他类型的项目。其实这已经在发生了。

关键的问题是如何彻底和深思熟虑地应用开源模型。随着开源从其传统根源向外扩散,它将面临更高的误解风险。同样,我并不是在争论开源的规范定义。也许我们最希望看到的是,那些想把自己的项目称为开源的人,将会让自己了解成功的开源项目的特点。如果你不喜欢我对开源本质的总结,那就多了解开源,并提出你自己的版本。不要基于责任感或当做家庭作业--做这件事是出于你自己的利益。了解其他开源项目的成功是什么,又有什么坏处呢?做出这样的评估后,如果你想修改自己项目的关键原则,那就这么干吧。我不会抱怨的。

但帮我个忙:不要叫它开源。

2015年11月更新:

我仍然基本上同意这些基本品质。然而,自从我写了这篇文章以来,我发布了一款基于网络出版书籍的软件,名为 Pollen 的开源软件。

我的项目是否达到了我的七大基本素质?目前,有些素质比较多。值得一提的是,虽然 Pollen 有许多用户,但它仍然只有我一个开发者。

但也有人已经开始构建与 Pollen 配合使用的工具和代码库。因此,尽管我是核心 Pollen代码的唯一开发者,但世界上最小的生态系统已经围绕它形成。随着生态系统的发展,我希望最终 Pollen 的核心代码将是一个相对较小的部分--我将是一个相对较小的贡献者。而这也是基本品质 #6(译者注:开源项目需要多位开发者)的重要组成部分--一个项目既创造了参与的机会,又引导了参与。

不过,我想我已经软化了这样的观点,即这七个基本品质应该是开源项目的一部分。实际上,成功的开源项目往往需要很长时间才能成熟。我不指望 Pollen 会有什么不同。

作为我自己的开源项目的仁慈独裁者,我使用这七个基本素质作为指路牌。不,Pollen还没有符合所有素质。但我希望它能做到。而且它正在朝着正确的方向前进。开源并不是Pollen 成功的充分条件。但这将是一个必要条件。

-作者:Matthew Butterick

2012年1月 & 2015年11月

精彩推荐

开源治理实践和企业案例研究

CarGurus 宣布创立开源基金

开放的意义 - 历久弥新的再读

本文由肖科原创翻译,开源社首发。 翻译工作遵照 CC-BY-SA 协议规定,如果由侵犯到您的权益,请及时联系我们。 欢迎遵照 CC-BY-SA 协议规定转载,敬请在正文注明并保留原文/译文链接和作者/译者等信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档