Saturday, June 4, 2011

ctypes维护者Thomas Heller退休

原文链接: Thomas Heller Steps Down as ctypes Maintainer

Python开发社区欠长期的 ctypes 维护者Thomas Heller一个大大的人情。这个月 初, Thomas 宣布退出 CPython项目。从Python2.5开始,他的 cytpes 库是CPython 项目的一个重要部分。

我有幸能够和Thomas交谈,他告诉了我他参与Python项目以及开始他自己的 ctypespy2exe 项目的过程。

Python

回到1999年,寻找Python学习资料的期间,Thomas读了Mark Lutz的书 Programming Python ,马上Thomas就对这门语言非常执迷。那时他正在把 Scheme 替换为自己在Windows平台 上用C语言写的一个大程序的扩展语言。

当问及他是如何加入到开发组中的问题时,他表明他对CPython(以及开源项目)的第一次 贡献是提交了一个与Windows相关的 distutils 的小补丁。他对 distutils 的兴趣 最终引导他开发了能够创建Windows点击安装器的 bdist_wininst 命令。从那以后, Greg Ward邀请他加入python-dev群组,在那时他才最终获得了提交权限。

py2exe

跟很多Windows用户一样,他需要把封装得很好的Python程序部署成一个可执行文件。 在这之前的解决方案有:Fredrik Lundh的 squeeze 和 Christian Tismer的 sqfreeze 。 Thomas还为Gordon McMillan的 Installer 项目贡献了很多补丁。

His interest in distutils led Thomas to consider porting Installer to an extension to the packaging library. However, he ended up rewriting the source in order to make use of the existing distutils framework. In the end, he chose the simple yet descriptive name py2exe for the project. Thomas对 distutils 的兴趣让他考虑把 Installer 移植成库的扩展。然而,为了 使用当时已存在的 distutils 框架,他最后完全重写了源代码。最终,他给项目取了 一个简单但很能解释项目目的的名字 py2exe

ctypes

ctypes 项目的初衷是需要超越当时 pywin32 提供的功能。此外,他Scheme的任务 需要的Windows API接口正好和他的Python工作很像,因此他想要保持他的项目继续进行。

当Python2.3在2003年发布时, ctypes 也第一次对公众亮相。在那之前,Thomas收到了 很多让他发布项目的请求。他在他的 Starship page 提到了他的这个个人小项目,但不久 这个项目成为了一个广泛使用的库。

他的原始项目是在Windows平台上开始的,但不久很多人把它提出移植到Linux的需求,在 社区的帮助下,Linux移植版顺利完成。在移植到Linux的过程中 libffi 加入到了项目, Thomas马上在Windows项目上用 libffi 替换了底层实现。

2006年 ctypes 迎来了1.0版本发布,同时受到肯定加入到了Python2.5的标准库之中。 经历了多年的辛苦工作以及每年无数次的新版本发布, ctypes 现在已经跟标准Python绑定, 更多的用户可以直接使用它了。

ctypes 能有今天多亏了很多人的辛苦工作,Thomas想要感谢每一位参与其中的,尤其是 Robin Becker。早在项目的开始阶段Robin就开始提供指导,贡献他的知识以及鼓励。

新任ctypes维护者

见证了Thomas这些年来的所有辛苦工作,我们很不忍心看到ctypes项目搁置起来。如果你 有C语言的编程经验以及足够的空余时间来帮助Pyhton项目,社区会很感谢你的努力。 请查看下新的 开发者向导 并搜索下 the bug tracker 来获取更多信息。

No comments:

Post a Comment