(点击上方公众号,可快速关注)

来源:鸟哥/惠新宸 (首发在他的微信公号「风雪之隅」)

主页君今日下午和鸟哥要了授权咯

做开源也有四五年的时间了,从最初的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!

【今日微信公号推荐↓】

php7 鸟哥解说,PHP7 要正式发布了,鸟哥有话说相关推荐

  1. php7的稳定性,探索PHP7(一)--性能

    #探索PHP7(一)--性能# ##前言## 在2015年12月2号,鸟哥的在开源中国发布的新闻写在 PHP 7 发布之际一些话,小编意识到从8月份发布第一个公测版到现在经过了将近4个月的等待PHP7 ...

  2. php7 编译参数详解,php7.4.5编译安装参数变更

    Last updated on 2020年6月11日 php7.3/7.4开始,很多之前的配置取消或者变更了,比如不支持"–with-gd, –with-mcrypt,  –with-lib ...

  3. ubuntu 16.04 + apache2 将php7.1 切换到 php7.3

    背景: ubuntu 更新时,选择,保留当前 php 版本,导致出现了 多个php 版本 ,phpinfo 显示的是 php7.1.在用 php -i 查看,发现,很多扩展打不开. 1. Ubuntu ...

  4. linux怎么升级php7,Ubuntu 系统升级到php7.2/7.3 (平滑升级)-朝花夕拾

    系统内核: Linux darrykinger-Virtual-machine 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 ...

  5. Python实现“鸟脸识别”系统,看看什么鸟最贪吃~ 初学者也能学会

    梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 网友cldud1245是一个鸟类爱好者(以下简称喂鸟哥),最近打算自学Python. 拥有其他语言编程经验的他,可不打算按部就班从Hello ...

  6. 哥德尔不完全性定理 悖论式陈述 PM不可判定命题,和哥德尔可表达性定理——哥德尔读后之十八

    命题6 悖论式陈述 PM不可判定命题,和哥德尔可表达性定理--哥德尔读后之十八 开始命题六,也就是哥德尔第一不完全性定理的阅读了,但似乎离这个著名定理,还有那么一丁点的距离.于是本篇依然是交代命题6证 ...

  7. 逍遥游 一致性和哥德尔两大定理—— 读哥德尔之八

    ##* *## *逍遥游 一致性和哥德尔两大定理-- 读哥德尔之八 内格尔那本<哥德尔证明>的导言,是<集异壁>的作者侯世达为之撰写的.侯世达1959年初涉哥德尔,1972年那 ...

  8. 鸟什么羊什么的成语(鸟什么羊什么四字成语大全)

    鸟什么羊什么的成语(鸟什么羊什么四字成语大全) 鸟道羊肠: 狭险典折的山路. 推荐阅读:历姓起名 公司起名 公司起名. 中亚铝业 中亚铝业

  9. leetcode刷题java、c++、go语言三合一版本 谷歌师兄的刷题笔记、东哥的算法小抄、 Guide哥的Java面试突击版

    不久前火爆 GitHub 的 LeetCode 中文刷题手册,分享给大家,让正在找工作的朋友能够快速找到心仪的offer! <LeetCode Cookbook>目前已经收录了 520 道 ...

最新文章

  1. java 虚拟机指令集_jvm规范-jvm虚拟指令集及编译
  2. 选择合适的CMS搭建网站
  3. HDOJ_2010_大二写_水仙花数
  4. JavaScript 常用函数总结
  5. 一文看懂Python(一)-----列表和元组篇
  6. python第十九天(random、json、pickle、hashlib、hmac、shutil、shevle模块)
  7. 获得jmp esp地址
  8. scala java抽象理解_Scala之类、特质和抽象类
  9. 算法 - 反转字符串
  10. java程序运行没有结果,求助啊!我刚学java 下面的程序一直运行但是没结果!!!...
  11. python把文件中的邮箱分类 保存到相应的文件里面
  12. Litjson快速入门
  13. php 扫描条形码,将条形码扫描仪集成到PHP应用程序中?
  14. ionic 实时调试android手机
  15. Processing创意编程(入门篇)
  16. 手机重装为linux,安卓手机重装系统的方法
  17. 2007年9月计算机等级,2007年9月第26次全国计算机等级考试总体安排
  18. 《认知突围:做复杂时代的明白人》感想
  19. 产品经理需要了解的概念【职位篇】
  20. 柠檬班自动化学习笔记

热门文章

  1. b2b2c多用户商城系统与b2c自营商城系统有什么差别?
  2. 离散数学学习笔记— —范式
  3. 关于keil里调用arm_math.h库的一个问题
  4. ESP32-S3物联网技术应用,可视门铃物智能响应发展
  5. 深度探索as3的事件机制
  6. uva 441 Lotto
  7. MySQL拼接函数使用介绍
  8. 如何使用PS制作橙色高光壁纸
  9. 跑腿网站TaskRabbit获C轮1300万美元融资
  10. EWM-ODN 0过账操作步骤