写点什么

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

评论 2 条评论

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

拒绝裸奔,SpringBoot集成Jasypt加密敏感信息

IT学习日记

jasypt 8月月更 Springboot配置文件加密 敏感信息加密

深入分析JVM执行引擎

架构 Java、

Spring源码分析(二)Spring怎么扩展解析xml接口的

石臻臻的杂货铺

spring 源码 8月月更

1. 操作系统—概述

小呆鸟

操作系统 8月月更

3. 操作系统—物理内存管理

小呆鸟

操作系统 操作 8月月更

数据、算力强支撑,佳格天地联合华为云打造农业农村大数据解决方案

IT资讯搬运工

Sring源码解析(一)Spring是怎么读取配置Xml文件的

石臻臻的杂货铺

spring 源码 8月月更

Prometheus 实战 (1):容器安装

Grafana 爱好者

Prometheus

【小程序项目开发-- 京东商城】uni-app之首页商品楼层

计算机魔术师

8月月更

2. 操作系统—中断、异常、系统调用

小呆鸟

操作系统 操作 8月月更

YonBuilder移动开发 AVM框架 封装车牌号输入键盘组件

YonBuilder低代码开发平台

程序员 App 移动开发 多端开发

前端高频面试题(附答案)

helloworld1024fd

JavaScript 前端

【小程序项目开发-- 京东商城】uni-app开发之分包配置

计算机魔术师

8月月更

长安链源码分析启动(4)

长安链

隗华:OceanBase 企业服务助力客户实现业务无忧

OceanBase 数据库

在线XML转YAML工具

入门小站

工具

每日一R「19」网络编程(一)

Samson

学习笔记 8月月更 ​Rust

测试需求平台2-搭建前后端分离github托管项目

MegaQi

测试平台开发 9月月更

前端食堂技术周刊第 50 期:TypeScript 4.8、Deno 1.25、Terminal Gif Maker、CSS :has() 伪类、Deno ch

童欧巴

【小程序项目开发-- 京东商城】uni-app开发之轮播图

计算机魔术师

8月月更

在线图片隐写术加密传递数据

入门小站

工具

在线图片隐写术解密解码传递数据

入门小站

工具

【小程序项目开发-- 京东商城】uni-app之分类导航区域

计算机魔术师

8月月更

长安链源码分析启动(5)

长安链

后疫情时代,传统制造业如何打破生产协同瓶颈?

IT资讯搬运工

易周金融分析 | 银行理财市场渐趋理性;“睡眠信用卡”持续清退

易观分析

金融 银行 信用卡

二层交换机与路由器的区别

阿柠xn

计算机网络 交换机 路由器 8月月更

【机器学习】向量化计算 -- 机器学习路上必经路

计算机魔术师

8月月更

常见性能瓶颈分析方法

穿过生命散发芬芳

8月月更 性能瓶颈

真值和机器数及机器数的相互转换关系

乌龟哥哥

8月月更

【小程序项目开发 -- 京东商城】uni-app 商品分类页面(上)

计算机魔术师

8月月更

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