Python 之父讲述退位原因,以及 Python 的未来将何去何从。

在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 “仁慈的终生独裁者”(BDFL,Benevolent Dictator for Life)。今年 7 月 12 日的时候他突然宣布退位了。消息一出,一时间震惊了整个 Python 世界。当时他以 PEP 572 改进提案的争吵事件为例,表明其退出缘由。Guido van Rossum 于 1990 年发明 Python,他相信 Python 这门语言即使少了他的领导也依然能持续发光发热。现年 62 岁的 van Rossum 是一名 Dropbox 的首席工程师,近日他接受了外媒 InfoWorld 的采访。

01:你为什么辞去 BDFL 职务?

van Rossum:所谓的终生和独裁都仅仅是玩笑。实际上,最近十年,退休的念头都在我脑海里徘徊。我年龄已经不小了,身体也有一些问题。作为 Python 社区的主要负责人,我需要一遍又一遍地去教社区的其他成员如何开展工作,同时需要一遍又一遍地向 Python 新人解释 Python 的语言哲学,这样超负荷的工作让我的健康状况更为恶化。事情的引爆点在于一个颇具争议的 Python 改进提案(PEP 572),当我接受这个提案之后,Twitter 等社交媒体上出现了一些中伤我的评论。而更为心寒的是,这些评论居然大多来自 Python 的核心成员,我对他们失望至极!

02:你能谈谈 PEP 572 提案的好处以及它为什么如此充满争议吗?

van Rossum:该提案提出了一种新的语法,它允许表达式内赋值。总得来说,这是对 Python 语言的一个小补充。开发人员如果需要的话,可以在表达式中进行赋值。很多编程语言都有这个小功能,比如我熟悉的 C 和 C++。据我所知,Java 和 JavaScript 也支持。它是一种相当小的语法,但在某些情况下,它可以让代码编写变得更容易,并且通过删除冗余能够提升代码的可读性。很多人觉得自己熟知 Python 的设计理念,他们认为该提案没有遵循 Python 的设计原则。该提案引发争议的另一个原因在于其作者自己的失误,之前几个版本就存在一些严重的问题,因此这一次,即使之前认同其基本理念的人也投了反对票。但这只是一个轻微的句法变化,并不激进。

03:该特性将包含在哪个版本的 Python 中?

van Rossum:它将出现在 Python 3.8 中。Python 3.8 将于一年半后发布。此前我们曾发文探讨过为何 Python 的速度如此之慢,在这一更新版本中,Python 3 启动慢的问题将会是 CPython 核心团队主要解决的问题之一。

04:会有一个新的 BDFL 吗?
 Python 后续将如何管理?van Rossum:很抱歉,目前确实无可奉告。实际上,我给核心开发团体(拥有提交权限的 100 多人)指定了一项任务,让他们思考今后的管理模式并选出新的负责人。他们在解决 Python 问题的同时,需要认真完成该任务。这可能需要长期讨论,短期内很难达成共识。令我高兴的是他们欣然接受了这个任务,并制定了任务进度表。他们会在 2018 年 10 月 1 日前完成提案的收集。然后,在 2018 年 11 月 1 日前,他们会从众多提案中选出最终的管理方案。然后到 2019 年 1 月 1 日,他们会整理好管理方案的相关文件,并选举或者任命新的负责人。如果有提案指出需要 BDFL,则该提案必须对其详细说明,比如如何选举 BDFL,BDFL 任职时长,以及 BDFL 的弹劾机制。我想最快 10 月 1 日,最晚明年 1 月 1 日,将会产生一名新的 BDFL。

05:Python 的核心成员都有谁?
van Rossum:Python 的核心成员有很多。比如 Brett Cannon,他是一位真正的大神。又如 Tim Peters,作为我的良师益友,他提出了“Python 之禅”,生动地诠释了 Python 的编程哲学。另外,Barry Warsaw 也是核心开发人员之一。

06:未来你将在 Python 项目中担任怎样的角色?
van Rossum:我将成为一名普通的贡献者或者核心开发者。偶尔会编写或者审查代码。此外,我将尝试专注于核心开发人员的指导工作上,尤其是新的核心开发人员、女性或者少数民族人士。因为我个人很推崇核心开发人员的多样性。

07:作为曾经的 BDFL,你觉得自己的离开会不会吓跑一些 Python 爱好者?
van Rossum:我认为不至于。Python 社区非常健康,Python 核心团队非常强大且充满活力。我相信他们能够克服这点小困难,并在未来几十年里继续推动 Python 前进,如果连这点自信都没有,我也不会辞职。尽管事已至此,但这只是一个小变故,我对 Python 的未来满怀信心。

