2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

维护开源项目,我太难了

  • 2021-06-09
  • 本文字数:1798 字

    阅读完需:约 6 分钟

维护开源项目,我太难了

最近,零日漏洞代理公司 Zerodium宣布,正在寻找影响 Windows 和 Linux 上 Pidgin 的零日漏洞。为获得其零日漏洞,该公司出价 10 万美元。



Zerodium 官网显示,Pidgin 的零日漏洞收购时间从 2021 年 6 月 1 日到 2021 年 8 月 31 日。该公司写道,“我们正在寻找影响 Windows 和 Linux 上 Pidgin 最新版的远程代码执行漏洞。这个漏洞应该能在默认安装下起作用,且除阅读消息外,无需用户任何交互。“


对此,网名叫 Gary Kramlich 的网友发推文回应,“这真实表明了开源软件悲惨的资金状况。去年,我全职为维护 Pidgin 项目工作,薪水只有 2.5 万美元,但是如果你能在我的工作和其他人的无偿工作中挖到安全漏洞,你赚取的收入将是我的 4 倍。”


据悉,Pidgin是一款免费和开源的多平台即时通讯客户端。早在 2007 年,Pidgin 已经有 300 万名用户。


根据 Tidelift 发布的调查报告显示,近 50%开源项目维护者拿不到任何报酬。

开源项目维护,太难了

此前,坐拥百万用户的开源项目 Babel 引起开发者关注。Babel宣布,尽管有 Airb nb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企业的赞助,但由于花钱速度继续高于获取捐赠的速度,项目储备资金目前只够维持到 2021 年底。


去年,Redis 之父宣布退出开源项目维护,他说:“最近几年来,我每天的工作内容发生了很大变化。我把大部分精力花在检查其他开发者提交的 Redis 代码、改进代码质量以及提升软件正确性、速度与安全性方面。但我真的不喜欢这类维护工作。”


更重要的是,这种全年无休的上班生活让他无法放松,从而无法做一些创造性的工作。


甚至对于全球顶级的开源项目 Linux,Linux 之父也很担忧没人继续维护内核。

开源项目维护者的窘境:工作忙,薪水低

据悉,开源项目维护工作是一项艰巨的任务。如果说开发者的职责在于修复 bug、新建功能,而审查者的职责在于把控代码质量,那么维护者就是要让开源项目长久稳定地持续下去。


可以想见,正常的开源项目中必然是开发者多于审查者、审查者又多于维护者。维护者相当于一支管弦乐团中的指挥角色。如果开发者没能修复 bug,维护者需要及时救场;如果代码未经审查,维护者也得尽快介入。


另外,对于像 Linux 这样的大型项目,每周维护者大约需要面对数百项代码补丁,工作强度可想而知。


另一方面,大多数开源项目维护者“穷的可伶”。虽然 Linus Torvalds 和 Kroah-Hartman 等 Linux 顶尖维护者的收入确实可观,但是 Tidelift 的一项最新调查发现,46%的开源项目维护者根本拿不到任何报酬。即使在拥有报酬的维护者中,也只有 26%的比例年均工作收入超过 1000 美元。


这实在太可怕了!


根据 Linux 基金会开源安全基金会(OSSF)与哈佛创新科学实验室(LISH)最近发布的 2020 年 FOSS 贡献者调查报告显示,开发者参与开源项目的首要原因,在于添加自己需要的功能或者是改进正在使用的功能;第二大原因就是享受学习感、满足感、创造性以及令人愉悦的工作内容。最后一条,才是获取报酬。


但是,不管你是开发者,还是审查者或维护者,这并不代表获取报酬不重要。ZDNet 对此评论,“志愿服务的目标在于自我实现,而非无家可归。”


根据 Tidelift 的调查表明,大多数人只是还没开始留意贡献工作的无偿属性。在年收益不足 1000 美元的受访者中,只有 18%表示自己对报酬较为看重;但每年能拿到 10000 美元以上的维护者中,高达 61%的受访者开始正视薪酬的重要意义。


