澎湃Logo
下载客户端

登录

  • +1

创造无数价值的开源程序员们,竟是在为爱发电?

2023-07-31 16:20
来源:澎湃新闻·澎湃号·湃客
字号

开源正在面临崩塌。

这是从1987年到2020年,世界上最大的开源开发者平台Github上的项目活跃度和贡献者人数变化趋势。

你很容易发现,从2012年起,两个指标都出现了断层式下滑,现在已经掉回了本世纪初的水平。

让我们从一个开发者的故事中,来看看这一切发生的原因。

一、崩塌的理想

九年前的一晚,俄罗斯开发者Denis Pushkarev发布了Core-js。

五年之后,他却面临牢狱之灾。

2014年,当时的JavaScript(一种在Web开发中具有非常重要地位的脚本语言)缺乏一个足够庞大的标准库,也就是编程语言的常用功能和工具集合,而且有着严重的兼容性问题。

开发人员必须要自己编写一些数据结构和算法,或者使用第三方库才能够完成自己的工作。而有些代码在不同浏览器之间存在差异,经常无法运行。

世界各地的互联网公司和程序员屡次尝试,但都没有很好地解决这些问题。

那一晚,Denis让这些问题成为了过去式。为了让无数的开发者更加方便地使用JavaScript,他将自己的Core-js作为开源项目发布了出去。

但是如今,Denis却将这一决定称为“一生中最大的错误”。

Core-js是一个全面的JavaScript标准库,可以在很大程度上让开发者们避免JavaScript之前一直存在的问题。

用一个简单的比喻,Core-js对于Java开发者而言就像一把瑞士军刀,易携而且能够很快解决他们此前颇为棘手的各项问题。它的出现意味着开发者们可以更快速、便捷地开发和部署Web应用程序。这给开发者们带来了曙光。

得益于此,Core-js一经开源就深受开发者们的欢迎,初期传播便呈指数级增长。下面的第一张图表示的是Core-js的每月下载量的变化趋势,而第二张则表示下载量累加值的变化趋势。你会很快发现它的下载量是多么惊人,并且长期以来处于增长态势。

时至今日,Core-js的下载量累加值已经超过了76亿次,相当于地球上每个人都人均下载一次。当然,考虑到前端程序员在我们生活中占比少数,可想而知它在代码世界中的重要性。

“我可以肯定地说,大多数流行网站都在使用Core-js。而且不仅仅是关于网站前端,几乎所有使用JavaScript的地方都有Core-js的身影。”Denis说。

这句话展现了他的能力非凡,但带有一丝自嘲的味道。

原因在于:如此高的下载量却没有给他带来一分钱的收入,只因为这是一个开源库。进一步的,这个开源库的维护工作还将他拖入了深渊。

Core-js并不是一个可以写完就丢在一边的项目,它和Web的状态绑定,需要时刻更新维护。出于对项目的负责,Denis身陷于此。他渐渐发现,自己没有精力同时兼顾本职工作和对它的维护。

一开始,Denis希望能够找到与他志同道合的其他开发者加入维护项目,但均以失败告终。没有人愿意和他完成这项没有任何报酬的工作。

于是,他最终选择辞掉原本的高薪工作,全职从事开源——那时候的他以为“金钱不是第一要义”。

之后的几年,虽然Denis失去了工作,但靠着一些短期合同,还能够保持体面的生活。

直到2019年的那场车祸。

那年,Denis因摩托车祸致人伤亡,被判入狱18个月。这意味着,在一年半的时间里,这个对世界互联网如此重要的Core-js将无法被维护。

Denis试图与受害者和解,但高昂的赔偿和律师费让他无力承担。他在开源平台上募集赞助,结果一个月间,只收到了57美元。与此同时,Denis联系了很多开源开发者,希望对方能够在他服刑期间帮助维护Core-js,但乏人响应。

最终,Denis筹措不到和解资金,认罪入狱,并在十个月后提前出狱。在此期间,Denis只能委托一位不搞开源的朋友负责项目基础维护。

出狱后,Denis仍在坚持维护Core-js。但一个月400美元的微薄收入,让已经成为父亲的他力不从心。他正在重新考虑自己的选择和努力是否真的正确。

“我受够了以牺牲我和家人的幸福为代价,来帮助无数大公司了。我想要确保我家人的生活,想让我儿子有一个光明的未来。”

二、无名的英雄

在万千开源工作者的生涯中,这样的故事不是个例。他们为了更美好的互联网世界作出贡献,但现实很难报之以歌。

开源项目,指的是开放源代码、公开使用且非盈利的项目。它们可以是完整可用的应用程序,而有一些项目是用于组成其他程序的模块。程序员们使用这些开源模块来构建自己的应用程序、网页等。

用最简单的话说,开源等于你将自己的软件工作赠予了世界。

