Python大咖谈 - Kenneth Reitz 与 Mike Driscoll
Python大咖谈 - Brett Cannon
Python大咖谈 - Steve Holden
访谈主题:CPython、Jupyter、Python 软件基金会
Mike Driscoll:能简单介绍一下您的背景吗?
Carol Willing:70 年代,我上小学时就开始接触电脑,与现在的 Python 社区类似,贝尔实验室当年也很重视对青少年程序员的影响,我就是在贝尔实验室的影响下长大的。
我很幸运,中学就开始用 TRS-80 与 Apple II 编程,我一直都很喜欢编程,编程可以让我探索新奇的世界,那时还没有互联网,只能获取源代码和简版文档,但只要你愿意,就能在计算机世界里随意探索,这种感觉真的非常奇妙。
我念的是电气工程专业,大学时,我负责运营校园有线电台,干这事儿既要懂技术,还要能调动志愿者的积极性。
工作六年后,我才开始做工程师,当时请了个长假,整个假期我都在家里搭建 Linux 网络。我最终还是下定决心做编程开发,这才是我热爱的事业。后来,我有幸与 Jupyter 团队合作,也就是现在工作的重心。
Driscoll:您怎么会从电气工程师转向编程?据我所知,大多数电气工程师都偏硬件方向。
Willing:没错,我喜欢硬件,比如,MicroPython 和 CircuitPython,我对这些都很感兴趣,但我更喜欢解决编程难题。
Carol Willing:‘我更喜欢解决编程难题。’
数学和编程都是我的最爱,学电气工程时我就偏好数字通讯理论,但比起硬件,我还是更喜欢数学与软件开发。
Driscoll:那您是因为什么选择了 Python,而不是 Ruby 或其他语言呢?
Willing:我用过 C++,Java,Ruby on Rails 刚推出时也用过。认真考量了这些编程语言以后,我发现自己真正想要的是能乐在其中的技术社区。
在南加利佛尼亚州参加各类技术社区聚会的机会很多,我加入过 Linux 社区,还曾与 OpenHatch 的人合作教大家如何参与开源项目。
Python 用得越多,我越觉得 Python 代码简单易懂这个特点特别好。Python 把事情变得简单,还有很多支持库,我就是这样与 Python 结缘的。通往 Python 世界的路径虽然是非线性的,但我觉得挺好。
Driscoll:能给大家介绍一下,您是怎么当上 Python 核心开发者的吗?
Willing:没问题。几年前,我参加过几次 PyCon 的演讲、培训活动。参加 CPython 冲刺活动的开发者很多,但没几个女的,这让我颇为震惊。
Carol Willing:‘参加 CPython 冲刺活动的开发者很多,但没几个女的,这让我颇为震惊。’
Nick Coghlan 与另外两名核心开发者本来要给我介绍开发工作,不过我认为扩大 Python 的影响力更重要,所以我在 Python 开发者指南上投入了很多精力,为此,我还加入了 PyLadies 社区。我与 Nick 和 Guido van Rossum 一起讨论过怎样把记录以往的工作记录得更清楚,让大家更容易了解我们的工作,我就这样成为了核心开发者。
Jupyter 在 Python 的外围,主要依托于 Python 3,我觉得听取 Python 社区之外的想法也很重要,对 Python 核心开发也会有帮助。Python 是一门了不起的编程语言,给大家带来了很多机会,哪怕已经推出了 20 多年了,但 Python 的能量还没有被充分发掘出来。
Carol Willing:‘哪怕已经推出了 20 多年了,但 Python 的能量还没有被充分发掘出来。’
Driscoll:您主要负责哪些标准库?作为核心开发者,主要都做什么工作?
Willing: 我现在大部分工作都是编写文档与开发工具指南,还有就是负责指导社区新人上手开发 Python 或 Core Python。
我主要负责开发与 Jupyter 相关的功能,比如异步。要是有时间,我还想参与 CPython 的开发,但现在 Jupyter 突飞猛进,我实在是顾不过来别的了。
我还热衷于参与教育事业。用户越多,好想法就越多,这就是为什么 Python 会有这么多支持库的原因所在。
Driscoll:那您在 Python 软件基金会时主要做哪些工作呢?
Willing:我只当过两年 Python 软件基金会主管,现在我主要参与营销组和科学组的工作。
我今年的主要工作是环球演说与经验分享,与大家分享 Python 对教育的影响,介绍 Python 在不同行业中起到的促进作用,这也与 Jupyter 紧密相关。我还会参加 PyCon 的演讲与培训。此外,我觉得听取大家的建议也很有趣。
我在营销组是新人,但我们不断探索新的方式,试图在全球范围内为 Python 社区寻找赞助商。营销组的宣传重点是突出现实世界对 Python 的应用,希望通过加大 Twitter 营销活动力度,让大家了解更多 Python 软件基金会做的事情。
Driscoll:Python 软件基金会当前的目标是什么?
Willing:Python 软件基金会的使命是维护 Python 语言自身,保护 Python 版权。还有一个目标是促进 Python 的成长,让 Python 的应用拓展至新的领域。
这些目标每年都会微调,但举办 PyCon 大会一直都是 Python 软件基金会最重要的目标。Python 软件基金会还有一些其它战略性目标,比如,权衡资助项目提出的资金请求。
确保开源项目的可持续发展,资助这些项目运行所需的基础设施建设,是开源世界里另一件非常重要的事情。Python 软件基金会有幸能收到很多来自社区和赞助商的捐赠,但是,不论因为何种原因,如果某个赞助商终止了赞助,大家依然期待 PyPI 与 Python 网站还能继续正常运转。只有制定出长期可持续发展计划,才不会损伤志愿者的热情。
此外,Python 软件基金会还要提供高水准的服务。就我所知,Donald Stufft 介绍过 PyPI 一天的流量,这个数据量非常大,要知道我们开展的这些工作全部都依托于 PyPI。Python 软件基金会如果想让 Python 持续发展,还要维护那些平时并不起眼,但开发者每天都会用到的基础设施。
Carol Willing:‘Python 软件基金会如果想让 Python 持续发展,还要维护那些平时并不起眼,但开发者每天都会用到的基础设施。’
Driscoll:是否方便谈谈在 Jupyter 项目的工作?
Willing:当然没问题,Jupyter 也是个开源项目。它主要由一家科研项目巨头资助,同时也接受一些公司的捐赠。
Jupyter 主要包括三大支柱。大家最熟悉的是 Jupyter Notebook,现在已经赶超了 IPython Notebook;第二大支柱是与 Notebook 整合的众多插件与工具;最后是 JupyterHub,这是我现在专门负责的内容。
JupyterHub 着眼于如何在集群中,比如研讨会或研究室,向一组人提供 Notebook,大型学术机构里对 JupyterHub 的应用已经非常广泛。很多高性能计算的研究者也在使用 JupyterHub 处理密集型数据。
Carol Willing:‘简单说,JupyterLab 就像是简化版 IDE,而且还有一些不错的功能。’
Jupyter Notebook 的下一代产品是 JupyterLab。简单说,JupyterLab 就像是简化版 IDE,而且还有一些不错的功能。比如,支持把将可视图嵌入到网页里,还可以同步显示数据发生变化后产生的影响。
JupyterLab 支持扩展插件,可以自行添加或自定义功能。我用 JupyterLab 快一年了,这期间它已经迭代了多次。一年前,Scipy 大会上我们分享 JupyterLab 后,整个社区的反馈都非常积极。
Driscoll:JupyterHub 收费吗?怎么使用?
Willing:不收费,JupyterHub 也是个免费的开源项目,只要有一台裸机服务器,就可以把自行部署 JupyterHub。JupyterHub 也可以部署到 AWS、Azure、Google 云或其他云服务器上,比如 Rackspace。
我们最近正在编写一本指南,帮助大家用 Kubernetes 部署 JupyterHub ,这项工作目前进展的非常顺利。考虑到不同学术机构验证用户需求的多样性,我们还提供了多种验证用户的方法。
Carol Willing:‘因为你可以为每个学生提供一个独立的账户,但他们使用的其实都是同样的工具,可以获取同样的经验。’
我们提供了生成器,为具体每个用户生成独立的 Jupyter Notebook 实例。这就是为什么 JupyterHub 对大学有吸引力,因为可以为每个学生提供一个独立的账户,但他们使用的其实都是同样的工具,可以获取同样的经验,运维人员再也不用头疼系统安装的麻烦了。
Driscoll:那您还参与开发 IPython 吗?
Willing:IPython 是 Jupyter 项目的组成部分,但我参与的 IPython 工作极少,只是偶尔帮忙测试新版功能。
Jupyter 是一个大规模学术研究项目,虽然没有多少营销资源,但我们还是希望把它传播给整个世界。我觉得 Jupyter 共享信息非常便捷,与信息的交互操作也很简单,这是个特别有用的功能。我敢肯定很多学生都会被 Jupyter 所吸引。
Driscoll:您喜欢 Python 社区哪些方面?
Willing:我想 Brett Cannon 他们已经说过,本来你只是想学一门编程语言,但真正让你流连忘返的却是 Python 社区。这么说有些鹦鹉学舌,但我确实觉得技术圈里没有比 Python 社区更热情的了。
Carol Willing:‘本来你只是想学一门编程语言,但真正让你流连忘返的却是 Python 社区。’
在这里,很多有想法、有天赋的人都乐于分享自己的知识与想法。我觉得这很大程度上源于 Guido 本人,还有他创造的这门易用、易读的编程语言。Guido 经常鼓励大家回答社区里的问题,他希望不管是编程语言,还是社区都能够健康发展,这点至关重要。
Carol Willing:‘Guido 经常鼓励大家回答社区里的问题,他希望不管是编程语言,还是社区都能够健康发展。’
我很喜欢了解大家都在做什么事情,这也是为什么即便我热衷于参加 PyCon 大会,但却更喜欢地区性聚会的原因。在这些聚会里,可以看到很多新鲜事物,可以听到不同的人提出的不同想法,还可以了解他们用 Python 都干了些什么。
指导新手入门最大的好处是,能让核心开发者认识到 Python 还有哪些用户体验可以继续优化。作为核心开发者,如果连我都觉得有些功能用起来不顺手,对于那些新人,也就是那些根本不知道如何正确设置 Python 配置的人,就会更难上手。
Driscoll:您觉得现在 Python 在哪些方面表现的让人满意?
Willing:Python 支持嵌入式设备,还支持网络编程、科学计算与数据分析,这种无所不能的感觉就非常好。我甚至可以用 Python 给孩子上课,为成人培训,没有哪种语言能把这些事情都做好,这就是 Python 最强大的优势。
Carol Willing:‘我最喜欢 Python 对教学的支持。用 Python 3 教学是一种愉快的经历。’
我最喜欢 Python 对教学的支持。用 Python 3 教学是一种愉快的经历,f-strings 极大地简化了字符串格式化的工作量。MicroPython、CircuitPython、Raspberry Pi、Micro:bit,还有 Jupyter 都激发了年轻人的创造力,各种引人入胜的项目层出不穷。PyCon 英国大会时,看到演讲台上,青少年开发者介绍那些远超心理预期的项目,还有他们充满闪光点的演说,我很欣慰。
Driscoll:您是 Python 核心开发者,您觉得 Python 的未来会如何发展?
Willing:Python 将在科学编程这个方向继续前进,Python 的性能与异步稳定性会得到进一步进化。除此之外,我觉得 Python 已经是一门功能强大、基础扎实的编程语言了,就算现在停止开发,Python 依然是一门非常优秀的编程语言。
Python 社区里各式各样的需求对 Python 未来走向的影响越来越大,核心开发团队里的开发者来自不同领域,这对 Python 来说也是好事。很多比我聪明的人能更好地告诉你有关 Python 未来的问题,我相信 Guido 已经为 Python 未来的发展做好了充分的规划。
Carol Willing:‘现在,我们最想听到的是 Python 在移动端取得突破的好消息,你应该知道,哪里有需求,Python 就会出现在哪里。 ’
Achille 跟进 Python 移动端的开发已经很久了,我还希望看到 BeeWare 能推动交叉编译的发展。现在,我们最想听到的是 Python 在移动端取得突破的好消息,你应该知道,哪里有需求,Python 就会出现在哪里。
我认为 Python 3 还会继续优化,一些大型代码库,比如 Instagram,已经从 Python 2 切换到了 Python 3。虽然还有很多人在用 Python 2.7 进行开发,但 Instagram 这样的公司已经迈出了关键的一步,这点大家可以看下他们在 PyCon 2017 年大会上分享的演讲。
Carol Willing:‘不同公司有不同的选择,但从系统安全与运行维护等角度考量,这些商业需求会驱使更多公司切换至 Python 3。’
Python 3 的工具更多,测试工具也越来越多,那些想把遗留代码切换到 Python 3 的公司不会面临太多风险,这点从商业角度来看是可行的。不同公司有不同的选择,但从系统安全与运行维护等角度考量,这些商业需求会驱使更多公司切换至 Python 3。新开发的项目当然最好选择 Python 3,特别是着眼于微服务与人工智能的项目,更应该使用 Python 3。
Driscoll:您觉得人工智能与机器学习大量应用 Python 是什么原因?
Willing:Python 用于科学研究已经有很长的历史了,在数据科学领域的应用也使得 Python 成为人工智能的首选语言。Python 的生态圈非常成熟,scikit-learn、Numpy、Pandas、Jupyter,都为研究人员与创新人士完成任务打下了坚实的基础。
Carol Willing:‘Python 用于科学研究已经有很长的历史了,在数据科学领域的应用也使得 Python 成为人工智能的首选语言。’
Driscoll:Python 怎样才能更适合人工智能?
Willing:维持好现有的 Python 基础设施,核心库对 Python 的发展起着至关重要的作用。健康发展与兼容并包的生态圈、持续不断的企业资助,都将帮助人工智能、深度学习与机器学习实现长期、快速增长。
Driscoll:您希望在 Python 未来发布的新版本中看到哪些改变?
Willing:我希望能看到更多支持并发、异步、并行与分布式处理的任务导向型(task-oriented)文档。最近几个版本推出过一些非常不错的功能,编撰良好的文档可以让大家着手使用这些新的优化功能变得更容易。
Driscoll:谢谢您,Carol Willing。
Python大咖谈 - Kenneth Reitz 与 Mike Driscoll
Python大咖谈 - Brett Cannon
Python大咖谈 - Steve Holden