← 返回信息流
AI 资讯Hacker News·3 天前

2026年学习PHP:真的有必要吗

原标题:Learn PHP in 2026 (Yes, Really)

速览

文章探讨了在2026年这个时间点学习PHP语言是否仍然具有实际意义。PHP作为经典的Web开发语言,依然拥有庞大的存量市场和生态基础。对于特定场景或初学者而言,掌握PHP仍是一种务实的技术选择。

AI 深度解读

2026年学习PHP(是的,真的):语言声誉背后的社会信号

背景

在 Hacker News 或 Reddit 等开发者社区,每隔八到十二个月就会出现一篇关于“PHP已死”的长文。评论区往往充斥着来自2007年的“战争故事”,经过几百个点赞后,话题便随之消散,现实世界却毫无变化。

这种周期性现象揭示了一个被忽视的事实:PHP(Hypertext Preprocessor)依然占据着互联网的半壁江山。WordPress 目前仍运行着约 43% 的网站,这一比例在过去十年中不仅没有下降,反而有所上升。

这篇文章旨在探讨编程语言声誉的形成机制,以及这种声誉如何影响开发者的职业选择。它指出,开发者对某种语言的排斥,往往更多反映了他们形成观点的时代背景,而非语言本身当前的技术状态。

核心内容

1. 过时声誉的根源:共享主机时代

PHP 的负面声誉源于其成长的环境。在 2000 年代初,共享主机(Shared Hosting)是将网站上线的主要方式。开发者通过 FTP 上传文件,在 public_html 文件夹中编辑代码,修改 .php 文件后刷新浏览器即可生效。

这种模式没有构建步骤,也没有部署流水线。PHP 允许将 HTML、SQL 和逻辑代码混合在同一文件中,导致代码结构混乱(Spaghetti Code)。虽然这种“快速且混乱”的开发方式在当时是高效的,但也让 PHP 背上了“不专业”和“过时”的骂名。然而,时代变了,语言进化了,但声誉却停滞不前。

2. PHP 的现代进化:从 5.3 到 8.3

PHP 在过去十几年中经历了巨大的技术革新,许多现代编程语言具备的特性,PHP 早已实现:

  • PHP 5.3 (2009):引入命名空间(Namespaces)。
  • PHP 7.0 (2015):性能翻倍,引入标量类型声明(Scalar type declarations)。
  • PHP 8.0:带来联合类型(Union types)、命名参数(Named arguments)和匹配表达式(Match expression)。
  • PHP 8.1:引入枚举(Enums)、纤维(Fibers)和只读属性(Readonly properties)。
  • PHP 8.3:支持类型化的类常量(Typed class constants)和改进的深度克隆。

文章通过一个 Money 类的代码示例展示了 PHP 8.3 的现代特性:

enum Currency: string
{
    case USD = 'USD';
    case EUR = 'EUR';
    case GBP = 'GBP';
}

readonly class Money
{
    public function __construct(
        public int $amount,
        public Currency $currency,
    ) {
        if ($amount < 0) {
            throw new \InvalidArgumentException('Amount cannot be negative');
        }
    }

    public function add(Money $other): self
    {
        if ($this->currency !== $other->currency) {
            throw new \InvalidArgumentException('Currency mismatch');
        }
        return new self($this->amount + $other->amount, $this->currency);
    }
}

这个类是不可变的(Immutable),属性具有类型约束,枚举基于字符串。这些特性在十年前并不存在。2010年的 PHP 和今天的 PHP 虽然共享同一个名字,但在技术本质上已截然不同。

3. 编程语言作为“社会信号”

编程语言不仅是工具,更是社会信号。开发者选择语言时,往往在同时做出“职业赌注”和“社交赌注”:

  • Rust 传递严谨(Rigor)的信号。
  • Go 传递大规模实用主义(Pragmatism at scale)的信号。
  • TypeScript 传递前端严肃性的信号。
  • Python 传递数据流利度或快速原型开发的信号。
  • PHP 则传递了共享主机、WordPress 主题商店和 Upwork 自由职业者的残留印象。这种关联被视为“蓝领”工作,而科技行业往往假装阶级不存在。

