写点什么

主力开发已经 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:1210397

评论 2 条评论

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

共筑使能千行百业的数字底座 | HDC 2022松湖对话顺利召开

OpenHarmony开发者

OpenHarmony

重磅!涛思数据发布TDengine PI连接器

TDengine

数据库 tdengine 时序数据库

美团前端常考手写面试题(边面边更)

helloworld1024fd

JavaScript

阿里云Imagine Computing创新技术大赛正式开启!

阿里云CloudImagine

阿里云 技术大赛

CIO们开始将软件供应链升级为安全优先级top

SEAL安全

DevOps 开源软件 软件供应链 SBOM 软件供应链安全

澜舟科技AIGC再进一步,推出澜舟论文助写 LPA,用 AI 帮助写好英文论文

澜舟孟子开源社区

人工智能 nlp 文本生成

从华泰证券年报看数字化转型的平台化趋势

王和全

数字化转型 数字化 华泰证券 平台化

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

假如面试官要你手写一个promise

helloworld1024fd

JavaScript

深入浅出分布式,阿里大牛手写《分布式核心原理》Github一夜爆火

Java永远的神

分布式 程序人生 分布式计算 分布式系统 分布式存储

链上互助公排代币模式dapp系统开发合约定制

开发微hkkf5566

低码平台标准列表页落地实践,同事直呼好活

Java全栈架构师

Java 程序员 程序人生 低代码开发 低代码平台

阿里云E-HPC+i4p大内存实例,加速寻因生物单细胞数据分析效率

阿里云弹性计算

HPC

React组件复用的技巧

夏天的味道123

React

React组件复用的发展史

夏天的味道123

React

动手实践丨使用华为云IoT边缘体验“边云协同”

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

一本书,带你走出Spring新手村

博文视点Broadview

React的5种高级模式

夏天的味道123

React

想会用synchronized锁,先掌握底层核心原理

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

浅谈:数字资产永续合约交易所开发有什么好处?

W13902449729

合约交易所开发 区块链交易所开发

聊聊FinOps

Jianmu

AI技术在基于风险测试模式转型中的应用

百度Geek说

人工智能 AI技术 企业号十月 PK 榜 智能测试

react源码中的hooks

flyzz177

React

聊聊前端开发中的 Ghost Design 设计思路

汪子熙

前端开发 angular web开发 SAP 11月月更

最近面试经常被问到的js手写题

helloworld1024fd

JavaScript

Centos7下Docker的安装

我是一个茶壶

容器 ,docker 11月月更

react源码中的生命周期和事件系统

flyzz177

React

OpenHarmony移植案例: build lite源码分析之hb命令__entry__.py

华为云开发者联盟

鸿蒙 芯片 华为云 源代码 企业号十月 PK 榜

元宇宙场景技术实践|实现“虚拟人”自由

ZEGO即构

react源码中的协调与调度

flyzz177

React

走进 Orca 架构及技术世界

KaiwuDB

数据库·

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