撰稿 | 如烟
出品 | 51CTO技术栈(微信号:blog51cto)
“PHP是世界上最好的语言”,已成为承载程序员黑色幽默的热梗。这门有着三十年历史的编程语言在web时代独享高光,近些年也伴随着“没落”、“将亡”的论调艰难前行。
近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PHP 的数量逐年下降。
图片
图片
细看图表中的曲线不难发现,过去 4 年,C、C++、Java、Ruby 的曲线都比 PHP 的平坦。因此有人直言:“2023 年,PHP 停滞不前”!
网友们的评论也是五花八门,有人并不看好PHP的发展:“很多系统已经不再支持它,我认为这很能说明问题”;还有人认为PHP不会凉凉:“40% 的网站仍在使用 Wordpress,因此 PHP 仍将存在一段时间。”
PHP 陷入停滞的原因是什么?是否真的大势已去,无法重现当年风采?
1、Web时代,得PHP得天下PHP作为服务器端脚本语言的开山鼻祖,在2000年-2010年经历了最荣耀的十年,也确实称得上是“世界上最好的语言”。
当时包括淘宝、雅虎、搜狐在内的80%的网站都用PHP开发,如果听说哪家互联网公司的后台不用PHP,都会觉得匪夷所思。
PHP应Web而生,回顾互联网的发展史,就不难理解PHP盛行的原因。
Web 1.0时代,互联网内容主要由网站自己生产,用户也只能通过桌面浏览器上网查看内容,这个阶段的业务形态比较简单,单体应用足以应付,不存在高并发等性能问题。上手简单、开发迅速的优势让PHP变得炙手可热。
进入Web 2.0时代,随着论坛、博客的出现,用户也能参与到内容创建中来,导致网站服务器面临前所未有的流量挑战。此时的PHP显得有些力不从心,但有大公司对其性能优化的加持,如社交软件Facebook推出了用于执行PHP代码的虚拟机HipHop VM,PHP的地位依然没有被撼动。
在这两个黄金时代,PHP+MySQL的“黄金组合”造就了很多经典的开源项目:WordPress、ecshop、Discuz! 等。
2、PHP走下“神坛”,优势变桎梏彻底结束掉 PHP “黄金时代”的是移动互联网的到来。
在万物成网的背景下,单体架构已无法满足复杂业务群高并发、高可用的系统需求,于是微服务应运而生。业务的多样化、复杂化也触碰到了PHP的瓶颈。一方面PHP的性能成了致命问题,另一方面其方便的机制因无法满足新的场景需求,反倒成了桎梏。
微服务的出现对PHP有哪些影响呢?
一是微服务要轻量化,传统的PHP架构并不满足要求。
二是服务要被多个业务端调用,运行要足够快;但PHP作为脚本语言,由于存在脚本解析消耗,运行速度确实赶不上 java、C++ 等静态语言。
三是为了满足服务间的频繁通信,通信协议必须高效,这样一来很多公司倾向于使用RPC协议而非HTTP协议,但PHP架构并不能很好地应用RPC通信的优势。
四是微服务要有较为成熟的生态和框架支持,但Swoole的微服务生态并不成熟。
综合来看,大部分公司进行服务化时,会选用主流静态语言(java、C++ 以及后起之秀 golang 等)。PHP 的“C位”不保,更多用来开发中间的业务聚合系统来调用这些服务。
3、新版本的发布能让PHP重回巅峰吗?为了适应当今的开发需求,PHP团队一直在努力推动语言的现代化改进。
近日,PHP 8.3 的推出,添加了“类常量显式类型”、“只读属性深拷贝”,“以及对随机性功能的补充”,这一系列的改进不仅让PHP更具竞争力,也使得它更适应当今复杂的应用场景,但也许并不能带PHP重现高光时刻。
主要原因来自编程语言生态系统中的重要角色——开发者群体。
PHP的“简单、强大、实用”,可以让开发人员专心面对业务,但这样却不利于开发人员的成长。绝大部分的 PHPer 都是业务工程师,不了解设计模式、数据结构、算法、计算机原理,无法胜任复杂的系统架构。
有网友曾吐槽:PHP性能并非最大的问题,PHPer的水平才是合作过程中最让人“咬牙切齿”的槽点。大多数PHPer写了多年代码也不会封装,分不清变量类型,甚至连自己的代码也讲不明白。
这也许才是PHP 生态发展中最致命的因素。
新版本的推出虽然弥补了语言自身的短板,却弥补不了生态中非语言部分的缺陷。既然 PHP 生态在解决复杂系统问题时不具备优势,公司就会选择其它更具优势的语言,自此便形成循环,PHP难回巅峰。
4、PHP尚能饭否?语言没有最好的,无论是PHP,GO,Java,都有自己的定位,而 PHP恰好是PC Web时代最适合快速开发Web站点的。
随着技术的高速发展,新的编程语言、框架如雨后春笋般冒出,可能很快就会改变现有格局,但这并不意味着曾经的王者就会永远地黯然失色。
首先,PHP目前依然是全球最流行的服务器端脚本语言之一。来自 W3Techs 的数据显示,WordPress 在43%的网站上运行,服务器端编程语言的网站中有 76.7% 都在使用 PHP。
其次,PHP对于处理Web请求和生成动态内容具有天然的优势,其简单、灵活的特性,特别适合业务、系统相对简单,无需服务化、对性能不敏感、需要快速迭代的场景,成为许多初创公司和中小企业的首选开发语言;另外,大公司在发展初期,大量项目都采用PHP作为核心语言,为了适应业务的发展,会将单体项目中的某些核心功能拆解成服务,单体项目调用后端服务接口,这种情况下,PHP 项目就成了粘合层。
最后,PHP有庞大的社区支持。社区的强大意味着有大量的开源工具、框架和库可供选择,同时也意味着问题的解决方案更容易获得。
总之,PHP 在未来可预见的很长时期内不会没落,它会作为中小公司的快速原型语言和大公司的粘合层语言长期存在,迎来属于它的“后黄金时代”。
参考链接:https://www.reddit.com/r/programming/comments/18hgduc/github_says_php_is_the_most_stagnating_language/
https://zhuanlan.zhihu.com/p/667402970
https://www.zhihu.com/question/442641007/answer/1726044472
https://baijiahao.baidu.com/s?id=1783339298344382156
来源: 51CTO技术栈