当前位置: 首页 > 科技观察

Python之父退位后,会出现新的终身仁慈的独裁者吗?如何?

时间:2023-03-20 21:29:15 科技观察

作为Python之父GuidovanRossum逐渐从BDFL退下,Python(CPython)的未来牵动着万千开发者的心。没有领头羊,Python未来的发展会怎样?社区将如何运作?谁将领导Python语言和社区?最终决定。目前,Python社区已经提出了七种治理方案,分别是PEP8010、PEP8011、PEP8012、PEP8013、PEP8014、PEP8015和PEP8016。这些提案都归纳在PEP8000下,最终的获胜者将决定Python未来发展的方向和方法。日前,Python核心开发者之一、PEP-8015作者VictorStinner对这七项治理提案进行了对比分析。本文引用他的分析,为读者提供更全面的看法。背景知识先简单了解一下背景知识,方便后面的理解。PEP:全称是PythonEnhancementProposals,Python增强提案,目前已经有近500条,涵盖了Python功能实现、规范、周边信息等各种内容。本文提出的7个提案都是针对新的治理模式,未来可能会增加这方面的提案。如果想加深对PEP的理解,了解哪些提案是必读的,也可以查阅相关文献。PSF:全称PythonSoftwareFoundation,PythonSoftwareFoundation,一个非盈利组织,其使命是促进Python社区的发展,负责组织各种社区活动,如开发Python的核心发行版,管理知识产权,并举办开发者大会(如PyCon),促进多元化和国际化,筹集开发资金。BDFL:全称BenevolentDictatorForLife,对生命仁慈的独裁者。该职位被赋予绝对的最终决策权。它曾经特指GuidovanRossum。2018年7月12日,圭多宣布不再担任BDFL职务。本文所有PEP都是关于如何选择新的BDFL和配套的社区治理方案,该术语不再具有特定含义。CoP:全称是TheCouncilofPythonistas,Pythonistas委员会,一个为Guido提供建议的智囊团。目前Python社区的PEP流程是这样的:proposer决定PEP选题方向,proposer负责收集整合整个社区的反馈。相关领域的专家随后汇总所有讨论并开始为期14天的最终审查,其结果不需要社区投票。如果某个PEP存在争议,任何专家成员都可以发起否决议案,这需要2/3以上的选票。7项提案列表PEP8010:技术领导者的治理模式维持现状Proposer:BarryWarsawPEP8011:三巨头的治理模式与现状相似,但三个人做决定Propositers:MariattaWijaya,BarryWarsawPEP8012:社区治理模型没有核心决策提案人:?ukaszLangaPEP8013:外部治理模型非核心监督提案人:SteveDowerPEP8014:众包治理模型核心监督提案人:JackJansenPEP8015:Python社区组织模型委托多数DecisionstoTeamProposers:VictorStinnerPEP8016:SteeringcommitteemodelguidesiterationsofgovernanceProposers:NathanielJ.Smith,DonaldStufft差异比较VictorStinner总结了7个PEP的主要差异,他建议在对这些治理提案进行投票时,不要使用他们的完整性判断,而是关注决策过程中的部分,即谁可以做出决定和怎么做?他希望那些不完善的PEP能够吸取其他PEP的精华,逐步完善自己。总的来说,这些PEP中,除了PEP-8012和PEP-8014外,其他都有高层决策层,一般形式有指导委员会、理事会、三巨头、Guido等。PEPs8011、8012和8015定义明确参与决策过程的工作组/专家/Python团队,可以认为是二级决策。PEP8014允许任何Python用户参与投票,PEP8013将核心开发人员排除在决策委员会之外。除了这两种特殊情况,其他PEP中的决策过程都强烈依赖于核心开发者,候选人必须是核心开发者,或者只有核心开发者可以投票。PEP8010、8012、8013、8014、8015和8016都提出不信任投票或弹劾机制,以罢免当权者。维克多认为没有这件物品是不明智的。PEP8015和8016严格限制委员会,只允许少于50%的成员是企业(5人委员会最多2人),而其他PEP没有限制。PEP8010、8011和8014几乎完全专注于定义最高决策层,而PEP8015和8016也专注于核心开发者的选举/淘汰、如何更新治理提案等。提到PEP8011、8014和8015决策成员的多样性,比如女性开发者能否有一席之地。和PEP-8011一样,它指出“尽最大努力接纳弱势群体”,但没有提及如何促进多样性。细则。以下是各治理方案对比的具体拆解:***决策层PEP8012明确规避PEP8014有一个长老会负责决定如何以及何时批准PEP,它是基于open对所有Python用户其他PEP决策级别的投票形式有技术负责人、三巨头、理事会、指导委员会等。成员人数PEP8010:4,包括1名领导和理事会3PEP8011:3(三巨头)+工作组PEP8012:无领导,专家团队自治PEP8013:2-4,包括1名主席PEP8014:5-10(council)PEP8015:5(committee)+PythonteamPEP8016:5(committee),或添加其他团队/multi-committees/representatives等,视候选人要求而定PEP8010:CoreDevelopersPEP8011:核心开发人员、PSF投票成员、三巨头,尽力接受弱势群体PEP8012:N/APEP8013:永远不要成为核心开发人员PEP8014:不需要成为核心开发人员,***这是一个多元化committee,membersshouldunderstandPythonandthePythoncommunityPEP8015:Coredevelopers,upto2corporatemembersPEP8016:Nominatedbycoredevelopers,upto2corporatemembersElected:Whovotesandhow?PEP8010:核心开发者PEP8011:活跃的核心开发者PEP8012:N/APEP8013:核心开发者,当出现平局时,主席可以再次投票PEP8014:投票向所有Python用户开放PEP8015:对于核心开发者,如果票数相同,将进行第二次投票。如果第二次投票仍然平局,PSF董事会将选择PEP8016:对于核心开发者,如果平局,可以通过候选人之间协商解决,否则任期长度和限制PEP将随机选择8010:Leader4.5年,3个Python版本;理事会3年PEP8011:5年PEP8012:N/APEP8013:1个Python版本,可连任PEP8014:纯粹从程序上考虑理事会权力,其想法是让成员任职时间更长一些。但他也说,如果理事会能定期更新就好了PEP8015:3年,轮换选举,每年换1/3,连任PEP8016:1个Python版本,连任不信任投票PEP8010:可用于弹劾领导者,在理事会一致决定时发起,所有核心开发者做出多数决议,但未规定多数决议的门槛PEP8011:N/APEP8012:N/APEP8013:投票需要超过2/3的选票,对于单个董事理事会成员PEP8014:1位长老,或一组10名核心开发人员,或PSF投票成员,可以申请对整个理事会进行立即投票PEP8015:N/APEP8016:投票需要2/3票,任免个人成员或整个委员会团队/专家PEP8010:对于单个PEP,Guido与CoP协商确定专家候选人PEP8011:由3-5人组成的工作组向三巨头提出建议,无需成为核心开发者根据PEP8012:专家自组织为特定兴趣领域的子团队,这避免了大多数投票和委员会设计。解散专家团队时,需要2/3以上的投票PEP8013:N/APEP8014:N/APEP8015:自组织Python团队,委员会可以允许他们批准自己的PEP打包团队(PackagingTeam),核心开发人员和贡献者需要PEP8016:N/APEP流程PEP8010:PEP代表,Guido是PEP决定的最终权威PEP8011:Big3和/或工作组?VictorisnotsurePEP8012:FollowcurrentPEPProcess,提议者决定PEP选题方向,提议者负责收集整合整个社区的反馈。相关领域的专家随后汇总所有讨论并开始为期14天的最终审查,其结果不需要社区投票。如果一个PEP争议很大,任何专家成员都可以发起动议否决它(需要2/3票)PEP8013:如果理事会不否决,PEP自动获得批准PEP8014:投票对所有Python用户开放,不仅是核心开发人员。理事会将决定是否采纳表决结果。在一般投票中,得票最多的人获胜。根据表决结果,由董事会直接作出决定。但是,如果此时落后的一方提出上诉,动摇了董事会,那么此时获得多数票的一方就需要进行论证了。理事会最终将做出决定PEP8015:委员会在PEP代表(通常来自Python团队)之间进行选择,或者交给核心开发人员投票,需要超过2/3的票数PEP8016:理事会可以直接批准/拒绝PEP,但最好设置流程以避免此类决定,例如,将决策权委托给团队或BDFL代表核心开发人员评估晋升PEP8010:N/APEP8011:N/APEP8012:核心开发人员投票,要求所有成员投票,每个-1算作否决权PEP8013:核心开发者投票,要求所有成员投票,每个-1算作否决权PEP8014:N/APEP8015:核心开发者投票,2/需要3票PEP8016:核心开发者投票,需要2/3票,理事会有否决权取消PEP8010:N/APEP8011:N/APEP8012:不信任投票,超过2/3需要投票PEP8013:N/APEP8014:N/APEP8015:实施临时禁止工作组,移除核心开发者状态PEP8016:由指导委员会投票,需要超过4/5票。此外,处于“不活跃”状态的成员将失去其特权,直到他们再次变为“活跃”状态。更新治理模型PEP8010:N/APEP8011:N/APEP8012:N/APEP8013:N/APEP8014:N/APEP8015:委托给核心开发人员,需要4/5票数PEP8016:委托给核心开发人员,需要2/3票行为准则PEP8010:管理所有互动和讨论的行为准则PEP8011:三巨头受PSF行为准则的约束PEP8012:依靠现有的PSF行为工作组,在PEP中被命名为“主持人”PEP8013:N/APEP8014:N/APEP8015:依赖现有的一些PSF行为工作组PEP8016:鼓励指导委员会建立CoC流程,细节可以灵活制定供参考:7个治理PEP比较作者介绍了豌豆花下的猫,重点关注Python技术、数据科学和深度学习领域。个人公众号:蟒蛇猫。