经风靡全球的 PHP 为何逐渐失去优势?

news2024/12/28 3:28:59

        TIOBE 编程语言人气指数发布更新,并提出“PHP 的魔力是否正在消散?”的灵魂拷问。今年 4 月,PHP 在 TIOBE 编程语言指数榜上仅位列第 17,“成为其有史以来的最低排位”。

        暴露 PHP 人气急剧下滑的还不只是 TIOBE 榜单。在年度 Stack Overflow 开发者调查报告中,PHP 的市场占比也从 2018 年的 30.7%(即受访者当中使用 PHP 的百分比)下降至 2023 年的 18.58%。JetBrains 开发者生态系统调查同样观察到类似的趋势,PHP 占比从 2017 年的 30% 下降至 2023 年的 18%。而且最后一项数据尤其值得关注,因为 JetBrains(以及 WordPress 托管厂商 Automattic)正是 PHP 的最大赞助方之一。

JetBrains 公布的开发者调查结果。

这种下滑趋势在 BuiltWith 上体现得尤其明显,自 2020 年底以来 PHP 的流行度增长线开始断崖式跌落。

图片

BuiltWith 公布的 PHP 趋势图。

        截至 2021 年 11 月的一项调查显示,PHP 在互联网前百万个网站中的占比仍在 3 万以上。但如今两年多过去,其占比已经下滑至 1.5 万左右。而且截至本文撰稿之时,BuiltWith Quotes 公布的实际占比数字为 18.19%。18% 这个比例与 Stack Overflow 及 JetBrains 的调查发现高度吻合,因此我们可以基本确定,PHP 在开发者中的受欢迎程度已经从之前的约 30% 萎缩至现在的 18%。换言之,在短短两年之间下降了 40%。

        所以结论是什么?在过去几年里到底发生了什么样的变化,才导致 PHP 在 Web 编程语言的竞争当中迅速落败?

WordPress 高调宣布“JavaScript 优化”

        可以说,PHP 衰落的最大原因就是 WordPress(迄今为止最具人气的 Web 内容管理系统)正在从 PHP 转向 JavaScript。WordPress 联合创始人兼 Automattic 公司 CEO Matt Mullenweg 在上月于中国台湾召开的 WordCamp Asia 2024 大会上也就此做出论述。

        他在回答观众提问时表示,“我觉得 WordPress 中的大部分新代码现在都是由 JavaScript 编写而成,而且这种趋势已经持续了一段时间。因此从方方面面来讲,如今的 Gutenberg 已经转化成了一个 JavaScript 优先的项目。”

        大家绝没看错:Matt Mullenweg 直言现在的 WordPress 就是个“JavaScript 优先的项目”。而他所提到的 Gutenberg,其实是该公司备受争议的全新用户界面,同时也是推动 JavaScript 全面替代 PHP 的主要原因。当然,他也承认从 PHP 转向 JavaScript“并不容易”。

图片

        WordPress 联合创始人 Matt Mullenweg 在 WordCamp Asia 2024 大会上。

        这倒不是说 WordPress 不再依赖于 PHP。毕竟在撰写本文时,我恰好就是在 WordPress 中以“/wp-admin/post-new.php”结尾的 URL 输入这篇文章。但只能说目前如此,未来的 WordPress 已经确定要走向另一条道路。

        Mullenweg 还谈到,他希望能在 WordPress 中看到进一步改进——令人惊讶的是,他已经开始从 JavaScript 的视角出发看待这些变化。比如说,PHP 是一种服务器端脚本语言(意味着代码通常在 Web 服务器上处理),而 Mullenweg 希望 WordPress 能使用 JavaScript 把更多操作交由客户端执行。

        他意味深长地表示,“我真心觉得我们应该把更多处理任务留在客户端。比如对于正在编辑的内容,这部分处理就可以交给客户端。这种在浏览器运行 JavaScript 的速度可能会更快,因为现在虚拟机和性能极强的处理器已经相当普遍。”

        在演讲即将结束之时,有观众向 Mullenweg 询问他对 Gutenberg 项目的感受,以及开发人员为其做出贡献时遭遇到哪些困难。提出这个问题的开发者还希望“降低 Gutenberg 的抽象级别”。

        Mullenweg 回应称,“说实施,我觉得大家必须适应这种发展态势。我认为 Gutenberg 的开发方式和 JavaScript 优先理念才是大部分 Web 开发工作的未来方向。顺带一提,其实我也得重新学习,这些东西跟我当初熟悉的方式也有区别。也许我们可以把某些抽象调整得更简单一点,但总体而言,我会选择深入研究一下。”

        他还补充称,Gutenberg 项目、包括向 JavaScript 语言的转变,目前还远未完成。“在启动 Gutenberg 项目时,我们就知道这可能是个为期 10 年的项目。目前我们才刚刚完成 60% 到 70% 的工作。”

