【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

主力开发已经 68 岁了!“老龄化”严重的 Postgres 开源社区呼唤“年轻一代”

  • 2023-10-16
    北京
  • 本文字数:3166 字

    阅读完需:约 10 分钟

大小:1.39M时长:08:05
主力开发已经68岁了!“老龄化”严重的Postgres开源社区呼唤“年轻一代”

开源已成为这个社会的根基。从上世纪 80 年代 Richard Stallman 发起的自由软件运动,到 Linux、GitHub 以及互联网的崛起,开源的发展也已经经历了不止一代人。

 

近日,分析机构 RedMonk 发表了一篇文章,指出 Postgre 核心开发社区正在逐渐老龄化,其平均年龄可能在 50 岁左右,主力开发已经 68 岁。这些老牌开源社区,希望唤起年轻人对开源的重视。InfoQ 也就“项目维护者老化与项目可持续性之间的关系”、“开源项目如何招募更多年轻开源爱好者”等问题采访了开源社区的资深专家,希望给大家带来启示。

 

Postgres 开源社区的“老龄化”问题

 

PostgreSQL 是一个功能强大的开源关系型数据库系统,其起源可以追溯到 1986 年,作为加州大学伯克利分校 Postgres 项目的一部分,经过几十年的发展,在当前数据库领域发挥着举足轻重的作用。

 

最近,Postgres 提交者兼 EnterpriseDB 首席数据库科学家 Robert Haas 统计了该项目的贡献者情况,发现了该社区面临的一个比较严重的问题,即核心开发社区正在逐渐老龄化,其平均年龄可能在 50 岁左右。比如现年 68 岁 Tom Lane 仍然是 Postgres 项目的支柱。

 


Hacker News 上也有网友指出,Postgres 已经好几年没有新的 committer 了。因此,Postgres 开源项目的可持续性的确令人担忧:“我们假设 Postgres 在 20 年内仍然强劲,那么 20 年后谁会从事这项工作?”

 

“Postgres 引擎的不断发展非常重要。”致力于 Serverless Postgres 的 Neon 公司首席执行官 Nikita Shamgunov 指出,“Postgres committer 人群年龄都在 50、60 岁左右,也许还有一些 30 多岁的。我们希望能够雇用更多初级人员,培训他们成为 committer 并希望最终成为维护者。成为 committer 需要付出很大的努力,但成为 contributor 则没那么难——你只需要编写好的代码即可。”但作为一家商业公司,他又对花钱雇佣初级人员这事儿有点犹豫,“目前尚不清楚这种花钱的方式是不是最好的。”

 

分析机构 RedMonk 认为,队列老化不是 Postgres 独有的问题,但 Postgres “在任何意义上”都没有做到努力去吸引新用户。“让年轻开发人员进入大型机领域 IBM 在这方面就做得非常出色,例如他们发起的大学职业教育项目。”

 

无独有偶,Linux 缔造者 Linus Torvalds 也曾在几年前表述过类似的问题。

 

2020 年,Linus 在一次会议连线中谈到了为开源操作系统寻找未来维护者时的问题:Linux 社区项目管理者是 Torvalds 这批五零后、六零后,但社区终归要考虑代际变更的问题,在目前这一代维护者逐渐老去之后,Linux 项目该怎么发展?

 

Linus Torvalds 当时表示,跟那些 30 岁上下的年轻人相比,他们确实是越来越老了。而且“事实证明,维护者真的不好找。我们的维护者确实不够。”而 Linux 社区的其他核心贡献者也非常担心自己变老精力变差,但年轻一代没有像当初贡献者们那样充满热情,导致“人才匮乏已经成为 Linux 实现进一步增长的最大障碍。”

 

如何改变“老龄化”现状?

 

从某种程度上来说, Postgres 和 Linux 都希望新生代程序员能够加入到项目维护中,来改变社区“老龄化”问题。

 

那么项目维护者老化会影响项目可持续性吗?如果年轻人较少会有什么影响?开源项目如何招募更多年轻开源爱好者?我们采访了开源社区的一些资深专家。

 

