PHP老矣,尚能饭否?

未知
2024-03-18 10:57:47
0

“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

以上就是PHP老矣,尚能饭否?的详细内容,更多请关注全栈开发网其它相关文章!
原文链接:https://www.51cto.com/article/777229.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 service@p2hp.com 进行投诉反馈,一经查实,立即处理!
-- -- 0

上一篇:没有了

下一篇:我们都应该学习PHP

相关内容

现在你可以用一个命令安装 PHP 和 Laravel 安装程序
现在你可以用一个命令安装 PHP 和 Laravel 安装程...
创建第一个 Laravel 项目时,您需要确保先安装 PHP 和 Composer。但是,...
2024-10-17 15:32:51
如何在 PHP 中检测 n+1 查询
如何在 PHP 中检测 n+1 查询
n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可...
2024-05-11 12:58:01
为什么 Laravel 这么优秀
为什么 Laravel 这么优秀
Laravel 一直是我心中最优雅的后端框架,为了向更多的人解释为什么 Laravel 这...
2024-03-21 09:58:21
我们都应该学习PHP
我们都应该学习PHP
PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocesso...
2024-03-18 10:49:03
PHP老矣,尚能饭否? 近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PH...
为什么 Laravel 这么优秀 Laravel 一直是我心中最优雅的后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框...
如何在 PHP 中检测 n+1 查询 n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您...
我们都应该学习PHP PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocessor。但我想...
现在你可以用一个命令安装 PHP 和 Laravel 安装程序 创建第一个 Laravel 项目时,您需要确保先安装 PHP 和 Composer。但是,如果您尚未...
PHP老矣,尚能饭否? 近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PH...
为什么 Laravel 这么优秀 Laravel 一直是我心中最优雅的后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框...
如何在 PHP 中检测 n+1 查询 n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您...

最新文章

现在你可以用一个命令安装 PHP 和 Laravel 安装程序 创建第一个 Laravel 项目时,您需要确保先安装 PHP 和 Composer。但是,如果您尚未...
如何在 PHP 中检测 n+1 查询 n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您...
为什么 Laravel 这么优秀 Laravel 一直是我心中最优雅的后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框...
PHP老矣,尚能饭否? 近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PH...
我们都应该学习PHP PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocessor。但我想...