原文:https://kettanaito.com/blog/the-dark-side-of-open-source
作者:Artem
译者:ChatGPT 4 Turbo
编者注:一些收获,1)贡献者和作者经历差异大,像周末的志愿者而后每天干活的园丁,2)享受开源项目无人关注时的快乐,3)JavaScript 生态的开源库大多是产品,因为靠 Sponsor 支撑开源财务的概率太低,构建产品才能抵消财务上的支出。
“在开源中贡献力量,这是我经历过的最美好的事情!” 这句话我最近在 Twitter 上听得越来越多。尽管我不反对这个说法本身,我感觉它有意无意地忽略了关于贡献和管理开源项目的一些重要真相。就像你推荐了一条远足路线,最终能够看到难忘的景色,但是你没提到这条路上的挑战和所需的准备。我知道会有人选择这条路线,如果没有准备,就会发现自己不知所措,面对开源维护者实际生活时感到不知所措。既然我创建这个博客的目的是写一些我认为人们应该更多讨论的事情,那么现在是时候让我来谈谈那片广阔而吸引人的开源领域了。
状态检查
我将从一个开源作者的角度来写。一部分原因是我在这个领域有最丰富的经验,并且可以突出我自己遇到的问题。但主要的原因是我相信,当一个贡献者提交了第一个 commit,他就成为了一个作者。
贡献者和作者在开源经历上有很大的不同。周末去公园做一些志愿维护工作,和成为那个每天修剪草坪、安排维修、培养和照料公园动物的园丁,并不是一回事。这就像生活在两个不同的世界,这两个世界最终会相撞。
我应该提一下,我无意让你从开源世界中退缩,无论你想成为这两者中的哪一个。开源确实是一个学习和交友的好地方——这一点,你已经被正确地告知了。它已经是我学习的主要途径有五年之久了,我若阻止你学习就太愚蠢了。所以,如果你正在考虑开展第一次贡献——无论如何都要去做。我们文章结尾见。
享受无人发现的快乐
我这么说一点也不带讽刺意味。享受你的项目还只属于你的时刻——那真的很神奇。一旦它们被发现并得到关注,一切都会根据接受率而改变,所以不要错过一个新项目未被人知晓时的新鲜感。
在这里,我很想说“做出伟大的东西,人们自然会跟随”,但这与事实相去甚远。这就像在音乐行业中打响名声:这与你创作的音乐类型和质量无关。这是一次又一次走运的问题。因为仅仅是说服人们看看你在做什么就需要付出巨大的努力,更不用说让他们接受并做出贡献了。
再次说,享受无人发现的快乐。在你的车库里弹奏你的歌曲,或许还有一群朋友陪伴,这有一种独特的感觉。不是每个人都需要聚集大量观众或销售白金唱片。成为著名音乐家的生活不只是囤积大量现金和饮用大桶的葡萄酒。还有挑战和困难,所以在它们还未出现在你的日常清单上时,享受当下吧。
如果,最终,你决定全力以赴并寻求关注,使用你能使用的任何工具:社交营销、在会议上发言、加入现有社区,以及在网络上交朋友。后者是对我帮助最大的,我非常幸运地多次被社区中了不起的人们推荐我的作品。然而,你的旅程是你自己的。
在推广你的开源作品时,你将学到很多关于营销的知识。嗯,毫不奇怪。坦白说,你推广的不会是开源,你将会推广……
这是一款产品,而不是一个功能
想想在你心中与“成功”关联的开源项目。现在,这个项目是:
- 被收购;
- 由一家公司拥有;
- 作为进入付费产品的入口;
- 得到了足够数量的自愿赞助的幸运彩票;
- 任何上述组合。
在 JavaScript 生态系统中,这种可能性大约是 100%。如果你觉得你想到了一个例外,那么在你不知道的情况下,它肯定正朝着这些方向之一发展。
开源库 是 产品。
甚至习惯于为它们品牌化,绘制标志,设计独特的风格,以及沉迷于产品的其它形式的品牌推广。这不是坏事,只是可能会被你热情的眼睛所忽略,而且我很少看到那些项目的作者提及这一点。
许多这样的项目仍然由热情而无限创造力的人构建,但尽管如此,它们都注定以某种方式成为产品。
热情是极好的,但它是一个糟糕的晚餐。
除此之外,任何热情都需要保持活力。因此,为了保持他们灵感的火花,作者寻找财务维持项目的方法是自然的。只有一个问题。
如果你看上面的列表,没有一个点与你正在做的实际开源工作有关。作者的财务稳定来自外部来源——通常是他们自己在已经投入到项目中的巨大努力之外建立的。
开源中的金钱
每当我在一句话中提到“金钱”和“开源”,房间里的每个人突然都安静下来。因为某种不正常的原因,将法律上和无限制免费的东西与如此肮脏的东西如金钱联系起来是一个不成文的禁忌。老实说,我不明白这点。我们怎么能将禁忌与根本不存在的东西联系起来呢?
因为开源中没有金钱。
当然,没有贡献者参与项目仅仅是为了从中获得财务收益。开源从来不是关于金钱的。但对你作为一个作者来说,缺乏资金来维持你的想法,并为你在其上花费的时间(即使只是一小部分)支付费用——我不打算撒谎——是毁灭性的。一开始这可能不是你关心的问题,但当你的想法变得流行,需要的时间远超一天中的小时数时,它将不可避免地成为一个问题。
虽然如此,确实存在着被其用户支持的独角兽级项目。至于你的项目是否会成为其中之一,那是另一个讨论话题了。我会说,靠自愿赞助获得稳定财务支持的概率,可能比你连续中多次彩票要低。整个开源文化就是这样设计的,不需要也不迫切去赞助创作者,几十年来这个方向也没有丝毫改变。就像无风日的静止风车,开源的财务状况悬而未决,无人追问,停滞不前。
这就是为什么几乎每个人都会在他们的开源理念内部或周围构建一个产品。我不能说我赞同这个方向,但它肯定是唯一对每个人开放的方向。我确实认为,将理念产品化会导致优先级的转移,这往往最终会导致对产品最有利而不是对其用户最有利的决策。归根结底,在产品问题上,是收入在驱动一切,因此大家都陷入了一个无休止的拉锯战中,吸引用户仅仅使用他们的产品。
规划你的出路
你越早开始将你的理念视为产品,你的开源(和个人)生活就会变得越健康。对于任何产品来说,考虑你的退出选项都是值得的。在开源的背景下,这些选项将会让你的产品维持下去,让你的创造力得到滋养。
大多数我能想到的项目都有明确的维护策略,这并非巧合。我并不是在倡导你去平行地为你的其他创意写一个 SaaS,但如果你能够,当然请继续。在其他情况下,考虑你的项目的未来,并想想不让这个未来变成你的第二份工作的出路。如果我在上一节中至少传达了一些我的观点,那么你自己就能清楚地回答这份工作的报酬会有多好。
进一步说,不是所有的理念都能转化为有偿产品。你可能会想出一些绝妙的工具,它们既不能单独销售也不能作为另一款产品的一部分出售,让你处于一种不确定的状态。不要等到那种情况发生,要尽早为你的项目制定一个合理的维护计划,并坚持下去。
我很想向你推荐一些具体的事情,或者在可持续开源方面给你一些方向感。但我做不到。这并非因为我想将宇宙的秘密独自保留,而是因为我自己也还没弄清楚(来自边缘地带的问候!👋)。我的项目停滞不前,我在它们上面花费了太多的空闲时间,以至于我感到筋疲力尽。一旦我弄明白了,我会写另一篇文章,但就目前而言,我能做的最好的事情就是提醒你,并希望你能比我做得更好地准备。
建立健康的平衡
即使是在最初的日子里,当你为了乐趣而构建某些东西,而且没有期望或希望它会被任何人发现时,也要在你花在开源上的时间里保持健康的平衡。当你的项目真的被发现,人们开始要求更多的时候,想要考虑这种事情就太晚了。
开源是一个充满可能性的广阔海洋,很容易在其中溺水,眼睁睁看着小时和周飞逝,你的想法逐渐成型。从事开源工作确实引人入胜,坦白说,也很容易上瘾,但要小心不要牺牲你的个人和家庭时间。你可能觉得这听上去很傻,但我知道每当我看到有人在我的项目上报告问题时,我是多么容易感到轻微的恐慌。当我意识到我无法像我希望的那样快速地推进我的想法时,情况也变得令人不安,因为想法实在太多了。心理健康不是开玩笑的事情,是不同的事情让我们感到快乐、悲伤、紧张或振奋。这就是为什么对开源持适当的平衡和态度至关重要的原因。
诚实地说,我建议只在一天中为开源活动设定一个时间限制。"好吧,现在是下午 5 点,所以我有一个半小时来贡献给开源,"这就是良好平衡的开始。当然,你可能会慢慢有能力分配更多的时间,但重要的是清晰的活动边界让它保持健康。不要在晚上或夜里工作。不要忘记你的朋友和你所爱的人。相信我,他们比世界上所有的代码都重要。
一旦你变得 “重要”,尝试保持事物的简单性。不要让它冲昏头脑。不要为愚蠢的事情感到压力。是的,我们编写的代码,最终,只是一件愚蠢的事情。这并不意味着它不有趣或毫无意义,但它只是——计算机中的字节。有趣的是,将你的态度转变为更加疏远的态度,也会对你所做的工作产生积极的影响。当创造者健康时,每个人都是赢家。
总结思考
没有比开源更好的地方来学习工程知识了。也没有比开源更容易牺牲个人生活和心理健康的地方了。你如何在这两者之间找到平衡,完全取决于你和你建立的 你的 开源工作文化。让你的想法成真。帮助他人。最重要的是,记得时不时地从开源工作中抽出一周的时间休息一下,这将是值得的。