Python之父重回决策层,未来如何发展?
作者 | 豌豆花下猫
来源 | Python猫(ID:python_cat)
春节假期结束了,大家陆续地重回到原来的生活轨道上。假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端。
在 Python 社区里,最近发生了一件大事,同样有开启新纪元的意义:在"Python 之父" Guido van Rossum 宣布卸任 BDFL(终身仁慈独裁者)后,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。

弗兰克·威利森纪念奖
注:弗兰克·威利森纪念奖,即 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 框架的崛起,目前已到了穷途末路的境地。

jQuery没落,群雄争霸
这揭示了技术项目发展的第一大难题:保持技术的领先性。近几年,Python 凭借着在人工智能和科学计算领域的赫赫战功,成为了众多开发者追捧的对象,对我等追随者来说,真是喜闻乐见。乐观地想,Python 至少还不会因为技术原因而没落。
去年,技术社区里还发生了一件大事:Linux 之父 Linus Torvalds 宣布要无限期休假。这个新闻跟 Python 之父的退位相比,所引起的轰动效应可要大得多了。
这两件事有很大的相似性,引发了我的好奇心:开源技术项目所重度依赖的灵魂人物离开了,它们如何才能继续健康地发展运作?
这个话题对我等小小的边缘码农而言,实在是超出能力范围而无法回答。所幸的是,他们又回归了。不过对于核心开发者们来说,这个话题迟早要面对,现在的风波就是一个预警。
Python 社区贡献出来的指导委员会治理方案,会带来什么样的变化,会引领社区走向何方呢?拭目以待。
作者简介:豌豆花下猫,某985高校毕业生, 兼具极客思维与人文情怀 。公众号【Python猫】, 专注python技术、数据科学和深度学习,力图创造一个有趣又有用的学习分享平台。
(本文为AI科技大本营转载文章,转载请联系原作者)
推荐阅读:
GAN性能不稳?这九大技术可“镇住”四类缺陷
NLP输出文本评估:使用BLEU需要承担哪些风险?
如何用Python抠图?试试scikit-image
这可能是史上最全的Python算法集!
骚操作!代码写情诗 | 程序员有话说
30 秒?!Chrome 插件带你速成编程学习 | 程序员硬核评测
2019年中国IT市场趋势热点
翟天临之后,大连博士细数区块链博士圈那些事……
月入5万,程序员夫人们过上"贵妇"生活了吗?
相关文章:

【Android】adb命令总结
1、adb version 显示ADB工具版本 2、adb devices 查询设备,显示设备序列号 3、adb sideload < file_location> 通过USB进行ROM刷机 4、adb install < apk文件路径> 安装APK 5、adb uninstall <软件名> 卸载软件 6、adb push <本地路径>…

MySQL中char与varchar的区别
字符与字节的区别 一个字符由于所使用的字符集的不同,会并存储在一个或多个字节中,所以一个字符占用多少个字节取决于所使用的字符集注意:char与varchar后面接的数据大小为存储的字符数,而不是字节数(其实是5.0版本以上…

怎样在Red Hat Enterprise Linux 5.4版本上安装GCC?
注意:如果打算使用GUI的方式安装,需要导入GPG-Key(否则在使用GUI时会出现public key for *.rpm is not installed) 请切换到安装光盘目录下: cd /media 可以看到 RHEL* 的目录,然后切换到这个目录中: cd RHEL* 你需要运…

【C++】mingw32-make+cmake:error: ‘nullptr‘ was not declared in this scope解决方法
###问题 使用cmake成功(Configuring done Generating done)后,在cmd终端中执行 mingw32-make报错: error: nullptr was not declared in this scope###原因 nullptr是在c11的新内容。编译时,没有添加对C11的支持。 解…

喜得爱女,吴恩达深情撰文:欢迎你来到新世界!
整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)一个月前,吴恩达冷不丁在Twitter放出了重磅消息: “我们的最新‘成果’ Baby Ng 即将诞生!2019 年 2 月见面!”果然,昨日吴恩达公开了首个小公主降…

FastJson 简单使用
对象、List转JsonUser user new User(); /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] *fastjson序…

【数据安全案例】交警计算机系统再遭***,交通违法记录随意删除
根据新浪报道,据新华社10月14日电 利用当网管的机会,破解密码,非法进入交警计算机系统为他人删除车辆交通违法记录牟利。辽宁省鞍山市铁西区检察院透露,当地某公司员工程尚军因涉嫌破坏计算机信息系统罪,已于10月初被依…

开源,还能走多远?
【编者按】在各大厂纷纷拥抱开源的当口,“开源代码面临可持续发展危机”的言论也甚嚣尘上。早期,技术爱好者们“用爱发电”,“他们知道在出问题前,没人会注意到他们,没人会重视他们”。但遗憾的是,很长一段…

使用axis开发web service服务端
一、axis环境搭建 1.安装环境 JDK、Tomcat或Resin、eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载Axis的jar包 3.将Axis的jar包放入WEB-INF/lib目录下 二、编写web service服务端 1.编写服务 package com.webservice;public class HelloWebservice {…

【Qt】qt打印文件名、函数名、行号
#include <QDebug> #define MyDebug qDebug()<<"[FILE:"<<__FILE__<<",LINE"<<__LINE__<<",FUNC"<<__FUNCTION__<<"]

【Qt】Qt项目常用代码总结
路径 获取当前路径 #include <QCoreApplication> QString appDirPath QCoreApplication::applicationDirPath(); 转换成对应系统路径 返回路径名,使分隔符转换为适合底层操作系统的分隔符。 windows下为“\”; linux下为“/” #include <QDir> a…

滴滴裁员补偿丰厚,员工称裁出幸福感?
整理 | 一一出品 | AI科技大本营(rgznai100)滴滴裁员的“靴子”正在逐步落地。据《财经》报道,滴滴近日已给出裁员的具体赔偿方案:补偿一般为 N1 个月,如果本周能确认,再额外给一个月补偿——这一个月补偿是…

shell编程基础
1. 程序的执行风格 程序编程风格:过去式:以指令为中心,数据服务于指令。对象式:以数据为中心,指令服务于数据。过程式编程有以下特点:1) 顺序执行:指程序在执行的过程中,…