与此同时,在 PHP 基金会这边……

        不得不承认,WordPress 项目(也是 PHP 能够在 Web 领域保持流行的最大动因)正坚定向着 JavaScript 世界迈进。这几乎必然会阻止更多年轻开发者选择 PHP,同时迫使其他开发人员(例如那些致力于服务 WordPress 客户的开发人员)从 PHP 转向 JavaScript。

        但好消息是,仍然有相当一部分开发者群体会继续使用 PHP——毕竟两轮大规模开发者调查中的这 18% 对应着相当体量的从业受众。而 PHP 基金会将继续为他们提供支持。

        PHP 基金会于 2021 年 11 月正式成立,希望以非营利组织的身份承担起 PHP 项目的管理职责。PHP 基金会是由 JetBrains 领导的企业联盟所建立,其中包括 Automattic、Zend、Laravel 以及 Acquia(Drupal 的托管商)等。JetBrains 工程师 Roman Pronskiy 则出任项目负责人,目前在基金会网站上的头衔为“运营主管”。

        在今年 2 月的 Laravel 会议上,Pronskiy 主要探讨了技术问题,同时也承认“PHP 基金会目前最艰巨的任务,就是扭转 PHP 在公众心目中的形象。”虽然他没有具体说明是哪些原因导致 PHP 的公众形象下降,但 Matt Mullenweg 在解释 WordPress 转向“JavaScript 优先”的理由时已经基本给出了答案。无论如何,Pronskiy 正快速投身于 PHP 项目的后续开发,并为其组织起由 10 名有偿开发者组成的全职团队。

图片

PHP 基金会团队。

        总而言之,2024 年的 PHP 几乎成了 Web 开发领域爹不疼、娘不爱的“孤儿”,而 JavaScript 则是在家、在校都备受关注的宠儿。对 PHP 来说更加可悲的是,目前的这种人气下滑趋势短时间内恐怕无法停止——毕竟 WordPress 那边的开发团队还在积极适应新的 JavaScript 规范。但至少 PHP 基金会还在为此而努力,也许这股颓势能够逐渐迎来转机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

到底什么是爬虫

1. 引言 在数据驱动的世界里,网络爬虫(Web Crawling)技术扮演着获取和处理网上数据的关键角色。无论是为了数据分析、机器学习项目的数据集构建还是简单地监测网页变化,学习如何创建一个基本的网页爬虫可以大大提升你的工作效率和…

JAVASE基础语法(异常、常用类)

