0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

今后的Python将如何管理?

DPVg_AI_era 来源:未知 作者:李倩 2018-07-22 08:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python之父Guido van Rossum因最近的“PEP 572”事件宣布放弃他在Python社区“仁慈大君”的称号,且没有任命继任者,并将治理问题留给了核心开发人员。今后的PEP572乃至整个Python该何去何从?

Guido van Rossum最近宣布,他决定放弃他在Python社区“仁慈大君”的称号,虽然这令人有些意外,但在核心开发社区却并没有太大的震惊。虽然最近的“PEP 572混乱”事件是不幸的,但 Van Rossum几年来一直在为Python暗暗的做着努力。 与此同时,该项目需要弄清楚如何管理自己前进 - Rossum没有任命继任者,并将治理问题留给了核心开发人员。

在过去的几年里,Rossum一直燃烧着他的热情,起码在一定程度上是因为他一直在为自己感兴趣的PEPs进行有争议的讨论。关于PEP 572(“赋值表达式”)的讨论很可能是Python历史上最糟糕的冒险。

它跨越了多个巨大的线程,在两个不同的邮件列表上,生成了两个独立的投票(poll)(这两个投票都不支持这个特性),而且有时似乎是没完没了的。也许最让人恼火的是它的重复性;同样的想法被一次又一次地提出来,不管PEP的作者(最初是Chris Angelico,后来在快结束时Van Rossum和Tim Peters加入了进来)和其他人不断地反对他们的论点。很明显,许多人只是在感情上(有时是表面上)对这个建议做出反应:不读激励语或任何讨论,然后大声宣布他们的观点显然是唯一明智的。很明显,许多人只是在感情上(有时是表面上)对这个建议做出反应:不阅读PEPs或任何讨论,然后大声宣布他们的观点显然是唯一明智的。

Van Rossum说,作为一个普通的核心开发人员,他将会在“一段时间内”坚持下去,但他留给社区来决定未来项目的治理。他似乎很好奇会发生什么:“那你们都要做什么?”创建一个民主吗?无政府状态?一个独裁政权?联盟?”正如许多人在辞职信中指出的那样,人们希望他在今后一段时间内继续担任“仁慈大君”;如果离开只是因为有争议的激励讨论,而不是简单的退休决定,那还是挺令人难过的。在所有的祝福之中,许多对Van Rossum声明的回复中都提到了Python社区人经常说的一句话:卷起袖子开始工作。

新的治理

Van Rossum呼吁进行治理的主要领域有两个:如何确定PEPs以及如何添加新的核心开发人员。后者似乎已经根据现有核心开发人员的投票决定好了。他们是唯一被允许发布到核心提交者邮件列表的人,这也是Van Rossum辞职的一方面,大概是为了避免费力地浏览数百条信息——几乎所有信息都是怀揣感激之心的,尽管肯定也会有一些是不好言论。

对于PEP和任何其他主要语言决定,Christian Heimes建议triumvirate(三人管理)或quintumvirate(五人管理)作为统治机构。 Victor Stinner认为应该考虑核心开发人员对功能提案进行投票的PHP流程。 不过,Stinner的解决方案并不是特别受欢迎。 Brett Cannon这样说:

对于我来说,我认为Guido为我们作为“仁慈大君”所提供的一个关键资产就是设计/品味的一致性。设计由委员会通过投票来决定并不吸引我,太容易导致偏好的变化,并且没有很好的凝聚力和语言的整体设计,特别是考虑到总是会有主观的选择。包括我在内的人们也指出,应该让Guido敬仰你,我们对社区的行为有非常一致的看法,这也是一种资产。

triumvirate(或一个小的、奇数N的N-virate)的想法似乎得到了一些支持,尽管“谁将加入”、“他们将服务多久”以及其他细节仍在讨论中。还有一个不可避免的问题是,这个群体的名字可能是什么?人们提出了各种各样的想法。但是,正如Raymond Hettinger所说,这件事情没有这么着急:

就目前而言,我建议我们转向低齿轮(low gear)以及推迟主要语言改变的时间,这将给我们时间来消化这些变化,给其他实施策略更多的机会来赶上进度。

讨论的大部分内容是PEP决策过程以及它将如何改变。在他辞职之前,Van Rossum是PEPs的最后仲裁者,除非他将自己的权力委托给了另一位“仁慈大君”。许多人认为,“Python长老理事会”(PCOE)或“设计专员”(治理机构的两个比较流行的名称)的作用主要是找到合适的人选,以便在给定的PEP上进行决策。如果不能就一项决定达成协商一致意见,该小组也将是最后的决定机构。

