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

        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.mfbz.cn/a/570255.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MP4转gif如何操作?一个常见方法分享

MP4是一种视频格式,而gif则是图片格式。当我们需要将MP4格式的时候转成gif格式图片的时候要怎么操作呢?怎样在不下载软件的情况下在线转换格式呢?很简单,通过使用gif图片制作(https://www.gif.cn/)工具-GIF…

Android开发者必备:RootEncoder引领实时流媒体传输革新

Android开发者必备:RootEncoder引领实时流媒体传输革新 I. 引言 A. RootEncoder简介 RootEncoder for Android(rtmp-rtsp-stream-client-java)是一个功能强大的流编码器,旨在通过多种协议(包括RTMP、RTSP、SRT和UDP…

VR全景创业项目应该如何开展?未来有市场吗?

伴随着5G网络的发展,VR全景得到了众多的关注和提升。与此同时,各行各业都开始关注自身产业在互联网的展示效果,因为年轻一代的生活已经离不开互联网,而VR全景在互联网上的3D展示效果能给商家带来流量,提升营业额。 随着…

ERROR: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

今天本来想在A服务器上传文件给B服务器的结果发现明明给root用户设置了密码就是远程登陆不了,后来才发现在容器中很多服务都是没有的,所以刚安装后忘记了修改配置文件,导致远程登陆失败。 报错: 解决方法: 在/etc/ssh…

【电控实物-infantry】

云台电机参数 电机内部参数 相电阻:Rs1.8欧 相电感:Ls5.7810^-3H 转矩常数:Kt 0.741 NM/A 转动惯量:J KG-m^2 电机接收数据:-16384到16384(-3A到3A) 电机反馈:速度RPM rad/s (2πrpm)/60 C板陀螺仪&…

苍穹外卖学习笔记(9.订单状态定时处理,来电提醒,客户催单)

目录 一、订单状态定时处理1、需求分析设计2、代码开发3、测试 二、来单提醒1、需求分析设计2、代码开发3、测试 三、客户催单1、需求分析设计2、代码开发3、测试 四、相关知识1、Spring Task2、WebSocket 一、订单状态定时处理 1、需求分析设计 2、代码开发 创建orderTask类…

初学若依笔记

初学若依 下载ruoyi(以前后端分离板为例) https://ruoyi.vip/ 部署 安装mysql安装redis将数据库和redis配置到若依 配置文件为 ruoyi-admin\src\main\resource\application-druid.yml 运行 略 开发自己的功能 创建模块 为了不影响原有功能,创建一个模块写自…

物联网(iot)深度解析——FMEA软件

物联网即IoT,是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过…

顺序栈算法库构建

学习贺利坚老师,顺序栈,构建顺序栈算法库 数据结构之自建算法库——顺序栈_设计一个主函数实现对顺序栈进行操作测试,测试方法,依次把元素-CSDN博客文章浏览阅读4.9k次,点赞10次,收藏10次。本文针对数据结构基础系列网络课程(2)&…

CRAFT文字检测算法解析和基于C++和TensorRT的推理实现

本文讲解了CVPR 2019的一篇文字检测算法《Character Region Awareness for Text Detection》的原理,并给出我使用C和TensorRT重新实现的推理,速度比原版代码快12倍。 论文:https://arxiv.org/pdf/1904.01941.pdf 官方代码:https:…

自然语言处理 (NLP) 的技术演变史

一、简述 本文的目标是了解自然语言处理 (NLP) 的历史,包括 Transformer 体系结构如何彻底改变该领域并帮助我们创建大型语言模型 (LLM)。 基础模型(如 GPT-4)是最先进的自然语言处理模型,旨在理解、生成人类语言并与之交互。 要理…

IPEmotion轻松解决急停设备的控制与数据存储问题

一 背景 众所周知,急停操作在各种工业领域中都扮演着非常重要的角色。在一个个紧急情况下,及时采取急停操作可节省宝贵时间,避免人身伤害或设备损坏,降低安全风险,尤其是在新能源测试中,出于对高压电性能方…

linux 关闭不了docker服务

[rootiZ2ze7y4akbxb1yjoydztxZ ~]# systemctl stop docker Warning: Stopping docker.service, but it can still be activated by: docker.socket 在 systemd 系统中,服务和套接字是分开管理的。docker.socket 是一个套接字单元,用于监听 Docker 的 API…

小程序AI智能名片S2B2C商城系统:五大营销技术模块深度剖析

在当今数字化营销的时代,小程序AI智能名片S2B2C商城系统凭借五大核心营销技术模块,为企业提供了强大的私域流量管理与营销能力。下面我们将逐一剖析这五大模块,看它们如何共同助力企业实现精准营销与业务增长。 一、小程序:用户触…

力扣刷题 70.爬楼梯

题干 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&…

机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day 23

Day 23 Self - Atention 变形 关于很多个former 的故事 痛点: 在于做出注意力矩阵之后的运算惊人 由于self - attention 一般都是在big model 的一部分,所以,一般不会对模型造成决定性的影响, 只有当model 的输入较长的时候&am…

求臻医学MRD产品斩获2023年度肿瘤标志物年度十大创新技术产品奖

2024年4月20日,中国肿瘤标志物学术大会开幕式暨名家讲坛在南京隆重召开! 会议期间,中国抗癌协会肿瘤标志专业委员会联合中国抗癌协会肿瘤临床检验与伴随诊断专业委员会、中国抗癌协会肿瘤基因诊断专业委员等共同发布“2023 年度肿瘤标志物创新技术产品”…

Java 提取HTML文件中的文本内容

从 HTML 文件中提取文本内容是数据抓取中的一个常见任务,你可以将提取的文本信息用于编制报告、进行数据分析或其他处理。本文分享如何使用免费 Java API 从HTML 文件中提取文本内容。 安装免费Java库: 要通过Java提取HTML文本,需要用到Free…

C语言实现双人贪吃蛇项目(基于控制台界面)

一.贪吃蛇 贪吃蛇是一款简单而富有乐趣的游戏,它的规则易于理解,但挑战性也很高。它已经成为经典的游戏之一,并且在不同的平台上一直受到人们的喜爱和回忆。 二.贪吃蛇的功能 游戏控制:玩家可以使用键盘输入设备来控制蛇的移动方…

基于模糊控制的纯跟踪横向控制在倒车中的应用及实现

文章目录 1. 引言2. Pure Pursuit在倒车场景的推导3. 模糊控制器的设计3.1 基础知识3.2 预瞄距离系数k的模糊控制器设计 4. 算法和仿真实现 1. 引言 Pure Pursuit是一种几何跟踪控制算法,也被称为纯跟踪控制算法。他的思想就是基于当前车辆的后轮中心的位置&#x…
最新文章