作者 | Italo Baeza Cabrera翻译者 | 张健欣策画 | Tina对两门有名的词汇来说,支撑今后技术的小东西并非不断创新吗?
相差无几一年前,我正式发布了一则专文“PHP 可能在今后二十年消亡”的该文。我正式发布的这篇该文的归纳就像一首歌《圣诞节赞歌》,但并非 Ebenezer Scrooge(影片《圣诞节赞歌》中的两个富商配角),而要 PHP:
过去,PHP 没复原它的难题,因此其他词汇显得更有吸引力。
那时,PHP 缺乏当前网络所需的优点。
将来,PHP 仍然不会有有象征意义的优点。
请注意,我唯独没写过“死而复生”、“不要用它”,甚至“那时就舍弃你的 PHP 项目!”。我只是说它会在 2030 之前的任何人时候显得不再有象征意义,并对此为什么会发生做了的两个简单的阐释。
考虑到 PHP 巨大的使用者此基础,许多指出 PHP 优点的该文,往往会点燃许多X3430。她们指出 PHP 是轻松的,实际上即使它很方便快捷,或是因为她们花了 10 多年时间采用 PHP。我的该文也不值得一提。不管如何,我决定把它从顽固的阴霾别列济夫出来,给予更多思索。
1这并非我的难题,而要你的难题首先说明,我对 PHP 或是任何人词汇都没个人纠葛。我认为它是两个十分成熟的工具,当我需要“昨天”的小东西时,它也是我最喜欢采用的小东西,即使它作为解释型词汇十分方便快捷,而且生态系就在那里。
这也与标识符质量毫无关系。你无法即使开发者没“正确地”采用一类词汇,而责怪它,至少无法预先警告。无论你的雷诺或玛莎拉蒂何等炫彩:假如你不重视它,维护就会很伤痛。
这也与世界上有多少人采用 PHP 毫无关系。假如我们选择“使用者此基础最高”,那么那时就开始将标识符北迁到 Javascript。那场赛事她们毫不费力就赢了,无以比肩。
先不说“是否被重要公司采用”——接著再谈。JavaScript 对 SpaceX 的任务已经十分关键,因此显然它并非一类差劲的词汇,不然太空人的生命就面临风险。
只是那时,PHP 变成了两个只会玩一类把戏的小马。这门词汇以蓬勃发展的 web 开发闻名,但官方不愿采取进一步措施。而其他词汇已经在进一步改进了。那是死亡的奥秘。
2词汇会“死”吗?让我们以有名的编程词汇之一 COBOL 为例。
几二十年前,银行和保险公司背后的许多老的金融系统都是用 COBOL 编程的。世界各地的许多金融机构仍在她们的大型机中采用 COBOL,主要的两个原因是:它仍然工作。这一点的证明是,由于流行病的爆发,COBOL 雇佣人数突然增加,以维持这些来自世界各地的不断受到冲击的有名系统。
COBOL 没死,但这意味着什么呢?有许多工具可以使基于 COBOL 的软件与当今人们的需求兼容,比如网页,即使这意味着用两个简单的工具将火箭固定在砖块上。仍然有人需要编写和维护 COBOL。甚至有许多公司为基于 COBOL 的系统提供某种支持。
我们可以放心得出结论:编程词汇是不可能被消灭的。总有两个混蛋用它来赚钱,还有两个混蛋提供第三方支持来赚更多的钱。这是一类双赢的局面。
在企业文化中,假如你的技术栈没使公司“损失”任何人钱,那就没关系了。不然,你就会像亚马逊即使她们自己的 AWS 数据库而抛弃了甲骨文一样。
3假如它没死,那怎么“淡出”呢?COBOL 没死,它只是“淡出了”:没两个头脑正常的人会采用 COBOL 启动两个新项目,即使有更好的工具。这些工具拥有更高的性能、更好的可靠性、更方便快捷编程或是有用的优点。在 COBOL 时代,还没 HTTP 协议、多线程和虚拟化等当今软件所采用的其他有用技术。
当人们不再在新项目中采用一类词汇时,多米诺骨牌开始倒塌。针对这种词汇的工具不再诞生和维护。由于没需求,词汇不再引入新优点,社区不再创造新的工具集,它不再传播到其他生态系中——比如 Node.js 出那时服务器端。没新的程序员学习这门词汇,已经学习这门词汇的程序员北迁到了“更绿色的牧场”。
这也意味着,公司不愿意投资于词汇本身,包括雇佣程序员。与更丰富的词汇相比,这显得更难找到这门词汇的开发者,因此给这门词汇的开发者支付的薪酬也需要更高。此时,北迁到劳动力成本更低的新平台成为公司的一类选择。
COBOL 的情况与 Visual Basic、ASP .Net、Pascal、Fortran、ActionScript、Objective C、Haskell、Ruby 等许多其他服务端词汇一样。它们完成了它们的技术周期,更好的词汇用更多优点和工具集,或是更少的烦恼,取代了它们,就像 PHP 在 2000 年代中期针对网络做的那样。一旦 Rust 成为 Linux 内核开发的标准,它也很可能发生在 C 和 C++ 中。
与其他替代词汇相比,PHP 的崛起主要与 WordPress 的首次出现和 PHP 在服务器领域的易卖性有关。特别是那些需要被编译成二进制的词汇,即使这些替代词汇有更多的优点或更好的性能,而 PHP 曾经两者都缺乏。正是即使 WordPress 的崛起,媒体巨头们害怕自己的作品被“两个有博客的家伙”扼杀,于是接受了这一趋势,开始采用 WordPress 来增强她们的网络影响力。Wordpress 甚至为这些公司提供了 VIP 模式。
PHP 上的这种“硬锁”那时正在改变,这主要归功于云服务为其他编程词汇提供了新平台,但即使到了今天,租到一台运行 PHP 的服务器并在一天内开始采用也不稀奇。事实是,今天也很容易租到一台运行 Node.JS 或 AWS Lambda 的服务器。你不需要多年的培训来采用一家云服务提供商,或是两个服务器服务,甚至谷歌也提供了两个采用谷歌云平台的教程。
尽管如此,PHP 仍然是能够支持网站开发的屈指可数的词汇之一。随着越来越多的人参与进来,社区和官方都推出了工具:Opcache 用于 I/O 性能处罚、PDO 用于通用数据库层、Autoloader 用来使大型项目更易管理、Composer 用于依赖部署、PSR 用于标准化标识符规范、PHPUnit 用于测试、PECL 用于扩展等等。
因此,回到概念上来,淡出意味着被取代。它的采用量不会增长,而要显得停滞不前。唯一可能发生的事情就是慢慢被其他解决方案取代。这并非发生在一夕之间,而要常年的积累。
从公司的角度来看,改变技术栈需要花费大量的资源,而没立即的 ROI:迁移到新的技术栈并非没代价的,更并非一天就完成的。更差劲的是,有些工具可能不存在,比如分析、调试、甚至部署工具,这些都必须从头开始。
这使得很难说服老板进行“技术栈”北迁。这些老板,并非负责你的人,而要那些投资为了保持利润比上一时期更高的人。除非你能证明有两个新的“商业机会”,旧的技术栈无能为力,或是与其他新技术栈相比会相对性地赔钱,不然通常很难改变已经生效的许多小东西。
4锤子是可靠的。射钉枪更好。结合上下文,看看 W3Tech 对 PHP 的看法,你会发现 PHP 仍然即使被采用地最多而主导着因特网,但并非在 100% 的真实流量上,而要在头部网站上,包括非美国平台。换句话说,假如 Facebook 采用了两个 PHP 脚本,那并不意味着整个平台都是基于 PHP 的——以及会更多地在该公司上。
WordPress 仍然是事实上被广泛采用的 CMS,与 WooCommerce 一起成为企业的首选。虽然也有 SaaS 提供相同的服务,但可能没必要复原没损坏的小东西。
由 W3Techs.com 收集的网站采用的服务端编程词汇的比例
以上说明:PHP 仍然是任何人 web 项目都要考虑的工具。到目前为止,Wordpress 是 PHP 的巅峰之作。仍然有新的网站正在采用 PHP 创建。当 PHP 满足所有的复选框时,一两个人建立两个网络公司仍然是完全正常的… 直到它无法满足所有条件。
今天有很多 web 技术可以采用:WebRTC、WebSockets、QUIC、HTTP/3、WebAssembly、WebAuthn、渐进式 Web 应用、机器学习、JSON Web 身份验证、gRPC 和服务端事件等等。这些技术支持了在线聊天系统、多媒体流、持续实时数据、新的身份验证机制等等。这些技术,PHP 都很难支持,甚至不可能支持;例如,很难支持流式那样传输大文件而不会阻塞自身,或是不可能支持 WebSockets。
Hack 只是大公司的今后,即使她们一开始就能烧钱运行 HHVM…
即使有很多工作要做,因此从一类词汇过渡到多种词汇,或是将服务推给向你提供所需功能的公司,比如让 Mux 处理视频平台,让 Pusher 处理事件传播,已经成为一类常态。有人可能说你是花钱图方便快捷,但也有人会说你付钱是即使你的技术栈无法处理这些难题。
另一方面,你可以自己掌控所有小东西。前端可以在 PHP 下工作,也可以是两个基于 JavaScript 或像 React、Angular 或 Vue 框架的单页应用(Single Page Application,SPA)。后端可以运行在基于 Rust、Go、F#、HHVM、.Net Core、Node.js 或是别的什么词汇的应用上。即使 PHP 无法做所有事情,开发地狱就开始了,一致性会快速丧失。你开始从依赖两个生态系到依赖十分多生态系。
PHP 项目与其他 SaaS 或是基于 Node.js、Python、Go 或 Rust 编写的运行时结合在一起就不足为奇,添加另两个要维护的标识符库或应用程序。这可能弊大于利,即使你必须为项目的每个部分处理两个(或更多)部署方案。
虽然有少数人能够处理所有事情,但向两个人提供合同的可能性十分小,主要是即使能处理所有事情的人很少,而且也不便宜。
5“但是这个伟大的公司采用 PHP”我经常听到的一句话是“但是 Facebook 采用 PHP”,好像它是一类蓬勃发展的 Web 技术。以 PHP 起家的顶级公司已经明确表示,Hack 及 HHVM——“现代化 PHP 但消耗内存”——是公司的后续措施:
Facebook 北迁到 Hack/HHVM 并从 2014 年开始运行。
Wikipedia 也在 2014 年通过 HHVM 的支持抛弃了 PHP。
Etsy 也在 2015 年从 PHP 北迁到了 Hack。
Slack, 被 SalesForce 用 277 亿美元收购,也在 2020 年从 PHP 北迁到了 Hack。
注意,我强调了“企业后续措施”。Hack 就是今后?事实上,Hack 只是大公司的今后,即使
任何人一家拥有大笔资金的公司都可以为自己的利益创造自己的词汇,就像 Facebook、Apple、Google 和 Mozilla 那样,即使她们有人、有头脑去做,有服务去实现。无论好坏,我们只是附带的。
拥有两门内在需求稳定的词汇可以让它进步,即使有时这意味着做出不太好的决定。
6它足够了,直到它无法有时候说“你无法在 PHP 上做那件事”有点儿让人难过。新的 JIT 引擎很受欢迎,但它并并非将它与其他新兴词汇相结合的灵丹妙药。性能过去是 PHP 的两个十分重要的难题,但那时它不是唯一的难题。网络在发展,而 PHP 没。
如今,网页只是起点。正在发生的 COVID-19 大流行表明,你需要系统针对不同数据类型的不断变化的状态做出反应。如今,PHP 还不够,当它足够的时候——看看最近的发展有多慢——开发者将拥有更好的工具。没人会等着 PHP 实现自身的现代化,也没企业会这样做。这就是所谓的进步:新工具取代老工具。
当你需要的不实际上是显示两个具有基本交互的网页时,难题就出现了。就在那时,PHP 展示了其二十多年的历史,它是如何与当今的技术和产品需求脱节。
我肯定并非唯一两个等了足够时间让 PHP 成为两个像样的技术竞争对手的人。从业务逻辑的角度来看,PHP 十分方便快捷,即使它的语法允许在专家手中十分有表现力的声明操作,特别是在“业务逻辑”部分,但它并非万能的。
PHP 是那时,但并非今后。
我指出这些段落表明 PHP 即使其本质而仍然是王者。没哪一类词汇在提供便利和成熟的同时获得如此大的诱惑力,而并非功能——另外,就是 WordPress 效应。
PHP 如何将被淘汰?每个人只需点击几下就可以创建它们自己的简介、商店、图片库、云存储、群聊等等;无需托管,无需服务器和标识符。
我个人指出,那时,由于 SaaS 和一键安装的激增,我们已经超越了像 WordPress 那样的“杀手级应用”。我们那时处于“杀手级生态系统”,一类词汇已经描述了部分,而你带来自己的胶水。也许是 Node.js? 也许是 Go?也许是 Python?也许是 TypeScript 编译为二进制?也许是 Rust 的垃圾收集器?也许是一种全新的词汇?
7也许是 PHP 9?我看到许多人希望对 PHP 进行大的修改。除非 Rogue Wave(Perforce)内部有什么变化来推动 Zend 引擎在技术上向前发展,不然绝对不会。她们很可能是想要卖掉 Zend 服务器。我不指出她们是成功的,当你考虑到大公司尽快离开 PHP 的趋势,并使博客该文对每个人进行嘲讽。
并并非说 PHP 明天就会停止采用:它仍然工作,而且很容易掌握,即使总有一个 MVP 可以开始,它不需要花里胡哨的小东西。只不过,PHP 是那时,而并非今后,负责这一点的人其实并不在乎。也许一旦一类新的词汇出现,提供 PHP 和其他词汇中最好的部分。Hack 刚刚证明了公司级 PHP 有很好的标识符重用市场。
一旦下两个大事件席卷网络,PHP 就来不及赶上了。
没词汇会完全死掉。PHP 没死,只是其他词汇已经超越了它。当然,它们不像 PHP 那样经过战斗测试… 但她们正在实现。
当你指出人类对未知事物有固有的恐惧时,就会很容易同情那些被告知尝试另一类工具时的词汇X3430的愤怒。这适用于走出舒适区进入新事物,在本例中,这是从一类可靠的词汇(如 PHP)北迁到更适合您需求的其他词汇。没人会即使实际上“浪费”一周或两个月去学习和了解新的生态系而死掉。最坏的情况是,你学会了不再去哪里,就像你选错了度假目的地。
通过多年的软件开发解决难题,我认识到,走向(而并非跑向)技术的地平线是工作的一部分,即使这意味着接受我们曾经热爱的小东西走向命中注定…
… 未完待续。
作者介绍:Italo Baeza Cabrera 平面设计师毕业。全栈 Web 开发者。退休的技术和游戏编辑。原文链接:PHP “dying” this Decade: One Year Afterhttps://www.infoq.cn/article/hUV9vD24kfRRhzo5tFW1点击文末【阅读原文】移步InfoQ官网,内容更多更精彩!
今日好文推荐腾讯技术Leader人均写3万行标识符;拼多多超越阿里成为第一;360搜索、UC浏览器因虚假医药广告被点名下架 | Q资讯
InfoQ 写作平台欢迎所有热爱技术、热爱创作、热爱分享的内容创作者入驻!
还有更多超值活动等你来!
填写申请,成为作者
开启你的创作之路吧~点个在看少个 bug 👇