在 2026 年,开发者面临两个问题:

  1. 技术问题:这门语言能完成我需要的工作吗?
  2. 社交问题:选择这门语言会让别人怎么看我?

通常情况下,社交问题胜出,尤其是在编程面试中。

4. 市场现实 vs. 社区舆论

如果目标是六个月内获得有偿工作,PHP 和 WordPress 技能是一个务实的选择。WordPress 主题开发、插件工作和小企业网站构成了庞大的自由职业市场。这种需求虽然缺乏光环,但稳定且持续。

  • PHP/WordPress 路径:初级开发者可以在几个月内接到付费项目,从代码到支付的周期短。
  • React/Next.js 路径:虽然能产生更好的作品集,但获得付费客户工作的时间更长。

市场并不关心 Hacker News 上的情绪。代理机构需要 WordPress 开发者,小企业需要能修改主题而不破坏网站的人。

5. 语言鄙视链的循环

每个语言社区都存在类似的偏见:

  • JavaScript 开发者曾多年贬低 CSS 为“不是真正的编程”,并视 TypeScript 为微软的入侵。
  • Python 开发者曾看不起 R 语言。
  • Go 开发者嘲笑 Java 的冗长,尽管他们自己的工具也生成大量样板代码。
  • Java 开发者因无法借用 Rust 开发者的眼镜而戴上了眼镜。

这种模式是:语言与特定类型的工作或时代绑定 -> 关联固化为判断 -> 判断在原条件改变后依然持续。PHP 是这一模式的典型代表:43% 的市场份额使其成为会议上的笑料,但半数演讲者的个人网站仍运行在 WordPress 上。

6. LLM 时代的终结:语言差异缩小

随着大型语言模型(LLMs)的发展,这一格局正在改变。LLM 可以从相同的提示词中生成 PHP、Python、TypeScript 和 Go 的工作代码。随着每次模型发布,不同语言间的开发者体验质量差距正在缩小。

“我专精于语言 X”在三年前是有意义的,但在今天意义递减。几年后的雇主将更关心最终产品,而底层的语言将像文本编辑器的品牌一样无关紧要。

过去十年,一部分程序员在辩论可接受的工具,另一部分程序员则在交付产品。前者拥有观点的组合,后者拥有客户名单。每一年的品味之争,都是没有发票的一年。

正如文章最后幽默指出的:麦当劳的应用程序并不询问你的技术栈。

关键要点

  • 声誉滞后于技术:PHP 的负面声誉源于 2000 年代初的共享主机时代,而现代 PHP(8.x)在类型系统、枚举、性能等方面已高度现代化,两者本质不同。
  • 语言选择是社交行为:开发者选择语言时,不仅考虑技术能力,更考虑其带来的社会信号和职业形象。PHP 常被误认为是“低端”或“过时”的象征。
  • 市场需求务实:尽管社区舆论轻视 PHP,但 WordPress 仍占据约 43% 的网站份额,提供了稳定且快速变现的自由职业和初级开发机会。
  • LLM 正在抹平语言壁垒:随着 AI 编码助手(LLMs)的普及,不同语言间的开发效率差距缩小,语言本身的重要性正在下降,最终交付的产品比使用的语言更重要。
  • 警惕“鄙视链”陷阱:所有编程语言社区都存在偏见和鄙视链,这种偏见往往阻碍了开发者对工具客观价值的判断。

意义与影响

这篇文章对科技从业者和企业具有深刻的启示:

  1. 对开发者的职业建议

    • 不要仅因“流行度”或“社区声誉”而排斥任何语言。
    • 如果目标是快速进入市场并获得收入,掌握 PHP 和 WordPress 生态是一个极具性价比的策略。
    • 认识到“社交赌注”的存在,但在面试和工作中,应更关注解决问题的能力而非语言本身的标签。
  2. 对技术选型的反思

    • 技术决策应基于实际业务需求(如稳定性、维护成本、人才可用性),而非社区噪音。
查看原文 →fagnerbrack.com