Swoole 核心贡献者Twosee 访谈录:视 PHP 为初恋、为疫情而蓄发
GOTC 全球开源技术峰会的讲师能有多酷?
“编程语言的艺术”分论坛讲师陈曹奇昊,1997 年出生的 Swoole 核心贡献者和 PHP 内核贡献者;是代码狂人,影迷、科幻迷、FPS 游戏爱好者;初恋也超拽——PHP 语言是我的初恋,没有她就没有今天的我,谁会觉得自己的女朋友不是世界上最好的女朋友呢……
话不多说,访谈正式开始:
看到您的照片,这个发型很个性,平时都有哪些兴趣爱好?为大家详细介绍一下自己吧。
我的真名叫陈曹奇昊,网名 Twosee,是 Swow 项目的创始人,也是 Swoole 的核心贡献者和 PHP 内核贡献者,同时还是 Swoole 内核开发组和 PHP 内核开发组的成员。兴趣使然,我平时除了 PHP 社区,也活跃于异步网络 IO 相关的各大开源项目社区,现在也是 libuv 项目的贡献者。
在外人看来我可能就是个代码狂人,实际上我还是一个影迷、科幻迷、FPS 游戏爱好者,虽然瘦宅但宅不至死,体测成绩优良,偶尔也会打打篮球。
至于这个别具一格的发型,其实是疫情期间立了 Flag,疫情不翻篇不理发。但随着疫情在国内日渐平稳,甚至现在我也打完了疫苗,头发也已经剪短有一些时日了,我觉得这也是一件相当值得高兴的事。
感觉您的英文名也很有个性,请问 Twosee 这个名字有什么特殊的含义?
我的真名是陈曹奇昊,姓氏的首字母是 CC,很多同学也这么叫我,于是就起了比较好注册的名字叫 Twosee (谐音 Two C),就是两个 C 的意思。有个更有意思的事是,我没想到取这个名字这么久以来,第一个直接猜出我名字含义的人居然是 PHP 内核的主要贡献者 Nikic,他说我的名字让他想到了动漫《叛逆的鲁路修》中的人物 C.C.,而这部动漫正好也是我最喜欢的动漫之一。
觉得自己最大的特点是“帅”还是“会写代码”?
我自己希望自己能成为一个丰富而有趣的人,而不仅限于他人给定的标签。其实很多时候我并不觉得自己是一个典型的程序员。在写代码以前,我写过书法、写过小说、画过漫画、做过动画、送过外卖、做过设计也做过产品。
而我写代码的原因特别简单,只是因为我在大学时期想做一个系统,我设计规划好了一切,却发现没有人能帮我写,我不得不自己上。我涉足过这么多的领域,只是在写代码这条路上幸运地走得更远了一些。从中我认识到了,选择确实比努力更重要,但前提是我们得有足够的积累,不断地受挫和试错,最终才能选对努力的方向。
什么时候开始学习 PHP 的?第一次为 PHP 内核做贡献是在什么时候,当时做了什么?
应该是大二下到大三(17年)开始正式学习编程的,第一个选择学习的就是 PHP 语言,可以说 PHP 就是我的初恋了。
18年底我提交了第一个针对 PHP 内核修复补丁,当时我已经是 Swoole 的活跃贡献者了,因此对于各种网络协议有了一定的研究,偶然发现 PHP 的 MySQL 客户端在给服务器发请求包时,包尾存在一些不必要的额外字节,于是就给优化掉了。
由于长期以来我的主要精力在研发 Swoole 上,其实我给 PHP 内核贡献的代码量相对不算很多。我个人更喜欢提交一些技术性相对强一些的补丁,有时候修改一行代码就需要对 PHP 内核的很多方面有足够的了解,非常的费时。后来在某次日常的 PR 中,我突然就被邀请加入了官方开发团队,我觉得这对我来说这是一个很高的荣誉和认可,所以直到现在我每天都会尽量抽出一些时间去关注 PHP 内核的相关动态。
“PHP 是最好的语言吗”,为什么?
这个梗的传播可以说是相当广泛,甚至已经出圈,因为我也经常被身边的人问到这样的问题,而他们大都不是程序员。借着这个机会,我也来好好地答一下这个问题。
我看过很多编程语言专家对于 PHP 的评价,无一例外,它们都认为 PHP 是一门糟糕的语言,而对应这个问题的「PHP 是世界上最好的语言」这句话也成了很多人用来嘲讽 PHP 的口号。
PHP 早期的语言设计不仅存在诸多缺陷,还留下了很多历史包袱。并且,它没有任何财力雄厚的大公司主导,全靠世界各地的开源爱好者贡献。既没有稳定的经济支撑,也缺少足够的宣传资源。
但同时不可否认的是,尽管如此,PHP 仍是最流行的编程语言之一,而 PHP 社区长期以来取得的成绩是有目共睹的:PHP 7使得大部分 PHP 应用都可以近乎免费地得到巨大的性能提升;PHP 8的 JIT 如约而至,使得 PHP 的计算性能极大增强;越来越多来自社区的语言专家的活跃参与,PHP 的语言特性得到了大量改进。
PHP 现在已经被官方重新定义为通用脚本语言,PHP 也不再只是 WordPress,它还有 Composer、Symfony、Laravel、Swoole、Hyperf 等等一系列现代化生态。士别三日,即更刮目相待——很多人还在用看待 PHP5甚至更早版本 PHP 的眼光来看待现在的 PHP,这是有失公允的。
能发现原先的不足,也意味着 PHP 未来还有更大可能提升的空间。此外,我认为衡量一个语言或是一个开源项目是否有前景,很好的方法是看它的社区核心维护团队是否活跃。这几年我也见过了很多红极一时的开源项目,但它们都因为社区核心维护力量的突然离去而猝死,只留下一地鸡毛。但如果你订阅了 PHP 官方邮件列表,或是关注 PHP 框架社区的话,你就会发现你根本无需对此忧虑,新血液的涌入、活跃而激烈的讨论,二十五年如一日,这就是最好的证明。
总而言之,PHP 绝不是就该问题意义上的「最好的语言」,但 PHP 总是在成为更好的语言的路上执着地前行着,这同时也是一种责任和担当。
那么为什么很多 PHP 程序员还是会将「PHP 是世界上最好的语言」这句话挂在嘴边呢?我认为一部分人是被黑多了,干脆也加入进去,开始自黑,我觉得这些 PHP 程序员是温和而可爱的,他们足够自信,又不介意别人加入,大家都得到了快乐。还有一部分是像我这样,觉得 PHP 语言是我的初恋,没有她就没有今天的我,谁会觉得自己的女朋友不是世界上最好的女朋友呢?相较而言,很多端起碗吃肉,放下筷骂娘的人,才是可耻的。
最后,我想提到的另一件有趣的事是,「PHP 已死」这个口号就和这个问题一样流行,这一口号在1995年和 PHP 语言一同诞生。
和 Swoole 是怎么结缘的?作为核心贡献者,您现在对 Swoole 的贡献占比有多少?
我上大学的时候,学校的各种系统像是上个世纪的产物,教务系统在抢课时也总是崩溃,我觉得这些系统太烂了,我写一个都比它好。于是从那时我开始自学编程,然后用 PHP 为学校写了一套统一全校所有老系统的新的统一系统,然后去找了学校网络中心的领导谈,最终获得了学校的许可,但我得自己想办法在全校推广,由于新系统非常好用,形成了口碑效应,不久之后全校就有80%以上的本科生每天都在使用我写的系统。
但随着我对网络编程的深入理解,发现 C10K 问题确实没有那么简单,PHP-FPM 单机服务也一样无法承载抢课时的高并发,这时我发现了 Swoole 这个项目,于是着手开始学习。
其实我早期对 Swoole 的大部分贡献,是我在用 Swoole 开发应用的时候偶然发现了 Swoole 内核 BUG 并修复的结果。而我对 PHP 的大部分贡献,都是我在开发 Swoole 扩展时偶然发现了 PHP 内核的 BUG 并修复的结果。
我认为很多程序员都是有成为开源项目贡献者的潜质的,但是他们在遇到开源项目的 BUG 时鲜有人会选择死磕,这是让我感觉比较可惜的一点。
这几年里我对 Swoole 内核做了大量的重构和优化工作,是 Swoole 协程版本的主要开发者之一,我目前也是除了韩天峰老师之外 Swoole 项目最大的贡献者。此外,我觉得其实开源项目的贡献也不只能单单看代码提交,版本管理、维护社区、编写文档、回答问题等工作也相当重要,这些工作不比贡献代码轻松。我觉得很多想要给 Swoole 开源项目做贡献,却无从下手的小伙伴都可以先朝这些方向进行努力,过程中对于内核的了解逐步加深,产生代码上的贡献也会是水到渠成的事情。
今年 7 月,陈曹奇昊将作为全球开源技术峰会 GOTC 上“编程语言的艺术”分论坛讲师,为大家带来《What's New in PHP 8》主题演讲。
PHP 8 带来了 JIT、注解、联合类型、命名参数等大量的新特性,这也意味着 PHP 8 拥有更好的性能,更丰富的语法、更强大的类型安全支持。而悄然间,PHP 8.1 也已在路上,枚举和协程的引入为 PHP 世界再添亮色。
在拥有了 JIT 之后,PHP 性能优化之路是否已经走到了尽头?
随着协程特性的到来,PHP 离一个完整的协程编程系统还有多远?
Event loop、协程 Hook、CPU 调度这些已在 Swoole 中被验证的技术是否会在将来被引入?
或许,一切都才刚刚开始,前方仍是无尽的星辰大海……
本次分享将为大家带来 PHP 持续迭代的最新消息。
此外,“编程语言的艺术”分论坛还将邀请 Java、PHP、Rust、C++ 等主流编程语言的业内一线专家,为不同技术领域的开发者分享相关编程语言的最新动向,深入剖析各大编程语言在国内的发展趋势。
GOTC,the Global Opensource Technology Conference,全球开源技术峰会。
该会议由开源中国社区联合 Linux 基金会发起,邀请 10+ 重量级开源基金会与开源社区深度参与,覆盖 100+ 公司的相关开源经验,涉及优秀开源项目 300+。
组成这场开源盛会的专家主要是开源领域内的知名人物,相关的分享议题也聚焦开源,包括开源的技术、开源的运营与治理、开源的发展趋势、开源技术的实践、开源的商业化等。
此次会议还史无前例地邀请了当今世界几大*开源基金会负责人同时参与圆桌,共同讨论开源新生态。
更有 Linux 创始人 Linus Trovalds 将分享 Linux 诞生 30 年以来他的心路历程与开源洞见。
相关推荐:
鸟哥惠新宸:从Web初学者到PHP核心开发者-2021全球开源技术峰会
推荐学习:《PHP视频教程》