不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2015-11-22 17:16  分类:行业资讯  编辑

韩天峰,车轮互联总架构师,Swoole开源项目创始人,PHP语言官方扩展开发组成员。曾负责腾讯朋友网、易迅商城基础平台的开发工作。大会前夕,笔者联系上了韩天峰,请他分享他与PHP的不解之缘并解读PHP的发展现状。关于PHP7和HHVM的性能之争,在他看来,PHP7才是未来的方向。

车轮互联总架构师,Swoole开源项目创始人,PHP语言官方扩展开发组成员 韩天峰

CSDN:首先请自我介绍下自己,以前目前所负责的领域以及所在公司。

韩天峰:我是一名资深的PHP程序员,有差不多9年的PHP编程经历。现在PHP技术圈很火的Swoole开源项目就是我创立的,同时我也是PHP语言官方扩展开发组的一员。曾在腾讯社交平台部,淘宝搜索担任PHP工程师数年。目前在车轮互联担任架构师职位,负责整个公司的架构平台设计、公共组件的开发等工作。

CSDN:你是如何走上技术这条路的?对PHP有着怎样的情怀?

韩天峰:我从上高中的时候就对编程有浓厚的兴趣,上大学时专业也是计算机,所以自然就走上了技术的道路。我最开始选择的方向是Java,但是Java太复杂了,当时连开发环境都没能够搭建起来。偶然的发现了PHP,搭建开发环境非常顺利,仅仅几天就入门了。PHP语言非常简单,我用了很短的时间就实现了一个Web程序。从此就与PHP结下了不解之缘。后来用PHP开发完成了大大小小很多项目。

CSDN:Swoole是一款什么样的项目?开源Swoole的初衷是什么?

韩天峰:Swoole是一个PHP的异步网络通信库。在工作多年之后发现PHP这个语言有很大的局限性,甚至可以说PHP语言只写做Web程序。除了Web之外,其实服务器端程序还有很多种类。像Java、C++应用的范围很广。比如像WebIM这样的程序,可以支持几十万并发的客户端,可以实时通信。我觉得这个很有意思,所以想要突破这个限制。PHP语言本身也提供了一些可以实现进行底层操作和网络通信的扩展,比如sockets、libevent、pcntl之类。我进行了很多尝试,使用PHP编写了一些Server程序。而且还在腾讯的实际项目上做了大量实践。但这些始终无法让我满意,PHP提供的函数经过了一次包装粒度很粗,而且PHP无法精确操作内存。无论从功能和性能上与Java、C++相比都有很大的差距。后来我决定使用C语言来实现底层框架,并封装成PHP扩展,就是现在的Swoole项目。

CSDN:作为PHP语言官方扩展开发组成员,你怎么看待PHP的发展现状?

韩天峰:我非常看好PHP语言未来的前景。从各大招聘网站的职位上来看PHP目前是仅次于Java的第二大服务器端编程语言,远超C++、Python、Ruby。PHP程序员的工资逐年在上涨。从PHP语言本身来看,直到目前为止仍然没有一门其他语言可以做到比PHP更简单入门更快。现在有了Swoole让PHP可以在更广泛领域内应用。所以未来PHP必然会持续,被越来越多的程序员和企业使用。

CSDN:一直以来,PHP的性能问题被称为诟病,你是怎么看待此事?你认为PHP的优势在哪?

韩天峰:作为一个动态脚本语言本来就不是为计算密集的场景设计的。服务器端程序绝大部分都是IO密集型的,运算性能不是瓶颈。PHP的优势是简单、开发效率高,可以快速实现产品功能。性能上虽有一些差距,但也不会太大,多加一些机器就可以解决。和人力和时间成本相比,机器成本显然要便宜的多了。如果真遇到运算性能很关键或者其他问题PHP无法解决时,也可以用C++编写PHP扩展来解决。比如Phalcon框架、Swoole就是这个思路。另外PHP7已经明确要支持JIT特性,未来的PHP或许运算性能会和Java一样好。

CSDN:最近,有关PHP7和HHVM的性能之争成为了大众的讨论热点,在你看来哪一个才是PHP性能提升的未来?

韩天峰:个人认为PHP7才是未来的方向,HHVM虽然确实比PHP5性能要好很多,但迁移到HHVM有很多难题,比如HHVM不支持一些PHP的高级特性一些框架不能运行、HHVM对一些库的版本要求过高、HHVM没有某些扩展等。而PHP7是官方开发的,可以无缝升级。PHP程序无需修改代码即可运行起来,几乎是无成本得到数倍的性能提升。

CSDN:PHP7快要发布了,你最期待PHP7中哪些新特性?为什么?

韩天峰:PHP7最值得期待的自然是它的性能提升,升级到PHP7后PHP程序又可以快很多,可以节约一部分机器。

CSDN:你目前还会关注哪些新技术?给学习PHP的开发者一些建议吧。

韩天峰:我对Go语言也是非常感兴趣的,用它做了几个项目,感觉不错。Go语言提供的协程+通道,可以轻松处理高并发问题。另外我对腾讯推出的TSF框架也很感兴趣,这个项目非常有意思,它基于Swoole和PHP的Yield/Generators语法实现了类似与GO语言的协程。

 

 

摘自:https://blog.csdn.net/xiaoxinshuaiga/article/details/80454093