只要项目维护者精力还足够,年龄变大其实也不是很大的问题。国外有不少 50、60 岁还活跃在一起的程序员,战斗力其实也不差。如果确实已经年龄很大了,对项目的长期发展肯定还是有影响的,“需要尽早做打算”,Apache 软件基金会 Member、Apache HBase PMC 主席张铎指出。

 

但 Postgres 和 Linux 可能还不同于全部开源社区的整体情况,这两个社区属于“老牌”开源社区。

 

天工开物开源基金会、执行副秘书长庄表伟认为“整个开源社区在经过早期的飞速发展期之后,应该进入稳定期,年龄分布应该趋近于整个社会的工作人群的正常年龄分布(甚至还应该再年轻一些)。而老牌的开源项目,除非能够经过高妙的运营手段,焕发新的生机,再加上老项目的技术能够保持先进性,否则对于年轻人的吸引力,就是会出现‘自然下降’的现象。”

 

因此,庄表伟认为开源社区的老龄化,可能是一个伪命题:“老牌开源项目的老龄化,虽然的确是一个现实问题,但是真正应该关注的是:老牌开源项目(技术),在日新月异的开源技术发展浪潮中,如何保持先进性的问题。

 

项目维护者退休的确会影响项目的可持续发展,但很多开源项目背后也有多个商业公司开发新分支。对于如何吸引年轻人,并要保持项目的持续健康发展,Apache RocketMQ 作者王小瑞认为,商业公司的支持也能发挥重要作用,只有在开源项目上投入的资源足够多,产生的商业价值足够大,自然就会有更多的年轻人参与。因为不但会为年轻人带来荣誉,甚至会成为年轻人一生的事业,让他们将贡献开源作为业余爱好变为主要职业。(这样原创社区作为最大投入方,吸引了最多的爱好者,创造了最大的商业价值,就能避免商业公司开发新分支,导致生态分裂等问题,也能在项目维护者退休后有更多年轻人接棒,形成正循环。)”

 

Apache 软件基金会董事姜宁,以及张铎两位老师则提出了一个有实施前例的方案:“需要项目创始人适当的退出一下,围绕着项目构建起健康的社区,这样能保证项目的可持续发展。”

 

通常来说,只要项目还有足够的使用场景,总是会有新开发者进入的。这中间的关键点就在于原来的核心维护者需要花心思培育一个活跃的社区,并且逐步后退,把更多的责任交给社区里的其他人。这样后续项目发展的问题就变成了一个社区维护的问题,只要社区能一直维护好,原核心开发者是否退出影响就没有那么大了。

 

这个典型的例子就是 Apache NuttX 项目。

 

