当前位置: 首页 > news >正文

2024 年 04 月编程语言排行榜,PHP 排名创新低?

编程语言的流行度总是变化莫测,每个月的排行榜都揭示着新的趋势。2024年4月的编程语言排行榜揭示了一个引人关注的现象:PHP的排名再次下滑,创下了历史新低。这种变化对于PHP开发者和整个技术社区来说,意味着什么呢?

PHP一度是Web开发的王者,但如今为何地位岌岌可危?其他语言又是如何崛起并逐步替代PHP的?

TIOBE 2024 年 04 月份的编程语言排行榜已经公布,官方的标题是:PHP 是否正在失去其魔力?(Is PHP losing its mojo?)

本月,PHP 在 TIOBE 指数中跌至历史最低点,早些年 PHP 作为脚本语言,特别适用于 Web 开发,很多网站都是用 PHP 代码写的,像 dedecms、Discuz!、,PhpWind 等国内的 CMS 系统都风靡一时,还有世界上网站用的最多的系统 Wordpress 到现在还非常的流行,这些都是使用 PHP 写的。

PHP 具有易学易用、灵活性强、性能稳定等优势,在 Web 开发领域广泛应用,再结合一些开源系统的流行,在当年 PC 时代,网站开发 PHP 基本是所有企业首选的开发语言。

同时被很多人称为:PHP 是最好的编程语言!!!

从下图可以看到,PHP 在本月已经掉到了第十七名,去年同期还在第九名:

图片

早期的 PHP 的市场份额一度超过了 10%,甚至在 TIOBE 指数中排名前三,而本月市场份额已经掉落到 1.09%,让人唏嘘。

下图也可以看出,PHP 这几年已经开始逐步下滑,特别近几年 Python、Ruby、Node.js(JavaScript) 的崛起,很多网站开发都被这些语言替代了,并且在其他方面这些语言都表现的更优异。

图片

目前,PHP 在中小型网站领域仍然占据着强劲地位,最流行的 Web 内容管理系统 WordPress 用的就是 PHP。

因此,短期内 PHP 也不会消失,但它的辉煌时代似乎已经过去了。

PHP(Hypertext Preprocessor)是一种通用开源脚本语言,特别适用于 Web 开发并可以嵌入 HTML 中。

PHP 最初由 Rasmus Lerdorf 在 1994 年创建,被设计用于快速开发动态网页,并且可以与多种数据库进行交互,包括 MySQL、PostgreSQL、Oracle 等。

PHP 优势:

  • 易学易用:PHP 的语法借鉴了 C、Java 和 Perl,使得许多程序员可以相对轻松地学习和使用它。此外,它与 HTML 高度集成,使得在 Web 页面中嵌入 PHP 代码变得简单。

  • 开源和免费:PHP 是开源的,可以免费使用,这使得它成为了许多开发者和组织的首选。同时,开源社区的贡献也使得 PHP 拥有丰富的扩展库和资源。

  • 跨平台性:PHP 可以在各种操作系统上运行,包括 Windows、Linux、Unix 和 macOS,因此具有很好的跨平台性,开发人员可以在不同的环境中使用相同的代码。

  • 强大的数据库支持:PHP 支持与多种数据库系统进行交互,包括 MySQL、PostgreSQL、Oracle 等,使得开发者可以轻松地处理数据操作和管理。

  • 灵活性和扩展性:PHP 具有丰富的内置函数和第三方扩展,同时也支持自定义函数和类,使得开发者可以根据项目需求进行灵活的定制和扩展。

  • 快速开发:PHP 的语法简单直观,结合丰富的函数库和开发工具,使得开发者可以快速构建动态网页和 Web 应用程序,提高开发效率。

  • 大型社区支持:PHP 拥有庞大的开发者社区,提供了丰富的文档、教程和论坛,开发者可以在社区中获得支持、分享经验和解决问题。

PHP 语言版本历史:

图片

图片

目前流行的各个版本支持时间:

图片

PHP 官方网站:https://www.php.net/

PHP 入门教程:https://www.runoob.com/php/php-tutorial.html

PHP 历史排名变动图:

图片

 

本月,排名前十的分别是:

Python,C,C++,Java,C#,JavaScript,Go,Visual Basic,SQL,Fortran。

图片

 

Python,C,C++,Java,C#,JavaScript,Go,Visual Basic,SQL,Fortran 历史变化曲线图:

