首页 > 编程语言 >Python之父重回决策层,社区未来如何发展?

Python之父重回决策层,社区未来如何发展?

时间:2022-10-14 14:03:09浏览次数:86  
标签:社区 Python 指导 决策层 委员会 之父 Guido 开发者

 

春节假期结束了,大家陆续地重回到原来的生活轨道上。假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端。

在 Python 社区里,刚发生了一件大事,同样有开启新纪元的意义:在"Python 之父" Guido van Rossum 宣布卸任 BDFL(终身仁慈独裁者)后,Python 核心开发者们历经半年多的时间,终于为新的治理方案选出了第一届的“执政成员”。

Python之父重回决策层,社区未来如何发展?_python

2 月 4 日,经过为期 2 周的投票,Python 社区选出了第一届的指导委员会的 5 名成员:Barry Warsaw、Brett Cannon、Carol Willing、Guido van Rossum、Nick Coghlan。

前段时间,我曾回顾了 Python 之父的退位风波、翻译了各种治理提案的汇总介绍、也分析了核心开发者的投票意向(PS:可通过文末链接进行查看)。本文是对此事件的跟踪报道,也是一个阶段性的句号。随着第一届指导委员会成员的确定,Python 社区将迎来一个新的安稳的过渡期。本文的意义,就是向各位 Python 开发者/学习者/爱好者宣告这个好消息。

核心开发者的自治模式迎来如此重大的转变,这本就是一件值得关注的大事。Python 社区的未来走向与此息息相关,而这种治理模式的成败,也会为其它技术社区提供极好的参照系。

1、指导委员会是什么?

关于指导委员会(Steering Council),它是 7 种治理方案中最晚被提出,但却最被广泛接收的一个,最终经过投票成为了社区里新的治理方案。该治理方案以 5 人组成的指导委员会作为最高决策层,并允许在必要的时候,将决策权委派给其它团队或开发者代表。

指导委员会拥有至高的权力,但它的行事原则是:boring、simple、comprehensive、flexible and light-weight,具体而言则是,通过设定一系列的基础性的、清晰的、灵活的、轻量的规则及流程,来“指导”社区的治理工作。

指导委员会可以直接行使某些权力,例如批准或驳回 PEP、更新项目的行为守则、跟软件基金会一同管理项目资产等等,然而,过分行驶权力的方式并不受鼓励。指导委员会与其它治理提案的关键区别就在于,它将扮演规则制定者的角色,指导、引导以及协调社区工作,只有在关键时候,才会行使最终的裁决权。

指导委员会的职能是:

  • Maintain the quality and stability of the Python language and CPython interpreter,维护 Python 语言及 CPython 解释器的质量与稳定性
  • Make contributing as accessible, inclusive, and sustainable as possible,尽可能使做贡献是便利的、包容的与可持续的
  • Formalize and maintain the relationship between the core team and the PSF,巩固核心团队与 Python 软件基金会的关系
  • Establish appropriate decision-making processes for PEPs,为 PEP 建立恰当的决策流程
  • Seek consensus among contributors and the core team before acting in a formal capacity,为贡献者与核心团队寻求共识
  • Act as a "court of final appeal" for decisions where all other methods have failed,当其它所有方法都失败时扮演“最终裁决法庭”的角色

这个治理模式是借鉴自 Django 项目,详细内容参见 PEP-13。

2、指导委员会的成员?

指导委员会的固定成员是 5 人,且最多允许两人来自同一家企业。换届频率是每个 Python 发行版本。成员可连任。支持不信任投票(即弹劾)。

现在来看看第一届当选的成员:

  • Barry Warsaw:自1995年起成为核心开发者之一,荣获 2014 年的弗兰克·威利森纪念奖。目前供职于 LinkedIn(已被微软收购,也即供职于微软),业余爱好是音乐和太极。
  • Brett Cannon:自2003年起成为核心开发者之一,荣获 2016 年的弗兰克·威利森纪念奖。曾担任 Python 软件基金会的执行副主席。目前供职于微软,负责 VSCode 的 Python 插件项目。
  • Carol Willing:Python 核心开发者,Jupyter 核心开发者及 Jupyter 的指导委员会成员。自由职业,兴趣在于科研及教育项目。
  • Guido van Rossum:Python 的创始人,被称为“Python 之父”,长期领导 Python 社区的发展,直到此次的退位风波。目前供职于 Dropbox。
  • Nick Coghlan:自2005年起成为核心开发者之一。目前供职于 Tritium。

Python之父重回决策层,社区未来如何发展?_python_02

弗兰克·威利森纪念奖

注:弗兰克·威利森纪念奖,即 Frank Willison Memorial Award,该奖由 O'Reilly 出版集团设立,颁布给为 Python 社区做了突出贡献的个人。设立于2002年,每年颁布一次。