但也存在人们在这样一个机构服务多久的问题。有些人要求“终生”任命,因为他们明白人们可以在任何时候辞职,而其他人则希望随着时间的推移这些职位能轮换出来。然而,在此之前必须确定(可能通过PEP或一组竞争的PEP)该组的作用。Heimes提出了三个功能:。

首先,将主要责任委派给领域专家。

其次,提供一致性和信任。

最后,在有争议的bike shedding事件中给出最后的结论。

但是,如果主要作用是委托,则不需要将其作为终身工作。正如Doug Hellmann所说:

如果决策的主要方法是委托(除非绝对必要的仲裁者),那么长期的一致性和稳定性不会因为找到个人而在N-virate上服务很长时间,因为这项工作的完成是需要对评论有很好的理解以及有意愿在没有达成共识的情况下保持现状。

就像我们与发布经理所做的那样,构建系统以支持和鼓励人员更替,降低了当某人同意服务时的工作量。考虑到在Python社区和开放源代码中有很多关于倦怠的讨论,这似乎是一个重要的特性。

如何制定和沟通决策也是一个问题。有人建议要求机构一致投票,但这可能过于严格。Barry Warsaw建议不要公布成员的个人投票,而只是公布结果,但Larry Hastings和其他人的意见不同:

我更喜欢在治理方面提高透明度,作为受本机构管理的社区成员,我更倾向于更多地了解流程和进入决策的思路。我不认为PCOE要求作为一个统一的秘密工作,应该让他们相互支持,并支持机构的决定。

Hastings和其他人认为PCOE类似于美国最高法院-这个机构只有在存在无法以任何其他方式解决的争议时才作出决定。但是ŁukaszLanga想知道为什么有三个成员如此受欢迎:

对于triumvirate我看到了一些问题,比如一个公司只雇佣了三个成员中的两个就能接管Python的设计过程(持续地对第三个成员进行投票)。如果其中一名成员弃权,也有很大的可能产生关联等等。

“宪法”

他还担心如何确定设计管理员的角色:“Python需要一个‘宪法’,它将编纂委员会的内容及其运作方式”。许多人将该文档称为“PEP 2”,但在这种情况下如何接受该文档完全是未知数。Langa提出了一个可能不被Van Rossum接受的建议:“理想的情况是Guido会接受PEP,但我不确定他是否愿意接受。”如果确实如此,那么该如何做才能使该文件得到所有提交者的普遍接受呢?

很明显的,许多人都认同这种观点,几乎所有人都希望Van Rossum仍将担任一个积极的角色——也许甚至是作为一些PEPs上的“仁慈大君”。Carol Willing可能总结了许多关于Van Rossum参与的观点:“我大多希望Guido做任何撼动他的世界的事情”。如果Van Rossum愿意,Cannon有一个具体的想法:“在我的理想情景中,人们写PEPs提出治理模型,Guido选择一个,使其成为PEP 2。”

在这方面,Van Rossum确实短暂地插入了这个话题,试图阐明他在决定治理方面的角色:“我仍然在这里,但我希望退出辩论,退出决策圈。我还是PSF(Python软件基金会)的董事长。但这不是由PSF决定的。你们都做得很好了。”

因此,某种类型的“神圣干涉”很可能并不存在。核心开发人员需要自己解决这个问题。他表示,在确定治理模式时,有两种指导原则:“如果发展的内容包含Python之禅 (Zen of Python,PEP 20)和‘我为语言而来,为社区而留下’,我相信这种语言将从技术上受益。”实际上,Python社区是一个强大的社区,这证明了Van Rossum在过去28年里的领导能力。

作为制定治理计划过程的一部分,Nathaniel Smith正在组织一个信息化的PEP来调查其他开源项目的治理。我们的想法是看看是否有可用于Python的部件和零件。另一些努力甚至早于Van Rossum的辞职,就是找出一种更好的方式来讨论PEP,并试图达成共识。Hettinger提议了一种可能性:

对于更大的决策(并没有很多),我对如何改进讨论有一些建议,以便有关各方能够在结果中拥有更平等的发言权,从而使讨论更具时间效率。

基本上,这个想法是让所有参与者都可以编辑wiki/faq。它将包括关键的例子、赞成和反对的论据,以及可以收集到当前对话的rebuttal。这与当前的PEP过程有些不同,因为目前是PEP作者主导了对话,而其他人很容易被淹没。(这一想法模仿了加州立法分析师选民指南,该指南总结了各项提案,并有支持者和反对者的陈述和反驳)。

Neil Schemenauer用经济学术语来表述:

