深入了解Python开发者NickCoghlan的编程世界
立即解锁
发布时间: 2025-09-09 00:06:49 阅读量: 13 订阅数: 8 AIGC 


Python大师访谈录
### 深入了解Python开发者Nick Coghlan的编程世界
#### 1. Nick Coghlan简介
Nick Coghlan是一位澳大利亚软件开发者和系统架构师。他曾在澳大利亚波音公司担任软件工程师,在红帽亚太公司担任高级软件工程师。他是CPython核心开发者,也是Python打包互操作性标准的BDFL代表。他还是Python软件基金会(PSF)Python打包工作组的创始成员,以及澳大利亚PyCon教育研讨会的创始人。在过去20年里,Nick为一系列开源系统和软件项目做出了贡献。
#### 2. 编程之路的起点
Nick最初将编程作为儿时的消遣,当时他有一本适用于Apple IIe的BASIC编程书。直到高中一年级学习信息技术时,他才发现编程可以成为一份职业。他所在的学校是该州最早开设信息技术课程的学校之一,这促使他在大学选择了计算机系统工程专业。大学毕业后,他的第一份全职工作是为德州仪器的DSP进行嵌入式系统编程,使用的是C语言。后来,他从事了更多的系统控制和自动化工作,这些工作更像是编程而非嵌入式软件开发。他表示自己喜欢编程,并且擅长于此,还能以此谋生。
#### 3. 转向Python的契机
Nick原本是一名C/C++开发者。在大学时,一位网络讲师要求学生用Python完成作业,他最初想使用自己熟悉的Java,但在讲师的建议下尝试了Python 1.5.2,发现很有趣。后来,他在澳大利亚的一家大型系统集成商工作,负责的DSP项目测试套件是一个简单的C程序,在集成测试中出现了很多问题。为了编写更好的测试套件,他们考虑了两个主要选项:一是使用Python的unittest模块和SWIG生成与C++驱动的绑定;二是使用内部的C/C++测试框架。最终,他们选择了Python,因为Python有unittest模块来组织测试,有SWIG与C++驱动绑定,并且标准库中有wave模块可以播放WAV文件。Python在澳大利亚的高频现代化项目中得到了广泛应用,用于测试、模拟系统接口等。
#### 4. 成为Python核心开发者
Nick表示自己成为核心开发者是因为和Guido van Rossum争论。他从20世纪90年代末开始参与Usenet讨论,使用Python后加入了Python邮件列表并参与讨论。他的第一个贡献是在Python列表的讨论中,当时人们常用timeit模块测试代码片段的速度,但在不同版本中使用时需要指定timeit模块的位置,他提出Python应该知道该模块的位置,这促成了Python 2.4中-m开关初始版本的补丁。到Python 2.7时,-m开关已经能正常工作。2004年底,他休假三个月,帮助Raymond和Facundo Batista对Python decimal模块进行了初步的性能优化。他们发现,在纯Python中,将数字元组转换为十进制数的最快方法是将数字转换为字符串,拼接后再转换为整数,这一发现让PyPy开发者不满。
#### 5. Python 2.7与Python 3的过渡
对于Python 2.7的长期支持,Nick表示这是为了让现有用户能够根据自己的判断,在认为Python 3生态系统足够成熟时再进行切换。那些感受到Python 2.7局限性的用户已经提前迁移,现在仍未迁移的用户要么在寻找更好的工具帮助迁移,要么计划随着Python 2.7的停用而停用相关项目和产品。Python 3的类型提示机制可以帮助用户在自动化测试覆盖率较低的情况下静态检查类型正确性,从而扩大了可可靠迁移的代码范围。
#### 6. 对未来Python版本的期望
Nick希望未来的Python版本能有更好的工具来处理部分结构化的分层数据,同时保持Python作为可执行伪代码的声誉。他还希望减少扩展模块和Python源模块之间的差异,以及提供更好的受保护内存管理模型支持,以帮助维护并发代码的正确性。CPython的子解释器功能已经在一定程度上提供了这种支持,但目前存在一些可用性挑战,Eric Snow正在努力解决。
#### 7. 成为核心开发者的建议
如果想成为像Nick一样的核心开发者,首先要明确自己的动机,因为在过程中难免会遇到挫折,需要清楚自己为什么要做这件事。成为核心开发者的关键在于信任和赢得信任,核心开发者需要贡献代码,核心评审人员会考虑是否接受这些更改并在未来进行维护,以及能否解释接受更改的原因。提名新的核心开发者和核心评审人员时,会寻找那些能够做出正确判断的人,他们要认为某个更改总体上能让未来的Python用户受益。编程语言设计是一场权衡的游戏,不能同时优化所有方面,需要理解哪些问题可以自己决定,哪些需要提交到Python-Dev进行讨论。当某个提案比较复杂、存在潜在争议时,可能需要将其升级为完整的Python增强提案(PEP)并详细讨论。
#### 8. Python增强提案(PEP)的流程
PEP有几种产生方式:
- 当核心开发者提出一个已知需要进行的重大复杂更改时,会直接编写PEP并提交到PEP仓库,然后在Python-ideas上发起讨论。
- 有人在Python-i
0
0
复制全文
相关推荐








