房间里的大蓝象:为什么PHP现在和将来都不应该被忽视

在浏览网页时,你可能经常会遇到一些观点,认为“PHP已经不再是过去的PHP”,它在2000年代的首位位置已经无法恢复。“PHP是否已经死亡?”可以说是关于这种编程语言又一篇文章最著名的标题。的确,现代现实需要新的工具;然而,有些事物确实没有真正的替代品,PHP就是其中之一。尽管过去曾经是领导者,但它仍然保有其位置。

在这篇文章中,我将解释为什么老牌的PHP不仅能继续在众多新技术的竞争中站稳脚跟,而且仍然是开发者在创建各种复杂度的网页项目时的最佳助手。

这一切的根源

虽然结果可以证明手段的合理性,但它也定义了手段。PHP的整个演变直接与其最初被创建的任务相关。要理解为什么PHP在网页开发中一直并且仍然受欢迎,让我们回到它的起源,了解它的根源。

PHP在1994年庆祝了它的第一个生日,当时丹麦程序员拉斯马斯·勒德尔夫决定用C语言创建一套程序来管理他的简历并跟踪访问他网站的人数。这导致它的名字最初是个人主页工具,”直到后来,拉斯马斯将代码公之于众,它才 worldwide 被称为PHP:超文本预处理器。”

从诞生之初,PHP就被开发作为网站项目的基础。在过去的几年里,PHP经历了许多变化,从简单的网页管理脚发展成为一个用于最复杂网站项目的成熟的编程语言。然而,它的本质与30年前一样:生于网络,它依然活跃在网络中。

作为一种简单灵活的语言,PHP吸引了成千上万的程序员,他们能够快速而轻松地创建动态网站。一个重要的优势是它能够直接将代码嵌入HTML标记中,为创建动态网页提供了前所未有的简单性和灵活性。像Laravel、Symfony、WordPress和Drupal这样的流行框架和内容管理系统的出现进一步巩固了PHP在市场上的地位。

这些工具在初学者和有经验的开发者中都非常受欢迎,为PHP的声誉增添了另一个(不可忽视的)加分项。

竞争对手?真的吗?

一切事物的数字化使得网页开发变得比以往任何时候都更加重要。互联网已经成为日常生活的不可或缺的一部分,网站、博客和在线商店成为每个企业家必备的东西。没有它们,找到客户将非常具有挑战性。因此,除了PHP之外,其他编程语言也在市场上竞争。但是,它们在网页开发领域取得了类似的成功吗?让我们仔细看看。

  1. Python
    Python的流行不是秘密:它被广泛宣传,并被许多人视为开发的黄金标准。是的,它在许多领域(包括后端网页开发)都有应用,并且拥有强大的框架,如Django和Flask。它还易于学习,开发者需要付出的努力最小。然而,尽管Python适合用于复杂应用程序和处理大型数据集,但PHP在网页项目开发方面的性能和能力远远超过了Python。这并不奇怪,因为PHP就是为了这个目的而创建的。Python如今的主要领域是数据科学和分析,在这个领域中它可能无与伦比,但我们这里讨论的是网页开发。

  2. JavaScript/TypeScript(和Node.js)
    传统上用于客户端开发,随着Node.js的出现,JavaScript的受欢迎程度激增,使其也适用于服务器端开发。这增加了它的受欢迎程度和用户基础,允许开发人员使用同一种语言进行前端和后端开发。这意味着企业可以减少他们的编程人员预算,JS开发者可以显著扩展他们的技能。Node.js适用于需要高性能和异步操作的应用程序,但在后端流行度上明显落后于PHP。这意味着,最终,用PHP编写的Web项目将更容易、更便宜地维护。你还可以找到大量关于这种编程语言的文档/指南,这意味着这样的Web项目有更高的生存机会,因为总会有人能够继续开发它。

  1. Go(或称Golang)
    作为Google的产品,Go因其性能越来越受欢迎。Go非常适合高负载的网页服务,以令人羡慕的效率处理它们。此外,其语法非常简单易学,有传言称使用Go语言,一个人从零开始可以在30天内成为高级开发者。然而,Go尚未达到PHP的普及程度,仍然有些边缘:用Go进行开发速度较慢,用于创建复杂项目的工具和库的数量也相对较少。许多开发者在今天有效地将Golang与PHP结合使用,起到互补而非替代的作用。

  1. Java
    Java长期以来被证明是一种可靠的编程语言,拥有强大且可扩展的框架,如Spring和Apache Struts。它非常适合为企业实现公司级网络应用,对于那些有足够财务和时间资源的公司来说。不幸的是,高昂的预算和显著的研发时间使得它对中小型企业来说不太理想,特别是对资金有限的初创企业。对他们来说,PHP作为一种更易于管理和更快部署的语言,是一个更加合适的选择。

  1. C#
    与Java类似,C#有许多强大的工具和库用于创建可扩展的Web应用程序。然而,PHP更加通用,对特定生态系统的依赖性较小。PHP对许多开发者来说更容易接触,更易于学习和设置,而且不需要过长的项目完成时间。这就是它的超级能力。

