Who Is Open Source About?

Who Is Open Source About?

开源究竟是为了谁?

Open source comprises a complex social web of ongoing relationships, not a simple one-way “gift” of value from maintainer to user. 开源包含了一个由持续关系构成的复杂社会网络,而不仅仅是维护者向用户提供价值的单向“礼物”。

Open source is, at least in part, about you, where “you” refers to the user. 开源至少在某种程度上是关于“你”的,这里的“你”指的是用户。

Open Source Is Not About “Open Source Is Not About You”

开源并非“开源与你无关”

In other words: Rich Hickey was wrong when he wrote “Open Source Is Not About You” and I’m tired of pretending otherwise. Of course he’s not completely wrong, or his famous post would not have resonated quite so much in the first place. 换句话说:Rich Hickey 在写下《开源与你无关》(Open Source Is Not About You)时是错的,我厌倦了假装他正确。当然,他并非完全错误,否则他那篇著名的文章当初也不会引起如此强烈的共鸣。

Obnoxious users who demand their personal use-cases be immediately addressed by volunteer maintainers for free should indeed be viewed as the pariahs that they are. Similarly, corporate users who want free support from the community that supplies their infrastructure to lower their costs. As should those who profit from this type of externalization by their own customers. 那些要求志愿者维护者免费且立即解决其个人用例的讨厌用户,确实应该被视为社会弃儿。同样,那些希望从提供其基础设施的社区获得免费支持以降低成本的企业用户也是如此。那些通过这种外部化手段从自身客户那里获利的人也一样。

But the exchange of “open source” (or even “free software”) is not as simple as “I have prepared some software for you, please enjoy it, you have no right to complain”, and maintainers ought to have a precise understanding of the costs and benefits — as well as the ethical implications — of that exchange. Right now we barely even articulate that the exchange exists, let alone that it establishes a long-term, subtle, and implicit relationship between maintainer and user. Let’s fix that. 但“开源”(甚至“自由软件”)的交换并不像“我为你准备了一些软件,请享用,你无权抱怨”那么简单。维护者应该对这种交换的成本、收益以及伦理影响有准确的理解。目前,我们甚至很少明确这种交换的存在,更不用说它在维护者和用户之间建立了一种长期的、微妙的、隐含的关系。让我们来解决这个问题。

A Brief Aside about Meta-Ethics

关于元伦理学的简短题外话

When we talk about “obligations” and “rights”, of “shoulds” and “musts”, we are constructing an ethical system. The purpose of such a system is to develop social expectations and social consequences. There is not much use in me telling you that you are transcendentally evil for failing to follow some arbitrary recommendation that I have. But I am implying that I believe there should be consequences for your behavior. 当我们谈论“义务”和“权利”,谈论“应该”和“必须”时,我们正在构建一个伦理体系。这种体系的目的是建立社会期望和社会后果。如果我仅仅因为你没有遵循我随意的建议就说你是彻头彻尾的邪恶,这没什么意义。但我是在暗示,我认为你的行为应该承担后果。

I am also implying that there probably already are some consequences, and they’re just not written down anywhere yet. Therefore, a post like this, where I say that we should view our social obligations in a certain way, that is the beginning of a broader social conversation. I think there should be some consequences, so I am gesturing towards that possibility. Exactly what consequences? For now, I’m not sure. Let’s figure it out. 我也在暗示,可能已经存在一些后果,只是还没有被写下来而已。因此,像这样的一篇文章——我提出我们应该以某种方式看待我们的社会义务——是一场更广泛社会对话的开端。我认为应该有一些后果,所以我正在指向这种可能性。究竟是什么后果?目前我还不确定。让我们一起来探讨。

What Are We Doing When We Do An Open Source?

当我们进行开源时,我们在做什么?

Hickey, and his many acolytes in the years since his fateful post, asserts that the process of “open source” goes like this: Maintainer makes a thing, and makes it available to users as a gift. Maintainer may “love working with the team”. Maintainer may be “proud of the work we do”. Users accept the gift, and extract utility from it. (Users MUST be grateful for this.) A tiny fraction of users reciprocally contribute to the thing. (Maintainers may be grateful for this.) Hickey 以及他那篇决定性文章发表多年来的许多追随者断言,“开源”的过程是这样的:维护者制作了一个东西,并将其作为礼物提供给用户。维护者可能“热爱与团队合作”。维护者可能“为我们所做的工作感到自豪”。用户接受这份礼物,并从中提取效用。(用户必须对此心存感激。)极少数用户会回馈贡献。(维护者可能会对此心存感激。)