【Qt】QImage使用总结
图像格式转换 由 RGB 格式转换成 BGR 格式 QImage::rgbSwapped() 返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像。 QImage image(fileName); QImage bgr = image.rgbSwapped();将彩色图转换成 灰度图 使用QImage::convertToForma…

访问量最高超7百万的Stack Overflow问题竟然是...
整理 | Jane出品 | AI科技大本营(公众号id:rgznai100)Stack Overflow,一个面向开发者的 IT 技术问答网站,很多程序员都会在上面提问,浏览问题,查找技术知识。在 Top Question 页面,我…

CentOS 6.9下配置安装KVM
注意:KVM一切安装和运行都是在root用户下完成的,并且只有root才能支持某些软件。 一、准备工作: 1、查看系统版本、内核版本 ##查看系统版本 # cat /etc/redhat-release CentOS release 6.4 (Final) ##查看内核版本 # uname -a Linux KVM 2.6…

感觉要大病一场了
呵呵,这两天很累,再加上天气的原因,整个人晕乎乎的,其实很累,可就是睡不着, 其实我不知道是身体的累,还是心累了,总之,整个人就是提不起做事的激情来一个人就这样浑浑噩噩…

【视频】使用VLC采集摄像头,以RTSP协议发送流到网络上
VLC官网 http://www.videolan.org/ VLC3.0.1搭建失败 本人使用VLC3.0.1,搭建失败,总报无法打开URL VLC2.1.5搭建成功 VLC2.1.5官网地址及下载地址 www.videolan.org/vlc/releases/2.1.5.html http://get.videolan.org/vlc/2.1.5/win32/vlc-2.1.5-win32.exe 搭建RTSP …

优质中文NLP资源集合,做项目一定用得到!
整理 | Jane出品 | AI科技大本营(公众号id:rgznai100)今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目——funNLP,已经获得了 5.3k Stars,1k Forks。项目作者 杨洋,一枚水博&互联网…

小程序:js获取验证码时(倒计时模块)
代码例子截图最近在上手开发小程序,发现其实小程序要比vue真的要简单太多了,有一套自己的html(WXML),css(WXSS),虽然有些标签不能直接沿用html5的标签来开发,不过内置的标签还是很好记也不多。今天在做公司的项目时&am…

十大经典排序算法动画与解析,看我就够了
作者 | 程序员小吴转载自五分钟学算法(ID: CXYxiaowu)排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记…

Crystal Reports 财务日记帐凭证套打设计
Crystal Reports 财务日记帐凭证套打设计 一、首先大家看下财务日记帐凭证的纸张格式: 下面我们来分析下有几点要素:1、每页显示5行记录,2、就是在合计处的中文金额大写了。其他页眉页脚在水晶报表中很容易设计。 二、报表设计:在…

oozie调度中的重试和手工rerun一个workflow
在oozie中有Bundle、Coordinator和Workflow三种类型的job,他们之间可以有以下包含关系。 Bundle > Coordinator > Workflow。 1. 重新运行一个Coordinator job,可以通过如下命令: oozie job -rerun 0000034-180116183039102-oozie-hado…

【Qt】在Qlayout中Qlabel::setScaledContents(true);失效
Qlabel中添加图片,并使图片自适应Qlabel的大小 QPixmap picture;picture.load("./1.jpg");ui->label->setScaledContents(true);//图片自适应label大小ui->label->setPixmap(picture); 在layout中Qlabel::setScaledContents(true);失效 解决办法,set…

JavaScript写XML
引用地址:http://zhidao.baidu.com/question/76344574.html?frala0 load 方法 作 用表示从指定位置加载的文件。 基本语法boolValue = xmlDocument.load(url);说 明url 包含要被加载档案的URL 的字符串。假如文件加载成功,传回值即为t…

在家想远程公司电脑?Python +微信一键连接
作者 | 阿文转载自 CSDN(ID:CSDNnews)有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器。准备工作本程序主要是实现远程管理…

Python 语法相关知识
系统相关的信息模块: import syssys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象. sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a sys.exit(exit_code) 退出程序 s…

【Qt】 error: LNK1107: 文件无效或损坏: 无法在 0x310 处读取
编译Qt程序使用动态库时,报错 error: LNK1107: 文件无效或损坏: 无法在 0x310 处读取 原因 链接时,使用的dll,而不是lib。 lib是编译时需要的,dll是运行时需要的。 windows下动态库和静态库 动态库:生成动态库时…

Red5安装与入门 与FMS配置
转自:http://www.rosoo.net/a/Media/Streaming/201010/10343.html red5安装时出现问题解决:http://www.cnblogs.com/phinecos/archive/2007/11/26/973109.htmlred5安装设置: 首先需要安装Red5运行所需的java研发环境jdk,我所有的文件都保存到…

面试必备|带你彻底搞懂Python生成器
2019年人工智能系统学: https://edu.csdn.net/topic/ai30?utm_sourceai100_bw 作者 | Rocky0429 转载自 Python空间(ID:Devtogether) 写在之前 Python 的高级语言特性一直是我们学习 Python 的一个难点,大部分人并没有做到熟练的…