开源的社会契约
共 2823字,需浏览 6分钟
·
2021-05-29 20:22
以下为译文:
本文将探讨一下关于开源用户权利的问题。我想指出一点,开源维护者不欠用户什么,而粗鲁地对待他们是一种不道德的行为。在我看来,这是开源的基本社会契约。
1 法律契约
首先,我们来说一说什么是开源软件。在我看来,
开源软件就是允许我免费使用的源代码。
提供了开源代码的开源项目是否需要担负超出该范围的责任吗?我并不觉得,开源软件的责任范围完全由软件本身及其许可决定。但是,如果你希望开源项目参与更多社交,而且用户也希望通过某种方式与维护者取得联系,该怎么办?我认为,在这种情况下,双方的交流会产生更多期望,而且主要是人与人之间的交流。
2 维护者和用户之间是什么关系?
首先,我认为我们必须确立维护者与用户之间的关系。我常常通过下面的例子来比喻这种关系:
开源代码就像我在自家草坪上放了一堆U盘,上面保存着我的开源代码,而且还挂着“免费”的牌子,当用户想要最新版的代码时,就可以过来拿走一个U盘。
实际上,我与大多数用户之间关系也是这样:我推出一个新的提交,用户可以随意使用,但是我们之间从不互相交谈。
继续上面的比喻,假设你不喜欢从我家前院免费拿走的软件,你可以理直气壮地走到我家门口,敲门,然后大声对我嚷嚷吗?或者在我的邮箱中扔下一封愤怒的信件?甚至向我家门口扔臭鸡蛋?或者站在街道中央,大喊你讨厌我的软件?你觉得这样做合适吗?
实际上,确实有人给我发邮件骂我,愤怒地填写议题,或者在互联网上大声抱怨。你觉着这样真的合适吗?在我看来,这些行为非常粗鲁,不道德。
请不要忘记,又不是我强迫你使用我的软件。你使用我的软件完全是自愿的,你免费拿了我的东西,还冲我乱发脾气?这完全是你个人的问题,与我何干。你完全可以使用其他的免费东西,并停止使用我的源代码。这就好像我给了你一个免费的冰淇淋,你咬了一口,发现不喜欢这个口味,然后就大喊大叫说这个免费的冰激凌怎么这么难吃,你不喜欢。这样对待免费试吃的产品,你觉得合适吗?
我不是说你不能提出建设性的批评,也不是说你不能说明哪些功能不能用。但是,如果你看到有人走到我身边,因为免费的冰激凌对我大加指责,你觉得这像话吗?
3 定言令式
我之前就说了,粗鲁地对待维护者的人都没有道德。
哲学家 Immanuel Kant 提出了一种道德哲学体系,名叫定言令式。他曾在著作《道德形而上学基础》中阐述道:
行动时对待人类的方式是,不论是自己或任何一个他人,绝对不能当成只是手段,而永远要同时当成是目的。
让我们梳理一下这里的“当成手段”和“当成目的”的含义。“当成手段”的意思是说,通过手段(即通过某种行动)获得一些特定的东西。
而“当成目的”则指的是,你始终应当把人当成目的,而不把他当成工具。即不能利用别人的人性,来达成自己的目的。比如,生活中的朋友,你交朋友并不是希望利用他们来获取某些东西,而是因为你喜欢他们以及他们的为人,你并不会期望从他们身上获得什么。
回过头,再来看看开源。如果你将维护者视为从其软件中获取收益的一种手段,那么从道德上来说就是,你把他们当成了工具,没有将他们视为人。但是,如果你将维护者视为可以帮助自己的志愿者同伴,那么就可以与他们建立正确的关系,而且你也不会利用维护者获取特定的东西。
4 举个例子
我们继续以免费 U 盘为例进行说明。假设我的一段 C 代码可以很好地集成在芯片 A 上。你使用了我的软件,而且很喜欢,然后就一直使用。突然有一天,我无意中停止了对芯片 A 的支持,因为我想通过 Rust 来提高生产力和安全性,而且我更加喜欢编写这样的低级代码。
于是,你大发雷霆,就因为我修改了软件,你不能再使用了,这样合适吗?不要忘记,每次我修改代码,都是你自己来我家前院拿走 U 盘,我又没求着你使用我的软件。我千辛万苦提供了这些开源代码,如今我发现无法再支持芯片 A 了,我就放弃了,你至于冲我发火吗?
对我来说,感觉就像你把我当成了获取某个平台支持的手段和工具,一旦不支持这个平台了,你就冲我发脾气。如果你把我当成人类看待,你就会问问我是否可以重新考虑一下,如果我说不行,你也应该心平气和地接受。
5 害人害己
真正令我难过的是,这些人的这种不把维护者当人看的行为害人害己,不仅会伤害到维护者,对用户自身也没好处。开源维护人员保守身体与心理的双重压力是一个很现实的问题。如果有人不停地写信给你,说讨厌你放在前院的那些U盘,那么我肯定会说算了,何必呢,我不在前院放U盘不就得了吗?
每一次用户对着开源维护者大喊大叫,都只会让情况越变越遭。整个恶化的过程可以分好几步。首先,既然开源代码由维护者来实现,那么也理应由他们来决定需求的主次。当然,有时确实会出现维护者固执己见,只考虑自己的需求,而对他人需求的考虑不足的状况,但这也无可厚非。
第二步,如果你对着维护者大喊大叫,伤透了他们的心,他们就会退而求其次,选择开放源代码,但不允许别人公开参与。在这种情况下,维护人员仍然愿意分享开源代码,但根本不希望处理 PR 请求之类的麻烦事儿。
第三步,进一步恶化,维护人员会放弃项目。在这样的项目中,问题跟踪器仍然处于打开状态,人们也可以收集与开源代码相关的问题,甚至可以打补丁或建立分叉,但是维护人员已经走了,所有代码提交都已停止。
下一步是项目关闭,只剩下一个项目的存档。
最后就是完全删除项目,整个代码库都不见了。如果你没有保留开源代码的副本,那么就再也见不到它了。
6 将每次提交都视为礼物
每次提交开源代码都应被视为来自维护者的一份礼物。维护者将礼物放在前院,与其他愿意使用的人享用。但如果你将它们当作获取其开源代码的手段,那就属于不道德的行为。
如果你意识到开源维护者真的不欠你任何东西,那么就不会要求下一次提交,或下一次发布。如果从这种角度看待开源代码,那么你就会将其视为礼物。因此,即便开源代码没有按照你期望的方向发展,你也不会感到失望,因为从一开始它就是一件礼物。
原文链接:https://snarky.ca/the-social-contract-of-open-source/
声明:本文由CSDN翻译,转载请注明来源。
关注「开源Linux」加星标,提升IT技能