别再说PHP已死了,它活得好着呢

255 阅读7分钟

如果把PHP比作一款产品,那它远远还没有到退市的地步,更别提报废了。然而,市面上总是有很多人希望它消失,持续地看衰PHP,但是它在很长一段时间内肯定不会消失。

PHP面临的问题

在发展的过程中,PHP遇到的最大危机可能就是PHP 6的难产。从2005年开始,到2010年被终止,版本6最终被放弃,而这个项目也被认为是PHP发展的最失败的案例之一。5年后,PHP 7.0正式上线,性能相较于之前的PHP 5.6有了大幅提升。

根据PECL开发组成员韩天峰的发言,PHP 7在运行原理上跟5没有变化,性能提升主要得益于Zend引擎的大幅度重写和改进。值得注意的是Zval的性能提升,内存管理,JIT的开源,AST的引入等等,在庞大的开发者社群的努力之下,我们能看到的是PHP一直在快速稳定的迭代进步当中。

另一个被人诟病的是Wordpress的伸缩性。wordpress最近差不多已经成了PHP的代名词,这个个人博客软件摧枯拉朽似的占据了大部分网站项目的份额。

下载 (8).png 图片引自websitetooltester.com,版权归原作者所有

从数据上看,wordpress还在不断的攻城略地,不出意外的话,2021年依然会是上升的一年,它可能是人类历史上最受欢迎的内容管理系统。PHP的商业价值可以说和Wordpress有很大的关系,排名第二的Joomla仅仅是它的1/20左右,而开发者收入最高的Drupal份额更低。

下载 (10).png

服务器端编程语言,PHP占比接近80%,吊打所有其它语言

截屏自w3techs.com

根据我的调查,用wordpress开发的网站当中流量第一的可能是纽约邮报网站(nypost.com),但是这个网站的综合数据非常普通,甚至有点惨不忍睹。

下载 (9).png

虽然wp可以通过将媒体文件放到S3上,加上load balancer和CDN,配置好多层缓存,数据库放到云上等等,不过wp自身限制(开源软件)才是真正的瓶颈。这个留到以后慢慢说。

wordpress-on-aws.png

Wordpress在AWS上的最佳实践

图片引自AWS网站,版权归原作者所有

总之,wordpress上船容易,但是一旦做大,可能就有一种上了贼船的感觉。虽然可以在硬件上加大投资换性能,但是一定会有一些磕磕绊绊和解决不了的问题。

为什么要用PHP?

PHP是给创业者准备的,最好的案例可能就是Facebook。

6a00d8341c630a53ef0167618523c2970b-600wi.jpg

图片引自latimes. com 2012年报道

初创公司对劳动力成本是非常敏感的。我自己也见证过不少初创公司采用很重的技术栈最终失败的案例。比如某网友的公司做手机APP,没有使用门槛较低的Hybrid框架,而是使用了原生开发环境,于是雇佣了OC/Swift和Java程序员,同时开发iOS和Android平台的App,还要雇佣工资更高的有经验的人带项目。这些工种在深圳的起薪很高,给初创公司造成了比较大的财务负担,最终成了短命项目。

对比Java,PHP有以下优势

作为一种解释语言,PHP的性能很好(和其它解释语言相比),同时能够兼顾安全性。

PHP程序员的人数非常多,平均薪资相对较低。

开发一个PHP应用比Java快得多(需要短得多的时间)。

PHP拥有一个庞大而且活跃的生态系统,内容管理系统(Wordpress, Drupal等)、电商软件(WooCommerce, Magento, Opencart, PrestaShop等)、框架(Laravel、Symfony、Zend/Laminas、Yii等等)应有尽有。而这些产品所拥有的子生态也非常的活跃,比如Wordpress,你能免费获得大部分你想要的功能。

部署和维护非常容易,成本也是最低的。

值得注意的是,当项目做大之后,如果资金允许,项目一般都会迁移到Java或者.Net生态中去。上面提到的Facebook甚至不厌其烦的开发自己的PHP编译器和虚拟机,甚至重新开发了自己的PHP版本——Hack。FB好像还在用PHP,但是又好像没有在用PHP,因为服务器上运行的代码是编译后的C++代码。

PHP也是给小项目准备的。

个人博客,企业形象站,论坛,中小型的新闻媒体,中小电商,各种专业服务等等,都可以用PHP开源代码来轻松实现。我玩过为数不多的其它几种语言,论简单性,PHP完全碾压其它语言。

小项目大概不可能配置所有的工种,比如DBA,系统管理员,运维(DevOps),QA等等。也不可能像拿到投资的FB一样开发了所有的功能、工具、中间件、语言、编译器、虚拟机....(比如:HipHop/HHVM,Hack,Haystack,BigPipe,React等)。几乎只能投靠开源生态,比如依靠Wordpress和WP生态下数量庞大的模板和插件。

WP生态有很大的商业利益和价值,各种第三方的代码都能够快速迭代升级。通常来说,每次WP升级之后,卖的最好的那些第三方软件都会非常及时地更新,你只需要稍微等几天就能够让这些软件和平台一起升级然后进行测试。在某种程度上来说,这些第三方软件的开发团队就像你的同事一样和你一起努力工作。

开源软件肯定是有其短板的。比如WP,不管你的决心多么强烈,都不可以去Hack它的源代码,否则后患无穷。你能够修改的,只能是自己开发的那一部分(插件或者模板)。

比如WP的可伸缩性的问题,你再怎么恨得慌,也只能去官方的论坛或者repo上面提建议,然后不停地催。期待下一个版本能够解决数据库上的瓶颈。

不过凡事都有例外,PHP并不是不能做大项目。比如Wikipedia就是用PHP写的,最近很流行的即时通讯软件Slack也是,其它的大规模项目还包括:Flickr, MailChimp, Esty等等。

PHP依然强大且健康

怎么说呢,虽然PHP几乎霸占了网站的世界,但是由于有数量庞大的支持者和卓越的维护者,PHP依然在不断的迭代进步着。

1_-L3FRdciMjywoa1fdVK3YQ.png

PHP group在PHP6项目失败之后,显然走出了泥潭,用一种非常紧凑的节奏不断推出新版本。目前PHP8已经正式上线,推出了两种JIT,性能相较于PHP7又有了不小的进步。

不断学习,不断进步,这意味着PHP依然有着强大的生命力和无限的可能性。

Laravel框架值得每一个PHP开发者去学习和掌握,它的地位有点像Java生态中的Spring。

下载 (11).png

我是从Laravel 4.2开始学的,然后就看着它一路狂飙,版本升到了现在的8,在2021年年末,V9又要上线了。PHP的世界里不光有WP,还有Laravel。Laravel Vapor也赶上了最近的一波Serverless浪潮,在AWS上有着数量庞大的用户。

Swoft/Swoole 能够让你的微服务项目摆脱PHP-FPM的束缚,它有着类似Go语言的协程操作方式,让你的PHP代码常住内存。它参考了Spring Cloud的框架的诸多优点,让PHP在高性能微服务领域能够与其它语言一较高下。

作为一个占据8成江山的网络编程语言,PHP还在努力自我提升,并且展现出一种蓬勃向上的健康气象,要说PHP快完蛋了,肯定没人信或者说危言耸听。精通Drupal开发的高级PHP程序员,在美国可以拿到接近100美元的时薪,合一个小时挣近700人民币。同时,Magento高级程序员的工资也很可观。