在比较编程语言时,许多人会参考调查数据。我们也这样做。根据PYPL指数,Stack Overflow的2024开发者调查以及TIOBE指数,PHP的排名在7到10名之间。这样的结果可能会给人一种错觉,认为PHP在后端开发语言中的地位已经丧失,但事实并非如此。排名更高的语言被设计用于更广泛的任务,而PHP主要专注于后端开发。

例如,Python在机器学习和数据分析中应用广泛,但它用于后端Web应用程序开发的合理性并非总是成立。JavaScript主要用于客户端Web开发,在这方面它几乎没有替代品。其他超越PHP的语言通常被用于许多与Web后端不一定相关的其他领域。

因此,在2025年、2026年,甚至很可能在2027年,PHP仍然可以自信地被称为许多简单和中等复杂度的Web应用后端开发的主要编程语言,这是它的主要用途。

为什么选择PHP:我对过去的思考

当我刚开始学习编程时,我总是对一个问题感到好奇:如何将包含循环、函数、变量和模块的编写代码转化为有形的东西,或者如何创建一个不仅对他人有用,而且在视觉上吸引人的功能性应用程序?作为一个老程序员,就像那个时期许多学生一样,我通过Pascal和C++学习了编程的基础。有时,这感觉像周日布道一样无聊。我们专注于算法和数学计算,这常常使得这个主题变得乏味和无聊。然而,当我发现Web开发时,一切都有了改变。

在我的一个课程中,我们被分配了一个任务,用我们选择的编程语言开发一个在线商店。我们得到了六个月的时间来完成这个项目。就在那时,我第一次接触到了HTML,这是一种最简单的网页标记语言,我惊讶于它让我能够如此轻松地为浏览器创建内容,并且立即看到我的工作成果。这让我印象深刻,但我很快意识到仅靠HTML无法实现复杂的逻辑或动态效果。于是,我发现了PHP,这是一种服务器端编程语言,能够不需要任何复杂的技巧就能为标准的HTML页面注入生命力。它的语法让我感到舒适,与我已熟悉的类C语言相似。我也喜欢PHP的工作方式:它启动一个脚本来处理请求,完成它需要做的事情,然后结束工作,极大地简化了服务器端应用程序的创建。

完成这个项目对我来说是一个真正的突破。我接触到了许多新技术,对JavaScript和JQuery进行了一些研究,以使应用程序的客户端更加生动,了解了网络服务器的工作方式,并掌握了网络技术的基础。然而,PHP给我留下了最深刻的印象,并在我的心中占据了特殊的位置。它改变了我对后端开发的看法,让我明白创建具有复杂数据端逻辑的动态网页应用可以是一个直观且易于接触的任务。我相信许多开发人员都有与我相同的感受。

PHP 不仅可以简化后端开发过程,而且为创意和创新开辟了广阔的机会。它的灵活性和简单性始终使得 PHP 成为创建任何复杂度的 Web 应用程序的完美工具,定义了它在所有时代的相关性。

PHP 的优势