He makes various oblique references to the specific activities of his company, which does things vaguely related to his projects for money. These activities are exclusively characterized as for “customers”, however, a subset of the aforementioned users so tiny (“fewer than 1%”) as to nearly be an entirely distinct group. 他含蓄地提到了他公司的具体活动,这些活动为了金钱而做着与他项目模糊相关的事情。然而,这些活动被专门定义为服务于“客户”,而这部分客户在上述用户中占比极小(“不到 1%”),几乎可以被视为一个完全独立的群体。

Breezing past this process in an essay about obnoxious users demanding things they are not entitled to, one might nod along, as this sounds mostly sensible. Giving gifts is nice. I too love working with good teams and taking pride in things. Examined more closely, however, it starts to logically fall apart. 在讨论那些要求无理索取的讨厌用户的文章中,如果匆匆带过这个过程,人们可能会点头表示赞同,因为这听起来大部分是合理的。赠送礼物是件好事。我也热爱与优秀的团队合作,并为所做的事情感到自豪。然而,仔细审视后,它在逻辑上开始站不住脚。

If you have consulting clients and that’s where all of your money is coming from, why are you bothering (as he repeatedly insists) “doing [things] for the community”? What was the point of releasing this code in the first place? You could love working with your team and be proud of the work that you do in a lot of different contexts; why bother implicating this horde of entitled and obnoxious people, if that’s all you’re getting out of it? What’s in it for you? 如果你有咨询客户,而这正是你所有收入的来源,那你为什么要(正如他反复强调的那样)费心“为社区做贡献”呢?当初发布这些代码的意义何在?你可以在许多不同的背景下热爱与团队合作并为工作感到自豪;如果这就是你从中得到的全部,为什么要费心去牵扯这群自以为是且令人讨厌的人呢?这对你有什么好处?

If we’ve left out something as fundamental as “why is the maintainer doing this”, perhaps this story leaves out some other important bits as well. 如果我们忽略了像“维护者为什么要这样做”这样根本性的问题,也许这个故事也忽略了其他一些重要的部分。

Why Are You Doing This?

你为什么要这样做?

There are many possible motivations for releasing and maintaining open source software. They are often subtle, often overlapping, and rarely clearly stated. Maintainers are not a monolith and not everyone does it for similar reasons. But let’s review a few reasons that someone might want to contribute. 发布和维护开源软件有许多可能的动机。它们通常很微妙,经常重叠,且很少被明确说明。维护者并非铁板一块,也不是每个人都出于相同的原因这样做。但让我们回顾一下人们想要贡献的几个原因。

Reputation 声誉

One reason that you might want to release some open source software is advertising. The most common form of this is self-promotion; if you are a visible, prominent contributor to an open source project, it stands to reason that you will have an easier time finding work in the domain of that project. If you operate a consultancy, as Rich Hickey did at the time of his famous rant, then this reputational currency translates into advertising for your services. It’s a practical demonstration of the skills of your team. 你想要发布开源软件的一个原因是广告。最常见的形式是自我推销;如果你是一个开源项目的知名贡献者,那么你在该项目领域更容易找到工作是合乎逻辑的。如果你经营一家咨询公司,就像 Rich Hickey 在他那篇著名的文章发表时所做的那样,那么这种声誉货币就会转化为你服务的广告。这是对你团队技能的实际展示。

The trade in this benefit is most like the traditional “gift economy” that open source has been compared to. You give the code to your users, which has some value, but the users give you back some reputation, in the form of their attention, their esteem, and possibly even their money if they become customers or employers. 这种利益交换最类似于开源常被比作的传统“礼物经济”。你将代码提供给用户,这具有一定的价值,但用户以关注、尊重,甚至在他们成为客户或雇主时以金钱的形式回馈你声誉。

Influence 影响力

Infrastructure is the most popular type of open source for a good reason. Programmers working on a problem are often hemmed in by sclerotic architectural choices which prevent them from solving problems in the way that they’d prefer to solve them. Major infrastructural investments are difficult to justify in a planning process, as their benefits are hard to prove. Sometimes the benefits are highly personal; different engineers have different aesthetic preferences about what types of equally-valid solutions they’d prefer to work with. If you can develop your preferred type of solution and release it as open source, then you can influence how everyone… 基础设施是开源中最受欢迎的类型,这是有原因的。程序员在处理问题时,往往受到僵化的架构选择的束缚,这使他们无法以自己偏好的方式解决问题。重大的基础设施投资在规划过程中很难证明其合理性,因为其收益难以量化。有时,这些收益是非常个人的;不同的工程师对于他们更倾向于使用哪种同样有效的解决方案有着不同的审美偏好。如果你能开发出你偏好的解决方案并将其开源,那么你就可以影响每个人……