鸟哥:写在 PHP 7 发布之际一些话

做开源也有4, 5年的时间了, 从最初的Yaf, 到今天的PHP7, 我参与的项目越来越多, 使用我代码的用户也越来越多, 明天就要发布的PHP7, 绝对是我从事开源以来的一个最重要里程碑, 我应该纪念一下今天, 就让我稍微感性一次吧.

PHP7 项目开始于去年春节的时候, 那个时候我们基于PHP-5.5的Opcache JIT项目基本上因为无法得到期望的结果而搁置了, 一些在做JIT的时候收集到的信息让我们认识到, 基础部分还不够好, 并不能很好的支持JIT, 所以在2014年2月左右吧, 我们开始了重构项目, 当时的希望是说通过重构, 能得到30%以上的性提升, 为将来的进一步优化提供基础.

那时还没有给这个项目起名字, 我们只是试试, 那几个月是我最忙碌的时刻, 因为只有我们俩个人在这个项目中, 我还因为自身微博的工作也比较忙, 所以基本上只晚上的时间都扑在了上面. 不过好在, 我和另外一个人有5个小时的时差, 所以很多工作可以串行起来.

随着项目的推进, 我们惊喜的发现性能提升比我们想象的还要大, 到4月的时候另外一个人也加入了进来, 到5月基本上已经完成了大部分的工作, 于是我们公布了这一个成果, 定名为PHP NG项目.

但 我没想到的是, 我们遇到了社区很大的阻力, 因为在我们秘密开发PHP NG的时候, 社区还并行着一个主要是微软的同学们发起的64位支持的项目, 当我们公开PHP NG的时候, 他们质疑说, 突然拿着这么大的一个Patch出来, 没有其他人懂, 后续如何维护, 如何和64位支持的分支合并等, 继而反对采纳PHP NG分支. 当时我是非常沮丧的, 持续好久的争吵也让我感到非常疲倦, 最后因为我实在无法排遣, 一腔怒火的也不管自己蹩脚的英文, 在邮件组回了一封吐槽邮件, 呼吁大家珍惜这个性能提升分支.

还有个很好玩的插曲, PHP NG的支持者很多, 他们也对这样的争吵很郁闷, 某天, 有一些支持者就在PHP官网上发布了这样的一个新闻: http://php.net/archive/2014.php#id2014-05-27-1 其中写到: "When we aren't looking for pictures of kittens on the internet, internals developers are nearly always looking for ways to improve PHP, a few developers have a focus on performance.", 但当天反对者们就说, 不行, PHP NG还没有被接纳, 要求删除这篇文章, 好在考虑到文章已经发出去了, 最后就在首页上下掉了这个文章的入口, 只是在存档中保留了内容. 很多媒体都感受到了这次的乌龙.

争执不下之后, 不得已, 我们只能发起投票, 来决定是否接纳PHP NG, 好在, 最后投票的时候, 绝大部分人都支持了PHP NG项目, 并决定以PHP NG为基础, 开始我们的新版的PHP的开发. 当时还没有确定用PHP6还是PHP7版本号(后来投票决定PHP7). 我现在经常会说这次经历, 让我感受到了"民主之痛".

之后的 事情大家就都能看到了, 在这近两年的时间里, 各种新特性的加入, 性能的持续提升, 很多以前不合理的地方改进等等, 都加入到了PHP7, 让PHP7越来越丰满. 从最底层的ZVAL的改变, 到标量类型提示, 从最初的30%的性能提升, 到现在超过100%的性能飞跃, 每一处变化都让人值得期待. 然后经过几次不情愿的跳票, 终于, 到今天, 这一切都将呈现于你面前.

有的时候我会想, 我是幸运的, 幸运在一直有机会做没做过并且有挑战的事情, 幸运在一直能感受到自己的成长, 幸运在所做的大部分努力, 终究看到了效果, 得到了回报. 也衷心的希望我的幸运可以激励更多的人参与到开源中来.

未来, 我们还会一如既往的致力于提升PHP的性能, 提升PHP的品质, 让更多的PHPer们, 可以持续享受到透明的提升.

最后, 做开源这么久, 带给了我很多的收获, 我要谢谢大家, 谢谢这些鼓励, 也谢谢那些善意的谬赞.

PS: 本来想等到PHP7发布以后再发的, 但是想到可以为它的到来造势, 就先发布罢. PHP7 目前已经可以下载, 官方宣布考虑到时差问题, 后天早上来看吧. 目前下载地址: http://php.net/get/php-7.0.0.tar.gz/from/a/mirror enjoy!

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

一行代码,一个系统!您的 Crash 实时分析已上线

腾讯移动分析(MTA),将内部打磨多年的 Crash分析能力对外输出,在复杂的App生态下,专注于构建完善的质量体系,助力 App 研发者用一行代码拥有完整 C...

3631
来自专栏美丽应用

关于本站

1255
来自专栏腾讯大讲堂的专栏

以“工匠”的精神对待每一个版本

工匠们喜欢不断雕琢自己的产品,不断改善自己的工艺,享受着产品在双手中升华的过程。工匠们对细节有很高要求,追求完美和极致,对精品有着执着的坚持和追求,把品质从99...

20110
来自专栏用户2442861的专栏

腾讯微信技术总监周颢:一亿用户增长背后的架构秘密

http://www.csdn.net/article/2012-05-15/2805581

1272
来自专栏前沿技墅

架构演化:云原生时代正式开启

63011
来自专栏大数据文摘

微信技术总监周颢:一亿用户背后的架构秘密

3094
来自专栏ThoughtWorks

Defects的启示 | 洞见

在过去的几个月,我做了一些实践,通过整理、讨论和分析项目上的Defects情况,来探索质量管理中的待改进点。最终发现,Defects实际上给质量管理带来了很多的...

1264
来自专栏DevOps时代的专栏

DevOps 与技术雷达

? 关于 Kubernetes Kubernetes 现在是当仁不让的首选容器编排平台,在技术雷达中,也将其标记为采用。社区也发展出很多 Kubernete...

2548
来自专栏原创1

百度智能运维的技术演进之路

随着大数据、人工智能、云计算技术的日渐成熟和飞速发展,传统的运维技术和解决方案已经不能满足需求,智能运维已成为运维的热点领域。同时,为了满足大流量、用户高质量体...

2430
来自专栏微信小开发

一个不会代码、设计的小编,怎么制作一个专业的微信小程序

摆脱APP,微信小程序轻装上阵 微信小程序“无需安装、用完即走”,所耗内存也只有几M,甚至可以忽略不计。相比每一个APP都在几十M以上,微信小程序更加的“小而美...

4238

扫码关注云+社区

领取腾讯云代金券