这些成员都是多年的资深核心开发者,为 Python 发展做出过长足的贡献。最值得一提的当然是 Guido van Rossum,他并没有离开决策层。事实上,Guido 是自荐成为候选人的,并且是 17 名候选人中最早自荐或被提名的几个人之一。

在当选之后,其他人都在 Twitter 上转发了好消息,而 Guido 不置一词。这留下了一个悬念:Guido 出于什么考虑而决定重回决策层呢,又将会扮演怎样的角色呢?

3、开源技术项目的发展?

要发起一个开源的技术项目,似乎并不难,然而,要使它推广到广大的技术群体,打造出完整的技术生态,并且持续健康地运作下去,这就太难了。

今天,看到一则新闻:Bootstrap 5 将彻底移除对 jQuery 的依赖。我不由地想起半年前,Github 也宣布了完全放弃 jQuery。jQuery 是著名的前端开源项目,几年前一统江湖盛极一时,然而随着 MVVM 框架的崛起,目前已到了穷途末路的境地。

Python之父重回决策层,社区未来如何发展?_开发者_03

jQuery没落,群雄争霸

这揭示了技术项目发展的第一大难题:保持技术的领先性。近几年,Python 凭借着在人工智能和科学计算领域的赫赫战功,成为了众多开发者追捧的对象,对我等追随者来说,真是喜闻乐见。乐观地想,Python 至少还不会因为技术原因而没落。

去年,技术社区里还发生了一件大事:Linux 之父 Linus Torvalds 宣布要无限期休假。这个新闻跟 Python 之父的退位相比,所引起的轰动效应可要大得多了。

这两件事有很大的相似性,引发了我的好奇心:开源技术项目所重度依赖的灵魂人物离开了,它们如何才能继续健康地发展运作?

这个话题对我等小小的边缘码农而言,实在是超出能力范围而无法回答。所幸的是,他们又回归了。不过对于核心开发者们来说,这个话题迟早要面对,现在的风波就是一个预警。

Python 社区贡献出来的指导委员会治理方案,会带来什么样的变化,会引领社区走向何方呢?拭目以待。

相关链接:

​这件正在发生的事,关乎所有的Python开发者……​

​https://www.python.org/dev/peps/pep-0013/​

​https://www.python.org/dev/peps/pep-8016/​

-----------------

本文原创并首发于微信公众号【Python猫】,后台回复“爱学习”,免费获得20+本精选电子书。



标签:社区,Python,指导,决策层,委员会,之父,Guido,开发者
From: https://blog.51cto.com/u_14244765/5756420

相关文章

  • Python猫荐书系列之五:Python高性能编程
     稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非Python与Go莫属,于是,隔三差五就会有人问:这两种语言谁更厉害/好找工作/高工资……对于编程语言的争......
  • 由浅入深:Python 中如何实现自动导入缺失的库?
    在写Python项目的时候,我们可能经常会遇到导入模块失败的错误:​​ImportError:Nomodulenamed'xxx'​​​或者​​ModuleNotFoundError:Nomodulenamed'xxx'​​......
  • python操作mysql
    安装第三方库pipinstallpymysql连接数据库案例1案例2插入数据时,需要commit提交方式2应用实例代码实现......
  • Python 进阶之源码分析:如何将一个类方法变为多个方法?
    前一篇文章《​​Python中如何实现参数化测试?​​》中,我提到了在Python中实现参数化测试的几个库,并留下一个问题:它们是如何做到把一个方法变成多个方法,并且将每个方法与......
  • Python 之父的解析器系列之七:PEG 解析器的元语法
    原题|​​AMeta-GrammarforPEGParsers​​作者|GuidovanRossum(Python之父)译者|豌豆花下猫(“Python猫”公众号作者)声明|本翻译是出于交流学习的目的,基于​​C......
  • Python 之父的解析器系列之三:生成一个 PEG 解析器
    原题|GeneratingaPEGParser作者|GuidovanRossum(Python之父)译者|豌豆花下猫(“Python猫”公众号作者)声明|本翻译是出于交流学习的目的,基于​​CCBY-NC-SA4.0......
  • Python基础篇:某宝一键秒杀,毫秒级的精准度
    某宝秒杀,用毫秒级的精准度来抢购! 还记得前段时间情人节,各种产品活动秒杀。结果自然少不了被对象一番折磨 (注意:不是new出来的哈,也不是橡胶的,实实在在的女朋友) 于是乎彻......
  • Python subProcess库以及Popen类的使用
    subprocess库是一个十分强大且常用的库,它可以用来调用第三方工具(例如:exe、另一个python文件、命令行工具)。1.常用函数call():执行由参数提供的命令,把数组作为参数运行命令......
  • Python中Try/Except/else/final语句
    python中的try/except/else/finally语句 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言......
  • Python 小技巧:如何实现操作系统兼容性打包?
    有一个这样的问题:现要用setuptools把一个项目打包成whl文件,然后pipinstall在Windows/Linux两种操作系统上,但是该项目中有一些依赖库只有Windows上才有(例如pywin......