这样做的意义是什么?在于它打破了大公司的技术垄断,让平民能够用上便宜的技术。

传统的商业软件通常需要支付昂贵的许可证费用才能够使用,这是小企业和个人无法承受的。但开源的出现打破了这一局面,让小型组织获得以往难以想象的创新和发展机会。开源者在其中谋求的,是精神上的富足。

此外,开源项目的开发模式与人们此前理解的软件开发,有着很大的区别。

你可以把开源程序看做积木,在一个开源程序的生命周期中,它们会参与成千上万个应用程序的构建,就像一块块积木可以搭建成不同的城堡。也正因如此,开源程序必须时刻保持更新,使其能够兼容最新版本应用程序的开发。

当人们想要开发一个开源项目时,他们一般会先提出问题和建议,这些问题和建议由一个或一组维护者来管理。接着,维护者与开发者讨论开发的方向和实现方法,并规划好每个阶段的目标和时间表。

开发者根据讨论和规划编写代码,并定期将代码提交到Github上的仓库中。每个提交的代码都对应一个特定的功能或修复,这些功能和修复可能由多个开发者完成。开发者通常采用分支开发模式,每个分支对应一个特定的功能或修复。

当一个功能或修复完成后,开发者会提交一个合并请求到仓库中,请求维护者审核并合并代码。维护者会审核合并请求中的代码,并提出修改意见或建议。开发者再根据维护者的反馈进行修改,再次提交请求。维护者最终审核通过后,会将代码合并到主分支中。这样,开源项目就能不断地得到更新和改进,更好地满足用户的需求。

简单来说,做开源项目就像是很多人一起盖房子,维护者是这座房子的总设计师,但是其他开发者也都可以一起完善这座房子,根据自己的想法提出意见并改建。久而久之,这座房子在众人的加工下变得日益精美、完善。最后,不仅是开发者,任何人都可以拷贝这套房子的图纸,用它来修缮自己的家。

开源开发者们也有自己的生活和工作,但是为了更好的互联网、更好的世界,他们成为了志愿者,无偿地分享自己的技术和天才般的想法,为社区和用户提供更好的产品和服务。

而在这样的共建过程中,开发者们可以自由坦诚地相互交流和学习。遇到不懂的难题,总会有“大佬”伸出援手,带领更多的后辈继续探索无垠的代码世界。这样的模式与环境培养了可观的技术人才。

因此,你可以从这样的模式中理解,开源开发者们很难获得收益。一般来说,一个开源项目也提倡捐款,或者由开源基金会统一收集捐赠款项。但作为一个非强制性的政策,捐款得来的收益自然就聊胜于无了。

下面是Github历史上最热门的开源项目。

你还会看到那些提交了最多代码的开源贡献者们,他们对于今天的世界互联网搭建举足轻重。但他们的名字却鲜为人知,就像是黑夜里的英雄,无法被人关注。

“每天挤时间持续维护了8年,不仅累,而且不赚钱,也没几个人用,纯靠兴趣,但还是会继续维护下去。”国内知名开源开发者Ruki表示。尽管面临重重困难,但他仍旧打算继续自己的开源之路。

2021年,知名软件包管理平台Tidelift发布的开源维护者调查报告显示,开源维护者们最在意的事情是通过自己的努力让世界更美好,只有很少的人会在意获得的报酬。

同样的,Tidelift也调查了这些开源开发者们每年的收入。发现近半数开发者并不能从他们的开源工作中获得一分钱的收入,而只有约13%的开发者能够仅凭开源项目维持生计。

三、困兽的牢笼 

“为爱发电”很难持续。Github社区因此面临了我们开头提到的衰落。 

尤其是,停止维护的开源项目数量也在逐年增加。截至2021年,可获取的数据显示,绝大多数开源项目已处于废弃(超过一年不再更新)状态。

到了现在,GitHub上有近半的代码已经无法使用(无法适配其依赖内容),可以预见,这样的比例还会继续上升。

而是什么导致了这一现象?

首先,开源开发的志愿者基数正在减少。随着免费开发开源项目的志愿者的数量减少,有偿的开源开发工作并未增加到足以填补这个空缺。就像一块大蛋糕被削掉了一大块,但我们又没有足够的奶油去填满这个大洞。越来越多的开源项目因此慢慢被放弃维护。

其次,公司的资源管理模式也影响了开源开发。现在,比起无偿的志愿代码贡献,有偿的代码贡献变得越来越常见。公司希望程序员们将更多时间用于开发公司需要的功能,缩减了他们的空闲时间,影响他们无偿开发自己想要的开源功能。

此外,参与开源项目的行为正在发生变化。越来越多的人选择偶然性地参与,比如修复一些小错误或提出一些建议,而非长期贡献。这就好比过去的志愿者愿意长期在公园做环保清洁工作,现在则更多的人只是路过时顺手捡起一片垃圾。

