> For the complete documentation index, see [llms.txt](https://freebsd-journal-cn.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://freebsd-journal-cn.bsdcn.org/20230304-qian-ru-shi/we-get-letters.md).

# 读者来信

* 原文：[We Get Letters](https://freebsdfoundation.org/wp-content/uploads/2023/05/MarApril_letters.pdf)
* 作者：**Michael W Lucas**

亲爱的“读者来信”专栏：

为什么这些开源项目都要搞个基金会？我们不就是在给世界贡献代码吗？干嘛还要操心这些无聊的法律事务？

——只管改代码

JHTC：

理解开源基金会的最简单办法，是先去搞个真正小的开源项目，最好是当业余爱好弄。把它养到成为世界技术栈里相当一部分的关键基础设施。你会发现，你的所有时间、精力、健康、人际关系和希望，都已经换成了技术上的成功，以及令人印象深刻的嗜甲菌真菌群落。在你祖国偶尔解冻的时候，光脚晒晒太阳会有助于后者，可惜我住的地方不常解冻。你可以拿技术成功去换珍贵的“社交媒体影响力”，这是一种哪儿都不收的虚拟货币。尽管如此，我培育新种红色毛癣菌的尝试进展顺利。

像往常一样，问题出在人。你写了一段代码解决问题，这没问题，咱们这行就是干这个的。问题出在你热情地分享那段代码。是的，我偶尔在书里附我的代码，但都是以最不友好的方式附的。你不会在 GitHedge 或 ForgedSource 或者那些不健康知识的可疑仓库里找到我的代码。想要我的代码，你必须照着印刷书逐字敲一遍。从眼睛到脑子、再到指尖的过程，让你的神经系统有充分机会在惊恐中后撤，把书扔进最近的焚化炉。要是你从电子书里偷我的代码，就会发现电子文档里可以含一些隐形的字符，复制粘贴时才显形。我电子书里的代码都含有黑色符文 Odegra，意为“致敬伟大的野兽，吞噬世界者”，所以复制是自纠正的，至少是自焚化的。作为“故障无视计算”的世界头号拥趸，我承担着沉重的责任，但我尽我那被微塑料污染的肉体所能，履行它们。

你呢？你分享你的代码，邀请别人使用、评估、寄 bug 报告、在生产环境部署。有人发现你的代码不完全满足她的需求，于是她寄来一个补丁加功能，让代码更吸引人，于是更多人采用，转眼你就有几十个用户。几百、几千。或许上亿，你弯腰驼背对着键盘审补丁、调解纠纷，25×8×366，过着最糟糕的日子，盼着有空挠挠脚。

这些用户和贡献者中的每一个，都对你这软件应该是什么样子有不同的看法。你愚蠢地保留着社区感，所以觉得有义务挨个告诉他们错在哪里，但写长邮件会把你的日子拉长到三十小时，而此时你已经录不出像样的视频了。要是能当面把他们骂服，那多省事。

又是人。你不能把一具肉身塞进纸箱，海运过去。他们又重，又得呼吸、吃饭、喝水，偶尔还得搞点嗜好。他们需要火车、飞机或海豚的票——或者随便他们怎么从所在之处挪到会议地点。你还得有个会议地点。你可以邀请大家去你的寒舍，但最好别知道你的哪位贡献者对个人卫生漠不关心乃至公然敌视。这就意味着要购买、征服或租用一块会议场地。

如果你的软件用得广，你又攒够了社交媒体影响力，多半能吸引大公司给你这项目捐钱。垄断者相信，给小人物捐款能赎罪。问题是，他们不想把钱给你，他们想把钱给你的项目。你的项目有银行账户吗？没有，因为开户要身份证明，而你在第一次公开发布前，压根没想到要给它办张合法的出生证明，你这个自私短视的笨蛋。更别说机动车驾驶证了。如果你想外人给你——呃，给你的项目、你的项目——钱，它需要一个法人实体。

你可以开公司，但那样外人会期望你拿产品或服务换钱。这不仅是你没时间做的工作，前述外人还会在乎那产品或服务是什么、价格合不合理。但基金会？基金会是慈善。人们给慈善机构捐款，让它去做慈善的事，根本不在乎合不合理。如果互联网依赖你的软件，那就是合法的慈善。况且，慈善可以雇人。你可以收捐款，给自己开工资，辞掉白天的工作，回过头每天只为你这项目干区区 12 小时！

没那么简单，因为——又是——人。每个国家都有繁文缛节，规定谁能成立基金会、必须如何领证、向哪些机构提交哪些报告。如果你的基金会收了足够的钱，就得雇一个懂行的人，又添一摞头疼事，但好在你外包给了被雇的人，所以问题不大。

一个运作良好的基金会能撑起它的项目。所谓“撑起”，我指的是它能买票、订餐、订会议室，甚至雇人去写那些特别烦人的代码，或远渡重洋、用白手套扇那些特别招人嫌的准贡献者一个耳光，约他们黎明时分拔枪决斗。一个特别顽固的基金会甚至能请得起律师，至少能把律师放在 retainer 上。大部分资金来自大公司，他们一清二楚你怎么花钱，但能拿税务优惠所以不在乎。基金会也需要大量小额贡献者，向税务当局证明个人也关心这慈善、这基金会不是为逃税——或者说不仅为逃税。你那五美元不是为那五美元，而是为“关心这事儿的人名单”上添一个名字。

> 你写了一段代码解决问题。这没问题。咱们这行就是干这个的。问题出在你热情地分享那段代码。

那么，如果基金会把这一切都办了，为什么不是更多项目都有基金会？同一个问题：人。把我骗来回答你这无聊^W 恼人^W 不可避免来信的 FreeBSD 基金会（仍未兑现 30 期专栏前承诺我的冰淇淋），靠社区来干活。总得有人搞清楚要开哪些会、买哪些票、谁值得在颧骨上高速挨一记白手套。只要基金会继续留在社区里、社区继续留在基金会里，一切都好。人是基金会。

而“人”，顺便说一句，我指的是你。正在读这专栏的你。所以，就是这样。基金会是一种把大公司的钱转化成公费旅游、餐饮和冰淇淋的方法。只不过没有冰淇淋。

现在失陪，我去处理一下我的脚，思考一劳永逸地解决一切的根本原因。

有问题想问 Michael？请发送至 <letters@freebsdjournal.org>

**MICHAEL W LUCAS** 著有五十多本书，包括《Absolute FreeBSD》《$ git commit murder》和《Networking for System Administrators》。他本以为这本《期刊》几年前就会把他踢出去，并打算逐期增加专栏的尖酸程度，直到他们动手。了解更多请访问 <https://mwl.io>。

能帮你的书。

或者不能。

> “虽然我们欣赏 Lucas 先生对本刊的独特贡献，但我们也觉得他的具体才能并未得到充分利用。请买他的书、买他的时间、买他的签名照什么的，让他去忙别的吧。”

——John Baldwin，《FreeBSD 期刊》编辑委员会主席

<https://mwl.io>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://freebsd-journal-cn.bsdcn.org/20230304-qian-ru-shi/we-get-letters.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