Nuttx 是一个基于实时操作系统 (RTOS) 的开源项目,旨在提供一个可嵌入、可移植、可扩展和可靠的操作系统解决方案。其创始人 Gregory Nutt (http://www.scguild.com/Resume/7465R.html  )在 2007 年正式对外开源了 Nuttx 项目。在这之后的很长时间里,基本都是由 Gregory Nutt 一个人在维护。

 

到了 2019 年左右,Gregory Nutt 已经 69 岁了,也到了“该考虑未来的时候了”。因为项目本身的特色,小米选择了这个项目作为 IoT 操作系统的基座。所以这一年,Gregory Nutt 和小米就项目的未来进行了讨论,在成立新的基金会挂靠,以及选择加入现有的几个基金会(Apache,SPI)之间进行比较之后,最终选择加入 Apache 进行孵化。该项目于 2023 年毕业,成为了顶级项目。

 


现在,Gregory Nutt 已经不是项目里最活跃的贡献者了,甚至代码写的也不多了。但当前项目依然非常活跃,贡献者高达 400 多人,每个月都有近百个开发者贡献代码。目前基本可以确定,NuttX 项目可以在脱离 Greg 完全控制之后也能发展的很好。

 

吸引年轻人,项目本身也可以做出一些改变,张铎提到了一些其他办法:例如发掘一些新的技术方向,引入一些新的技术,比如 Linux 的 eBPF 现在就非常火,和云原生结合,就可以吸引到大量新的开发者,以及在 linux kernel 中引入 Rust,也是一个吸引更年轻开发者的办法。

 

他同时认为开源项目其实也不必拘泥于一定要年轻人,只要不停的有新鲜血液进来就可以。年轻人总是会追热点的,并且老的技术方向,市场容量本身也有限。一个操作系统项目,在对年轻人吸引力显然无法和一个 AI 项目相提并论。“所以还是要放下执念,不同生命周期的项目维护者的年龄分布肯定是不一样的,不要强求。”

 

参考链接:

https://redmonk.com/jgovernor/2023/10/10/postgres-the-next-generation-investing-in-the-next-generation-of-committers/

https://www.infoq.cn/article/NfU1d3oCcfpgXc06NXlg

https://en.wikipedia.org/wiki/NuttX

https://github.com/apache/nuttx/graphs/contributors

https://incubator.apache.org/projects/nuttx.html

https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-apache-nuttx-as-a-top-level-project

 

2023-10-16 14:1210040

评论 2 条评论

发布
用户头像
所以还是要放下执念,不同生命周期的项目维护者的年龄分布肯定是不一样的,不要强求。
2023-10-18 08:23 · 浙江
回复
用户头像
年迈的开源软件postgres维护者,可以把自己有关postgres的知识,用人工智能转化为武功秘籍。然后等着年轻人上门学艺就行了。哪怕自己一旦走了也不怕。
2023-10-17 07:51 · 北京
回复
没有更多了
发现更多内容

模块2作业 2

杨彬

架构实战营

架构实战营 模块二:课后作业

Ahu

架构实战营

如何做向上管理?

石云升

28天写作 职场经验 4月日更 向上管理

架构实战营 模块二课后作业

iProcess

架构实战营

架构实战营 模块二:学习总结

👈

架构实战营

nginx反向代理和负载均衡策略实战案例

赖猫

nginx

我是如何从零开始学Python: (1)如何选择合适的Python学习工具?

广之巅

Python 4月日更

wkhtmltopdf实践

风翱

4月日更 wkhtmltopdf

【LeetCode】存在重复元素 III Java题解

Albert

算法 LeetCode 4月日更

微信朋友圈的复杂度分析

Fleng

架构实战营

Prometheus Pushgateway 0.9 和 1.0 的区别。

耳东@Erdong

4月日更

cri-o技术探秘1

xumc

阿里巴巴用实践告诉你,架构师到底需要掌握什么样的技术?

Java架构师迁哥

模块2作业

灯火阑珊

架构实战营 - 模块二作业

Sun

陪伴的进化

小天同学

陪伴 爱情 个人感悟 4月日更 亲情

Github接近10w点赞!阿里巴巴内部Java面试参考指南

Java 程序员 架构 面试

重读《重构2》- 引入参数对象

顿晓

重构 4月日更

Linux ifconfig 命令

一个大红包

4月日更

业务架构:作业二 朋友圈高性能架构设计

Nick~毓

微信朋友圈高性能结构设计构想

我不是坏人

计算机原理学习笔记 Day9

穿过生命散发芬芳

计算机原理 4月日更

架构实战营 模块二:课后作业

👈

架构实战营

阿里致敬武侠首发“Java架构修炼笔记”,深入内核,拒绝蒙圈

Java架构师迁哥

Nacos实践

程序员架构进阶

源码分析 微服务 nacos 28天写作 4月日更

让孩子爱上阅读(二)

箭上有毒

读书笔记 4月日更

Seldon 使用 (三): 模型服务如何运行

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

微信朋友圈高性能复杂度分析

采访彩食鲜 CTO 乔新亮:数字时代,企业如何完成数字化转型?(采访提纲)

xcbeyond

数字化转型 4月日更 人物访谈

一天也不要和他们一起工作

池建强

架构实战营模块二作业

冷大大

作业 架构实战营 模块二

主力开发已经68岁了!“老龄化”严重的Postgres开源社区呼唤“年轻一代”_开源_Tina_InfoQ精选文章