我的故事是一个清晰的例子,说明了为什么 PHP 对 Web 开发人员来说既方便又实用。现在,我将详细概述它的优势,你无疑会成为一名 PHP 的拥护者。

  1. PHP 具有类 C 语法
    这种语法让任何熟悉类 C 编程语言的人(有很多人熟悉)都能轻松学习 PHP。它包括熟悉的控制结构,如条件语句和循环,类似的功能声明格式,使用大括号定义代码块等。

  1. PHP 适合快速开发 Web 应用程序
    它不需要编译代码就能运行程序。它属于解释型编程语言的范畴,这极大地加快了开发速度。脚本操作的许多更改可以立即看到,例如,只需在浏览器中刷新页面。只需按 F5 键即可!

  1. PHP对错误有容忍度
    这就是为什么PHP非常适合初学者,也不仅仅是初学者。一个关键特点是几乎每个脚本开始运行来处理一个请求,然后在完成后和平地结束(我并不是在谈论RoadRunner等技术;在那里,情况略有不同)。这种方法大大降低了与其他服务器端编程语言相关的内存泄漏和其他许多瓶颈的风险。因此,PHP允许你专注于程序的逻辑和功能,而不必时刻考虑低级资源管理的方面。

  1. PHP中的面向对象编程(OOP)很酷
    它拥有所有功能:抽象类、接口、继承机制、 traits、final类或方法、只读属性/类等等。列出来会太长,所以我只想说:PHP是很棒的。

  1. 调试可以快速且容易地融入工作流程
    例如,任何与这种语言相关的人都知道流行的工具Xdebug,它提供了广泛的错误跟踪和代码执行分析功能。而且,如果你懒得使用强大的工具,var_dump总是随时待命。任何PHP开发者都会明白我的意思。

  1. PHP 提供了广泛的数据类型处理能力
    从一开始,PHP就没有遵循严格的类型规则,为开发者提供了很大的自由度。在PHP中,您可以使用变量存储任何支持的数据类型,当使用该变量进行任何操作时,如果可能,类型会转换为所需的类型。然而,由于类型转换逻辑并不总是对开发者显而易见,随着时间的推移,出现了更多实现严格类型的机会。例如,在现代版本的PHP中,您可以指定属性类型、常量类型、函数参数类型和返回类型,并启用严格类型模式(通过使用 declare(strict_types=1) 指令)。如果启用了严格类型,PHP将不会尝试自动转换不符合函数或方法的预期的类型;相反,它将抛出一个错误,指出类型不匹配。这意味着使用 strict_type 有助于在项目开发阶段早期发现错误。顺便说一下,strict_type 只在启用它的文件中工作,所以您可以在项目中逐渐启用这个特性,而不会破坏旧的 functionality。因此,PHP 在需要快速处理某些事情时提供了灵活性,在错误代价很高的更严肃的项目中提供了严格性。

  1. PHP中的数组值得特别关注
    它们可以同时作为简单的动态数组(具有数字索引)、关联数组(或哈希表,具有字符串键)、集合、向量等使用。因此,许多网页开发需求在PHP中很容易得到满足。

  1. PHP是最有效的脚本编程语言之一
    这在网页开发环境中尤其如此。由于Zend Engine解释器的优化,其在版本7中的性能显著提高:PHP获得了更优化的内存管理和操作执行速度的大幅提升。在PHP 8中引入的JIT编译进一步提升了性能,尤其是在计算密集型任务中尤为明显。还有什么能加快PHP的速度?当然是OpCache——自版本5.5起就包含的PHP扩展,它通过在内存中缓存预编译的字节码脚本来使语言变得更快。此外,PHP的新发展,如Swoole和ReactPHP,提供了异步编程的能力,这可以显著提高许多应用程序的性能,特别是那些涉及频繁I/O操作的应用程序。

你可以无休止地做三件事:观看火焰燃烧、观看别人工作,以及列举 PHP 的所有优点。它们如此之多,列举所有优点可能需要超过十几篇文章。而且,并非所有的优点都仅仅由其功能性能力定义:生态系统同样至关重要,而 PHP 在编程语言中拥有最丰富和最多样化的生态系统之一。

有各种各样的扩展、工具、库和框架。仅Symfony就值得一提,它主要由许多单独的库组成!它们每一个都可以在任何项目中使用,因为它们都对社区开放。例如,另一个非常流行的PHP框架Laravel,在很大程度上是基于Symfony组件的。在PHP中找到一个尚未作为库或软件包实现的创建web项目的基本要素是非常具有挑战性的:已经有很多可用的资源,选择范围非常广泛。

PHP的未来

另一个值得注意的是,PHP并不是停滞不前的;它由一个庞大的开发者社区和PHP Foundation、Zend等主要组织积极支持和开发。它的发展令人印象深刻:频繁且定期的核心和次要版本更新不断改进这门语言,使其在新环境中保持相关性。PHP开发者努力遵循版本发布计划,以确保用户的稳定性和可预测性;现在每年都会发布新的次要PHP版本。不久前,8.3版本发布,带来了性能和功能的重要改进。主要的新特性包括常量类型,它扩展了PHP的类型化能力,新增了json_validate函数,扩展了随机数生成器的功能等等。下一个版本8.4已经在路上,它将增加大量的有用创新,比如一个新的更先进的即时编译(JIT)引擎,用于处理头部的新函数,用于处理日期/时间的新方法,新的MBString函数,属性钩子(这是一个非常严肃和有用的变化)等等。

也许一些老程序员还记得,PHP曾经因为某些程序的低质量而受到批评,但现在这些都已经成为过去;情况正在变化,而且只会变得更好。开发者们正在积累经验,语言也在变得更加严格和安全。编码时出错?如果你 steady hand

当然,PHP仍然存在一些未解决的问题和难题——例如,历史上不一致的语法,包括函数命名的不一致。一个特别严重的问题是函数中参数的顺序不同,这常常导致混淆和错误。许多开发者也对新特性引入的速度感到不满;语言层面支持泛型的问题已经变得尤为紧迫。

然而,所有这些问题都远远不是关键性的,与使用PHP的优点相比更是微不足道。这门语言正在变得更加成熟,批评的声音正在逐渐成为过去,PHP每年仍然被用于创建数百万个网络项目。那些让它真正普及的框架和CMS仍然存在,没有面临严重的竞争。用PHP编写代码依然简单,优质的学习材料也在不断增多,因此在2025年、2026年或2027年,PHP在后端开发中的领导地位不太可能被动摇。

Source:
https://dzone.com/articles/why-PHP-should-not-be-ignored-now-or-ever