17611538698
webmaster@21cto.com

PHP内核开发者Nikita 的首次提交,却实现了个寂寞

编程语言 0 78 16小时前

话说,尼基塔·波波夫(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 编译器的开发和维护工作。

作者:手扶拖拉斯基

参考:

计算机的奇幻漂流

评论