一、异常 1.1 什么是异常 异常就是指不正常。是指代码在运行过程中可能发生错误,导致程序无法正常运行。 package com.atguigu.exception;public class TestException {public static void main(String[] args) {int[] arr {1,2,3,4,5};System.out.println(&quo…

【c++】探究C++中的list:精彩的接口与仿真实现解密

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章来到list有关部分,这一部分函数与前面的类似,我们简单讲解,重难点在模拟实现时的迭代器有关实现 目录 1.List介绍2.接…

CSS3新增特性(二)

四、2D 转换 • 属性名:transform (可用于制作2D转换,也可用于制作3D转转换;2D转换是平面上的转换,3D转换是在三维立体空间的转换) • 作用:对元素进行水平或垂直方向的移动、缩放、旋转、拉长…

你们项目日志是如何处理的???

ELK日志采集系统 1.什么是ELK ELK 是一套流行的数据搜索、分析和可视化解决方案,由三个开源项目组成,每个项目的首字母合起来形成了“ELK”这一术语: Elasticsearch (ES): Elasticsearch 是一个基于 Apache Lucene 构建的分布式、实时搜索与…

【Python性能优化】list、array与set

list、array与set 详述测试代码 详述 本文对比 list 与 set 在插入和取值时的性能差异,以提供一条什么时候该选择什么数据类型的建议。先上结果: array 与 list 的不同: 内存方面 array 是 C array 的包装,它直接存储数据&#xf…

Vu3+QuaggaJs实现web页面识别条形码

一、什么是QuaggaJs QuaggaJS是一个基于JavaScript的开源图像识别库,可用于识别条形码。 QuaggaJs的作用主要体现在以下几个方面: 实时图像处理与识别:QuaggaJs是一款基于JavaScript的开源库,它允许在Web浏览器中实现实时的图像…

授权协议OAuth 2.0之通过OIDC实现SSO

写在前面 本文来一起看下OIDC(openid connect)相关内容。 1:什么是OIDC OIDC的全称是openid connect,和OAuth2.0一样,也是属于协议和规范的范畴。OAuth2.0是一种授权协议,即规定了what you can do的内容…

kafka部分partition的leader=-1修复方案整理

kafka部分partition的leader-1修复方案整理 1. 背景说明2. 修复测试2.1 创建正常的topic并验证生产和消费2.2 停止kafka模拟leader-12.3 修复parition2.4 修复完成验证生产消费是否恢复 3. 疑问和思考3.1 kafka在进行数据消费时,如果有partition的leader-1&#xff…

MySQL基础之多表操作(多表查询,事务,索引)

目录 一、多表关系1.1 一对多1.2 外键约束1.3 一对一1.4 多对多 二、多表查询2.1 测试数据准备2.2 笛卡尔积2.3 内连接2.4 外连接2.5 子查询1.标量子查询2.列子查询3.行子查询4.表子查询 三、事务3.1 问题场景引入3.2 概念3.3 事务操作3.4 事务的四大特性ACID 四、索引4.1 概念…

人工智能高速发展 苹果能否赶上AI热潮

近年来,人工智能高速发展,科技大佬们竞相布局人工智能赛道。苹果虽然“晚”了一步,但也在不断追赶这股热潮。随着AI技术不断发展,这项技术已经成为手机发展的新风向标,甚至2024年被视为AI手机元年。 众多手机厂商铆足了…

vue做导入导出excel文档

系统中经常会遇到要实现批量导入/导出数据的功能,导入就需要先下载一个模板,然后在模板文件中填写内容,最后导入模板,导出就可能是下载一个excel文件。 1、导出 新建一个export.js文件如下: import {MessageBox,Mes…

【Xilinx】时序约束学习 TIMING-2: 基准时钟源管脚无效

在错误的管脚 <pin_name> 上创建了基准时钟 <clock_name>。建议仅在适当的时钟根&#xff08;不含时序弧的输入端口或原语输出管脚&#xff09; 上创建基准时钟。 描述 基准时钟必须在时钟树的源时钟上定义。例如&#xff0c; 源时钟可能是设计的输入端口。如果在…

4.20.1 深度神经网络提高放射科医生在乳腺癌筛查中的表现

新颖的两阶段神经网络&#xff0c;用于将全局和局部信息与适当的训练过程结合起来。这使我们能够使用非常高容量的块级网络从像素级标签中学习&#xff0c;同时网络也可以从宏观乳房级标签中学习。模型可以生成可解释的热图&#xff0c;指示可疑发现的位置。即使在拥有大量图像…

Neo4j数据库(二)

目录 WHERE子句 简单WHERE子句语法 复杂WHERE子句语法 DELETE删除 删除节点 DELETE节点子句语法 REMOVE删除 删除节点/关系的属性 REMOVE属性子句语法 SET子句 SET子句语法 WHERE子句 像SQL一样&#xff0c;Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询…

VMware-Linux切换桥接模式上网教程(超详细)

这里写目录标题 1. 虚拟机关机2. VMware 虚拟网络配置2.1 检查是否存在 VMnet02.2 修改桥接模式2.3 修改Linux虚拟机网络适配器 3. Linux 系统配置3.1 修改系统网卡配置3.1.1 配置项含义解释3.1.2 查看物理机网络信息3.3.3 修改配置 3.2 重启服务 4. 测试网络连接情况5. 注意事…

Oracle Analytics BIEE 操作方法(四)仪表盘导出“区域”不换行也不合并居中的方法

1 分析 取消所有区域内列格式里面的换行 2 仪表盘 点击“工具” 打印和导出选项 设置固定列宽&#xff08;范围是&#xff1a;0-300&#xff09;

图片像素高效处理,轻松将图片像素进行按比例缩小50%并保存在指定位置,让您的图像更精致!

图像与我们的日常生活紧密相连&#xff0c;从社交媒体分享到专业摄影作品展示&#xff0c;高质量的图片像素处理显得至关重要。然而&#xff0c;面对海量的图片数据和高分辨率的图像处理需求&#xff0c;如何高效、简便地进行像素调整成为了众多用户关注的焦点。 第一步&#…

怎么通过PHP语言实现远程控制门锁

怎么通过PHP语言实现远程控制门锁呢&#xff1f; 本文描述了使用PHP语言调用HTTP接口&#xff0c;实现控制门锁&#xff0c;通过智能出门开关&#xff0c;配合普通的电插锁、电磁锁&#xff0c;来实现门禁控制。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应…

有时候知道自己该去做什么,但就是不去行动,怎么办?

只要有想法&#xff0c;马上就去办&#xff01;马上、及时、立刻去办&#xff01;这可能是唯一解决这个问题的方法&#xff0c;您办完事情之后的感觉会有极强的满足感&#xff0c;然后再逐步慢慢的开始您所有的计划安排&#xff0c;一定会水到渠成&#xff01;您可能不信&#…