图片

 

 

排名 11-20 的编程语言,PHP 已跌到 17

图片

排名 21-50 的编程语言:

图片

51-100的编程语言:

ABC, ActionScript, Apex, APL, AutoLISP, Bash, bc, Boo, Carbon, CFML, CHILL, CIL, CL (OS/400), Clojure, Cobra, Curl, DiBOL, Eiffel, Elixir, Elm, Groovy, Hack, Icon, Idris, Inform, Io, J, LabVIEW, Lingo, LiveCode, Maple, MQL5, Nim, OCaml, OpenEdge ABL, Oz, PL/I, PostScript, PowerShell, Pure Data, Q, Racket, Ring, Smalltalk, SNOBOL, Solidity, SPARK, SPSS, Wolfram, X++

各大编程语言的历史排名(1988-2024):

图片

编程语言“名人榜”( 2003-2023):

图片

TIOBE 每个月都会公布一次编程语言的排行榜,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科等等。

数据反映目前主流编程语言的变化趋势,对我们学习和工作可作为一个参考,但各个语言都有它们各自适合的应用场景,所以也不必过于在意,毕竟语言的好坏在于如何去使用它。

以下视频是近几十几年来编程语言的变化趋势:

参考:https://www.tiobe.com/tiobe-index/

编程语言的变化趋势不仅仅关乎开发者的选择,也反映出行业需求的变化。随着全栈开发、云计算和微服务架构的普及,市场对高效、灵活的语言需求显著提升,而这些正是许多传统语言逐渐被替代的原因。

PHP在编程语言排行榜中的下滑,提醒着开发者时刻保持对新技术的关注和学习。尽管曾经是无数Web开发者的首选,但技术的发展从未停歇,拥抱变化才是与时俱进的根本。

“在技术的浪潮中,没有永恒的霸主,只有不断创新的追随者。”

相关文章:

2024 年 04 月编程语言排行榜,PHP 排名创新低?

编程语言的流行度总是变化莫测,每个月的排行榜都揭示着新的趋势。2024年4月的编程语言排行榜揭示了一个引人关注的现象:PHP的排名再次下滑,创下了历史新低。这种变化对于PHP开发者和整个技术社区来说,意味着什么呢? P…...

Element中el-table组件设置max-height右侧出现空白列的解决方法

之前就出现过这个情况,没理过,因为不影响啥除了不美观...但今天看着实在是难受,怎么都不顺眼(可能是我自己烦躁--) 试了很多网上的方法,都不得行,后面发现了这篇文章,解决了! 感谢! Element中t…...

unity学习-全局光照(GI)

