我已经做了4或5年的开源。从最初的Yaf到今天的PHP7,我参与的项目越来越多,使用我的代码的用户也越来越多。明天就要发布的PHP7,绝对是我开源以来最重要的里程碑之一,今天应该好好纪念一下,让我感慨一下。PHP7项目是去年春节期间启动的。当时我们基于PHP-5.5的OpcacheJIT项目基本没有达到预期。结果搁置了,做JIT的时候收集到的一些资料让我们意识到基础部分还不够好,不能很好的支持JIT,所以2014年2月左右,我们开始了重构项目,当时希望通过通过重构,可以获得30%以上的性能提升,为后续进一步优化打下基础。那时候项目还没有定名,只是在尝试,那几个月对我来说是最忙的因为这个项目只有我们两个人,而且我也忙于微博工作,所以我基本上只在上面度过我的夜晚。不过好在还有5个人和我有时间差,所以可以连载很多作品。随着项目的推进,我们惊喜地发现性能提升比我们想象的还要大。4月份又有一个人加入进来,5月份,基本上已经完成了大部分工作,所以我们公布了这个结果,并将其命名为PHPNG项目。但是没想到的是,我们遇到了很多来自社区的阻力,因为在我们偷偷开发PHPNG的时候,社区还并行的有一个主要由微软学生发起的64位支持项目。我们发布PHPNG的时候,他们质疑突然打了这么大的补丁,以后怎么维护都没人懂。64位支持分支合并等,然后反对采用PHPNG分支。我当时很沮丧,长期的争吵让我很疲惫,***因为我真的摆脱不了,生气的时候也不在乎自己的跛脚英文,在邮件群里回复了一个吐槽邮件,呼吁大家珍惜这个性能提升分支。还有一个非常有趣的插曲。PHPNG的支持者很多,对于这样的争吵他们也很郁闷。一天,一些支持者在PHP官网发布了这样一则新闻:http://php.net/archive/2014.php#id2014-05-27-1,其中写道:“当我们不是在寻找图片的时候国际上的小猫ernet,internalsdevelopersnearlyalwayslookingforwaystoimprovePHP,afewdeveloperhaveafocusonperformance.”,但反对者当天表示,不,PHPNG尚未被接受,并要求删除这篇文章,幸运的是考虑到文章已经发了,***只是把这篇文章在首页的词条删掉了,内容却保留在存档里。很多媒体都感觉到了这个乌龙。争论过后,我们只好发起决定是否接受PHPNG的一票,好在投票***的时候,大部分人都支持PHPNG项目,决定开始我们基于PHPNG的新版PHP开发,当时还不确定是否使用PHP6还是PHP7版本号(后来投票决定PHP7)。我经常说,这段经历让我感受到了“民主的痛苦”。之后的事情大家可以看到,在过去的两年时间里,各种新特性已添加,性能不断提高,许多以前不合理的改进等等,都被加入到PHP7中,使得PHP7越来越丰富。从顶层ZVAL到标量类型Tip的变化,从最初30%的性能提升到现在超过100%的性能飞跃,每一个变化都值得期待。然后在几番勉强的弹跳之后,终于,从今天开始,这一切都呈现在了大家的面前。有时我想,我很幸运,幸运能有机会去做以前从未做过的事情并有挑战,幸运能感受到自己的成长,幸运能完成大部分的努力,终于,我看到了效果并获得奖励。也衷心希望我的幸运能够激励更多的人参与到开源中来。未来,我们将继续致力于提高PHP的性能和质量,让更多从事本项目的PHPer能够继续享受到透明的改进。***,开源这么久,给我带来了很多收获。我要感谢大家,感谢你们的这些鼓励,感谢你们亲切的赞美。PS:本来想在PHP7发布之后再发的,但是我觉得可以用来造势,所以还是先发布了。PHP7目前已经可以下载了,官宣会考虑到时差,后天早上去看看吧。目前下载地址:http://php.net/get/php-7.0.0.tar.gz/from/a/mirro尽情享受吧!