也许这可以被视为一种经济问题。发布到PEP讨论thread的成本与阅读该帖子的每个人的成本是分别多少?或者,评论的价值是什么,每个人阅读它的代价是什么?

使用目前的讨论方式,成本往往不成比例。有成百上千的人在阅读帖子,所以成本很高。而发表一个不成熟的评论太容易了。用新的主题线开一个新的thread太容易了。

他建议,一旦他们在python-ideas邮件列表中的“free-wheeling wild west”上完成了运行,就应该单独列出一个邮件列表,以便进行PEP discussion。PEP-discussion列表中有一些基本规则,目的是最大限度地利用每个人的时间。充分投入的参与者与Python用户或开发人员之间的不成比例的成本可能是导致Van Rossum由于倦怠而辞职的主要原因。

显然,事件尘埃落定和制定具体计划需要一段时间,但人们会觉得Python社区已做好准备——即使不是完全愿意——追求自治(self-governance)。不过,这一过程将在公开场合发挥作用,这可能会对其他经历类似甚至不同的过渡的项目有所帮助。在开源的世界中,项目可以从技术的角度互相学习,当然也治理和社区等领域相互学习。

我们每个人都应该(与其他人一起)感谢Guido,否则就是不负责任的表现。我们的网站依赖于Python,并且已经运行了16年或甚至更久。 Van Rossum 用他的努力为世界做出了伟大的贡献——即使在这一切都已过去之后,他的努力似乎也不太可能改变。在许多方面,Python社区是它的“仁慈大君”的反映;它令人愉快的基调和对每个人的友好是其他项目应该效仿的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    70637
  • python
    +关注

    关注

    58

    文章

    4884

    浏览量

    90299

原文标题:Guido 转身离去,Python 何去何从?

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    摘要 VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个用例介绍了一种使用路径变量和Visual Studio代码将Python连接到VirtualLab
    发表于 03-31 09:39

    [VirtualLab] 使用Python进行跨平台参数扫描

    摘要 VirtualLab Fusion允许外部访问其建模技术、求解器和结果。这有助于应用其他数据处理或优化工具来进一步研究光学模拟。在本示例中,我们演示如何使用Python脚本运行参数扫描,以及
    发表于 03-31 09:36

    如何在 VisionFive 上使用 Python 包?

    VisionFive Fedora 下的本地目录,请在源代码目录下执行以下命令: 提示:源代码可从以下位置下载:愿景五.gpio. sudo yum install python
    发表于 03-30 08:28

    安装 Python VisionFive_GPIO失败是哪里出了问题?

    尽管按照最新的文档,我在安装 VisionFive.gpio 包时仍然收到错误 sudo apt 安装 libxml2-dev libxslt-dev python3 -m pip 安装请求
    发表于 02-11 06:13

    Python运行本地Web服务并实现远程访问

    本文介绍使用Python搭建本地Web服务并结合 ZeroNews 实现公网访问。
    的头像 发表于 02-06 11:39 336次阅读
    <b class='flag-5'>Python</b>运行本地Web服务并实现远程访问

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Termux中调试圣诞树Python代码

    在Termux中调试Python代码(以圣诞树立例)非常简单,核心分为环境准备、代码编写、运行调试三个步骤,下面一步步教你操作: 一、环境准备(首次使用需做) Termux默认可能没有Python
    发表于 12-09 09:02

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests库发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
    的头像 发表于 11-03 09:15 1169次阅读

    Pico Technology发布Python软件包pyPicoSDK

    近日,全球领先的基于 PC 的仪器供应商Pico Technology 官方发布了 pyPicoSDK,这是一款旨在简化 PicoScopes 应用的 Python 软件包。pyPicoSDK 在
    的头像 发表于 09-29 15:03 1096次阅读

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux中创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    termux如何搭建python游戏

    模拟器,支持通过APT包管理器安装软件。搭建Python游戏开发环境前需完成以下基础配置: 1. 更换国内源 为提升下载速度,需替换Termux默认源为清华源,执行以下命令: ```bash
    发表于 08-29 07:06

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    跟老齐学Python:从入门到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 编辑 本资料是面向编程零基础读者的Python 入门教程,内容涵盖了Python 的基础知识和初步应用。以比较轻快的风格,向零基
    发表于 06-03 16:10

    软件定义汽车将如何变革汽车行业

    在技术快速发展的背景下,软件定义汽车(SDV)正迅速崛起,成为未来出行的焦点。它将如何变革汽车行业,并带来哪些前所未有的机遇呢?让我们一起探索这个激动人心的领域!
    的头像 发表于 05-16 10:00 990次阅读