Tidelift 公司 CEO 兼联合创始人 Donald Fischer 表示,“整个世界都依赖于开源组件为应用程序提供动力,但我们的调查数据显示,负责建立并维持开源体系良好运行的维护者们并没能拿到适当的收益。必须开辟出一条更安全、更健康的开源软件供应链发展道路,也必须保证能有更多的志愿维护者能因自己做出的卓越贡献拿到充足的报酬。”


在调查当中,近半数受访者(49%)将“我的工作完全没有或者没有得到相应的经济报偿”作为不想担任维护者的首要原因,其次则是“会增加我的个人压力”(45%)以及“感觉不受重视、或者会吃力不讨好”(40%)。


事实上,超过半数(59%)的受访维护者已经或者正在考虑退出项目维护工作。而维护者同时管理的项目越多,决定中途放弃的可能性就越大——在同时管理 10 个甚至更多项目的维护者中,有超过三分之二(68%)已经退出或者正考虑退出。

写在最后

当今,开源已经成为一股潮流,开源文化流行,开源项目层出不穷。但是,我们也看到无数的开源项目逐渐衰落,被人遗弃,被人淡忘。想让一个开源项目具有长久的生命力,开源项目维护无疑是亟待解决的首要问题。

2021-06-09 11:142034
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 389.0 次阅读, 收获喜欢 1805 次。

关注

评论

发布
暂无评论
发现更多内容

为提升网点业务员效率,我们做的事情。

黄大路

商业

深入剖析ThreadLocal原理

JFound

Java

我的编程之路-4(进阶)

顿晓

进阶 看书 编程之路

推动敏捷,就是推动软件业变革

盛安德软件

敏捷 推动软件业变革

SQLite是什么

山楂大卷

sqlite 数据库 RDBMS 存储

竟然有人想看我的「日记」,满足一下大家

非著名程序员

学习 程序人生 提升认知

识别代码中的坏味道(四)

Page

敏捷开发 面向对象 重构 CleanCode 代码坏味道

JVM源码分析之Java对象头实现

猿灯塔

ARTS_20200520

凌轩

Java ARTS 打卡计划

nginx 概念及上手

HelloZyjS

万字长文带你看懂Mybatis缓存机制

程序员小岑

Java 源码 技术 mybatis

JavaScript 基础拾遗(一)

hq

Java 学习 文章收集

关于架构的几件小事:System context

北风

系统架构 系统性思考 架构师 系统上下文 极客大学架构师训练营

Redis 命令执行过程(下)

程序员历小冰

redis 源码分析

回“疫”录(22):我以为结束了,其实才开始

小天同学

疫情 回忆录 现实纪录 纪实

JVM源码分析之synchronized实现

猿灯塔

Android | Tangram动态页面之路(五)Tangram原理

哈利迪

android

当我们持续感觉很糟糕要怎么办

董一凡

写作 生活质量 情感

Elastic Stack 系列专辑

Yezhiwei

elasticsearch Logstash Kibana ELK Elastic Stack

如何做好 To B 的 SAAS 服务

路边水果摊

SASS 企业 服务

程序员需要了解的硬核知识大全

苹果看辽宁体育

Java c 计算机基础

敏捷为什么会失败之「PA-SA-WAKA-DA」理论

易成研发中心

Scrum 敏捷开发 Agile

Django的ListView超详细用法(含分页paginate功能)

BigYoung

Python django ListView 分页

职场“潜”规则

L3C老司机

个人成长 职场 新人 人才培养 能力模型

kotlin 200行代码开发一个简化版Guice

陈吉米

Java kotlin guice ioc mynlp

天天都是520

Neco.W

爱情 表白日

2020年全球经济萎缩,火花国际PLUS逆袭而来闪耀数字经济

极客编

SpringBoot瘦身

JFound

Spring Boot sprnig

Enhanced Github:一个 GitHub 专用的好插件

非著名程序员

GitHub 程序员 效率工具

企业数字化转型:用 SpreadJS 打造互通互链的电力系统物联网

葡萄城技术团队

数字化转型 SpreadJS 电力

Redis6.0 多线程源码分析

代码诗人

redis 源码 技术 线程模型

维护开源项目,我太难了_开源_万佳_InfoQ精选文章