最后,开源项目的质量正在逐年下降。越来越多参与者提交的代码质量低,让开源项目拥有者的审核工作量加大,负担加重。就像在一个筛选果子的过程中,如果我们发现大部分的果子都有病虫害,那么这个筛选过程就会变得更加繁重和复杂。

不仅如此,开发者们开源的目的正在悄然改变。开源曾经是纯粹的集体志愿服务,现在则更多地被看作是个人职业发展的方式。这就像过去人们为了公益而志愿植树,现在则是为了积攒履历和提高职业技能。

随着技术的不断进步,代码变得越来越复杂,对开发人员的技能要求也越来越高。对于初学者来说,这就好像他们刚刚学会了游泳,却被要求跳进一个无底深渊。

以下是一些具体的例子,它们能进一步揭示开源领域的问题和挑战。

第一个案例是James,他曾参与一个名为Apache的开源项目。然而,他很快就遇到了困境。他表示:“治理问题对我来说远比提交的补丁更为复杂,让我感到束手无策。”就像一个家庭主妇在整理一堆杂乱无章的衣物,不知道从哪里开始,这种情况无疑让人感到挫败。

第二个例子是一个开发者遇到了一种新的编码风格,也就是每一位开发者写代码时所独有的特殊风格,他在此前的编程工作中从未接触,因此他对此并不认同。他需要将自己的模块修改到这种规范格式上,他感到既无意义又无聊。这就像让一个艺术家在画布上需要严格按照他不赞同的风格创作,创作过程自然乏味。

最后一个例子是一个项目的糟糕维护。该项目的一位贡献者表示,他搞不清楚自己做的事情是否符合项目的要求。当他向项目维护者提出这个问题时,维护者的回复是让他自己找方法解决。这就好像一个厨师正在准备一道复杂的菜肴,却发现菜谱描述得太糟糕,而当他向写菜谱的人询问时,却被告知需要自己去摸索。这种情况无疑令人感到沮丧,最终他选择了放弃。

四、最后的呐喊

上面的数据在冷酷无情地告诉我们:开源正在逐渐消失。早晚有一天,它可能会不见踪影。充满热情与自由的互联网世界,恐怕真的会离我们远去。

那么,我们能为开源做些什么呢?

或许我们并不懂编程,但是我们可以打开Github,看看那些开源作者们都做了哪些贡献,要是看到比较欣赏的,可以点个星标或者关注。是的,对于开源开发者们而言,精神上的鼓励,比金钱更能让他们满足。

如果手头有点闲钱,我们可以很方便地找到一些开源基金会,给它们一些资金上的支持。这些资金可谓雪中送炭,会帮助开源开发者们让他们渡过难关,继续坚持自己的理想,为这个世界做出更多贡献。

或许你也学过一点编程,也有时间和兴趣继续在这个领域钻研。那么欢迎你加入开源共建,和广大的开源开发者们一起,成为这个世界的英雄。不用担心自己技术不够好,能力不够强,因为你会发现身边的每一个开源作者都会耐心地指导你,你的疑问和困难总是会有人给你意见。

直到有一天你也成了他们。

作者:池光耀,沈岩松,梁子平,赵靖文

指导老师:赵鹿鸣

本文为上海外国语大学新闻传播学院《数据可视化》(本科)课程作品

 

参考资料:

[1]知乎:如何看待国内开源项目的不可持续性https://www.zhihu.com/question/355691918/answer/2076173699

[2]差评:坐拥千万用户的大佬,竟然穷到删库跑路?https://mp.weixin.qq.com/s/gZkyKtzPD4RsXS7DVl-Vpw

[3]2021_Tidelift_Maintainer_Survey_FINAL.pdf https://tidelift.com/subscription/the-tidelift-maintainer-survey#form

[4]白开水不加糖: 开源如此火热,但研究表明该领域已不再增长 - OSCHINA https://www.oschina.net/news/118100/open-source-is-not-growing-anymore

[5]CSDN:入狱 10 月、网暴不断,并挣扎在温饱线!超 90 亿次下载的开源项目,背后是这样的9年 https://mp.weixin.qq.com/s/TSY5_ZWzkaaS0obhFfs3Vg

[6]Michael Dornera, Maximilian Caprarob, Ann Barcombc, Krzysztof Wnuka:A Replication Study on Measuring the Growth of Open Source https://arxiv.org/pdf/2008.07753.pdf

[7]michaeldorner:Quo Vadis, Open Source? - GitHub https://github.com/michaeldorner/quo-vadis-open-source

    本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。

    +1
    收藏
    我要举报
            查看更多

            扫码下载澎湃新闻客户端

            沪ICP备14003370号

            沪公网安备31010602000299号

            互联网新闻信息服务许可证:31120170006

            增值电信业务经营许可证:沪B2-2017116

            © 2014-2024 上海东方报业有限公司

            反馈