08:Python 在过去几年的开发流程是怎样的?
你如何看待它未来的发展?van Rossum:很明显,在过去几年 Python 语言发生了显著的变化。我们为语言和库新增了一些特性,最大的变化可能在于其流行度的剧增。大约五年前,Python 都还是一门非常小众的编程语言。也正是从五年前开始,随着数据科学的兴起,Python 有幸成为其主要工具,得以广泛流行。这也导致核心开发人员的决策压力剧增,但是总得来说,我们开发和发布的方式都非常稳定。我们有负责发布的管理人员,主要版本的发布周期大约一年半。对于修复 bug 的版本,根据具体情况,其间隔时间可能是几个月到大半年不等。我们有非常稳定的 Python 改进提案流程,也许随着社交媒体的发展 PEP 的方式有所改变。但总得来说,除了几年前从 Mercurial 转向 Git 之外,PEP 的流程一直非常稳定,没有出现过问题。

作者:菜鸟Python
链接:

https://www.jianshu.com/p/3b5fd4d2f441


识别图中二维码,领取python全套视频资料

Python 之父谈放弃 Python:我对核心成员们失望至极!的更多相关文章

  1. Python实例浅谈之五Python守护进程和脚本单例运行

    一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...

  2. Python实例浅谈之三Python与C/C++相互调用

    一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过 ...

  3. 浅谈五大Python Web框架

    转载:http://feilong.me/2011/01/talk-about-Python-web-framework 说到Web Framework,Ruby的世界Rails一统江湖,而Pytho ...

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

    春节假期结束了,大家陆续地重回到原来的生活轨道上.假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端. 在 Python 社区里,刚发生了一件大事,同样有开启新纪元的意 ...

  5. Python之父新发文,将替换现有解析器

    花下猫语: Guido van Rossum 是 Python 的创造者,虽然他现在放弃了"终身仁慈独裁者"的职位,但却成为了指导委员会的五位成员之一,其一举一动依然备受瞩目.近日 ...

  6. Python 之父再发文:构建一个 PEG 解析器

    花下猫语: Python 之父在 Medium 上开了博客,现在写了两篇文章,本文是第二篇的译文.前一篇的译文 在此 ,宣布了将要用 PEG 解析器来替换当前的 pgen 解析器. 本文主要介绍了构建 ...

  7. Python匹马行天下之python之父

    龟叔和他的python 经过了漫长的旅程,终于要看到主角Python了.Python是现在非常非常流行的编程语言,在我们能看到的大部分编程语言排行榜中,Python都能在前三甲中拥有一席之地 ,并且发 ...

  8. Python 之父为什么嫌弃 lambda 匿名函数?

    Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" ...

  9. Python之父Guido在最近一次采访的最后说了啥

    Python之父Guido在最近一次采访的最后说了啥? 在前些天的一次采访中,被问到Python未来发展方向的时候原文在infoworld,咱们可爱的python老爹Guido是这样说的: One t ...

随机推荐

  1. js 開始时间,当前时间,结束时间的比較

    //開始时间不能小于当前时间 function startTimeIsBigThanTotay(startTime){ var startdate = new Date((startTime).rep ...

  2. [ucos]了解ucos

    1. uCosIII移植到STM32F10x http://www.cnblogs.com/hiker-blogs/archive/2012/06/13/2547176.html 2. uCosIII ...

  3. 原生Orcale数据库连接

    package tj.test.demo; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Prepa ...

  4. MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping

    由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类.Dao接口类甚至Mappi ...

  5. ThinkPHP项目笔记之RBAC(权限)补充篇

    这里,主要补充的是配置以及相关代码问题. <?php return array( //'配置项'=>'配置值' 'RBAC_SUPERADMIN' => 'admin',//超级管理 ...

  6. RabbitMQ OS X下安装及常用命令-1

            RabbitMQ的主页在http://www.rabbitmq.com/ . 1. 安装Erlang RabbitMQ是用Erlang编写的,所以需要先安装Erlang,如果有的话跳过 ...

  7. MyBitis(iBitis)系列随笔之三:简单实现CRUD

    Mybitis(iBitis)实现对对象增删改查操作要借助<select/>查询,<insert/>增加,<update/>更新,<delete/>删除 ...

  8. JavaScript 一、 ES6 声明变量,作用域理解

    // JavaScript/* * ========================================================= * * 编译原理 * 尽管通常将 JavaScr ...

  9. 剑指 offer set 16 数字在排序数组中出现的次数

    总结 1. Leetcode 上有一道题, 求某一个数字在有序数组中出现的最左位置和最右位置, 而这道题就是那题的变形

  10. C语言switch语句

    C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英 ...