在全局光照(Lighting)界面有两个选项 Realtime Light(实时光照):在项目中会提前计算好光照以及阴影的程序,当你需要调用实时全局光照的时候会将程序调用出来使用 Mixed Light(烘焙光照&#x…...

记录Centos7 漫漫配置路

记录Centos7 漫漫配置路 一、 配置源二、 clinfo三、 PCL 配置1. 依赖2. eigen3. boost4. flann5. pcl 四、YAML-CPP五、 miniconda 安装 python3.6 和 pytorch六、libbot 配置1. 容易安装的依赖2. 需要源码安装的依赖3. [libbot](https://github.com/libbot2/libbot2) 简单地说…...

论文 | OpenICL: An Open-Source Framework for In-context Learning

主要内容: 2. 提供多种 ICL 方法: 3. 完整的教程: 4. 评估和验证: 背景: 随着大型语言模型 (LLM) 的发展,上下文学习 (ICL) 作为一种新的评估范式越来越受到关注。问题: ICL 的实现复杂&#xf…...

尚硅谷rabbitmq 2024 Federation配置 第60节答疑

rabbitmq联邦队列怎么做 要在 RabbitMQ 中设置联邦队列(Federated Queues),你需要遵循以下步骤。联邦队列允许你在不同的 RabbitMQ 实例之间共享队列,从而实现消息的分布式处理和高可用性。 ### 步骤 1:安装 RabbitMQ…...

Ubuntu编译MySQL驱动连接QT

1、安装MySQL 安装MySQL软件以及驱动。 sudo apt-get install mysql-serversudo apt install mysql-clientsudo apt-get install libmysqlclient-dev 2、编译qmysql驱动 2.1、修改mysql.pro 找到Qt源码中的mysql.pro项目文件,一般位于:/opt/Qt/5.15…...

时间序列预测(七)——梯度消失(Vanishing Gradient)与梯度爆炸(Exploding Gradient)

目录 一、定义 二、产生原因 三、解决方法: 梯度消失与梯度爆炸是深度学习中常见的训练问题,它们主要发生在神经网络的反向传播过程中,使得模型难以有效学习。 一、定义 1、梯度消失(Vanishing Gradient)&#xf…...

ARM assembly 12: GCD(最大公约数)计算

首先,我们看看GCD(Greatest Common Divisor)的CPP实现 int gcd(int a, int b) {if(b 0) return a;return gcd(b, a%b); }基于下面的gcd.s文件,我们尝试实现gcd函数 //gcd.s .global main .extern fopen, fprintf, fclose, printf, atoi.section .dat…...

「实战应用」如何用图表控件LightningChart可视化天气数据?(一)

LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学…...

基于深度学习的细粒度图像分析综述【翻译】

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 基础信息0 摘要1 INTRODUCTION2 识别与检索 RECOGNITION VS. RETRIEVAL3 问题和…...

yolo笔记

目录 Anaconda安装Pytorchyolov5下载部署labelimg安装 Anaconda安装 官网链接 https://www.anaconda.com/ 官网链接链接: 官网链接https://www.anaconda.com/ 直接下最新版 (网站会自动检测系统,我是在Windows环境截图的) bash Anaconda3-XXXX-Linux-x86_64.sh一…...

Android平台RTSP|RTMP播放器PK:VLC for Android还是SmartPlayer?

好多开发者,希望在Android端低延迟的播放RTMP或RTSP流,本文就目前市面上主流2个直播播放框架,做个简单的对比。 VLC for Android VLC for Android 是一款功能强大的多媒体播放器,具有以下特点和功能: 广泛的格式支持…...

IDEA下面的Services不见了(解决方案)

大家使用IDEA有时候新打开个项目这个东西不会自动出现如何解决 配置方法: 右上角打开进入Edit Configurations 进入后我们看到里面是没有SpringBoot相关内容的 点击加号选择SpringBoot 然后Apply Ok即可,现在IDEA下面就会出现Service了,打…...

【pyspark学习从入门到精通7】DataFrames_2

目录 创建 DataFrames 生成我们自己的 JSON 数据 创建 DataFrame 创建临时表 简单的 DataFrame 查询 DataFrame API 查询 SQL 查询 创建 DataFrames 通常,您会通过使用 SparkSession(或在 PySpark shell 中调用 spark)导入数据来创建 …...

Server-Sent Event(SSE) GPT场景实现

关于SSE的基本概念可以看一下阮一峰老师的这篇文章:Server-Sent Events教程。 现在比较常见的场景是gpt回答的时候类似下图这种打字机的情况,因为AI一般响应时间会比较长,使用这种方式能让人别等那么久,是一个相对比较良好的用户…...

美国Honeywell霍尼韦尔气体分析侦测器传感器MIDAS-K-HCL说明书

上海德奥达 ---Honeywell霍尼韦尔气体分析侦测器传感器MIDAS-K-HCL是一款用于检测氯化氢气体的高性能传感器。以下是该传感器的技术参数和描述:技术参数:-测量范围:0-50ppm-灵敏度:0.5ppm-响应时间:≤30秒-电源&…...

L1练习-鸢尾花数据集处理(分类/聚类)

背景 前文(《AI 自学 Lesson1 - Sklearn(开源Python机器学习包)》)以鸢尾花数据集的处理为例,本文将完善其代码,在使用 sklearn 的部分工具包基础上,增加部分数据预处理、数据分析和数据可视化…...

javaweb以html方式集成富文本编辑器TinyMce

前言: 单一的批量图片上传按钮,禁用tinymce编辑器,但是还可以操作图片编辑; 多元化格式的富文本编辑要求; 采用tinymce实现。 附: tinymce中文手册网站: http://tinymce.ax-z.cn/download-all.…...

大学生福音!用GPT-4o几分钟内轻松读懂一篇论文!

文章目录 一、读论文智能体:PDFAI操作指导阅读论文上传论文并分析进一步研究导出可用代码 二、感受 一、读论文智能体:PDFAI 操作指导 ChatGPT 4o国内直接访问地址:https://share.xuzhugpt.cloud/ 上plus的车 输入购买的授权码即可。 默认…...

python打卡day49

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...