话说,尼基塔·波波夫(Nikita Popov) 是 PHP 社区倍受尊敬的核心开发者之一。几年前,他曾经深度参与了PHP语言的性能优化工作,一边不断实现新功能,一边又修复历史遗留的大量Bug,是把 PHP 从“老旧脚本语言”推动为“现代编程语言”的核心关键人物。
这位波波夫年轻有为,冲劲十足,据说在高中时期就参与PHP的内核开发,第一次的代码贡献是在PHP最火热的5.5版本。
那么,这位长相奇特的牛人程序员都向PHP代码库提交了神马内容?接下来,我们来瞅一瞅波波夫的代码秀,然后来看他是怎么开启这段奇幻的开源旅程的。
我们以电子邮箱作为关键词在Git 提交日志里搜索一番,可以发现他首次提交的时间是在 2012 年 5 月 20 日。当时,他应该高中还没有毕业。
此次波波夫的提交主要是新增加了两个文件,分别是zend_generators.c 和 zend_generators.h,并对 Makefile 和 configure 等构建脚本文件做了相应的修改。
从代码注释来看,波波夫的首次提交只是添加了没有任何功能的、一个名为 Generator 的内置类。文件 zend_generators.c 中的源代码已经验证了这一点。
也就是说,波波夫第一次的代码提交,只是在代码中写出
如果各位同学对 PHP 扩展或内核开发稍微有所了解,会发现这几行代码本质是模板化的“公文格式”:
它定义了一个类、注册类名、绑定方法,这一套流程换谁来写都是一样。真正透露出一点“作者痕迹”的,只有两个地方:一个是类名 "Generator",另一个是 ce_flags |= ZEND_ACC_FINAL_CLASS;,表明 Generator 这个是最终类不能再被扩展或者被继承。
尽管这次提交看起来非常朴素,甚至可以说成是简陋的,它却悄然拉开了一个重要特性的序幕——生成器(generators)。这项特性随着 yield 关键字在 PHP 5.5 中正式启用,大大丰富了这个编程语言的表现力。
所谓“万里长征第一步”,所有的伟大都起源于此。波波夫的这一次“空提交”好像预示着他下一步在PHP语言发展扮演的关键角色。
如今,尼基塔·波波夫是红帽(RedHat)的高级软件工程师,他目前主要负责开发LLVM、CLang 和Rust 编译器的开发和维护工作。
作者:手扶拖拉斯基
参考:
计算机的奇幻漂流
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。