php发展

首页 » 常识 » 常识 » PHPldquo垂死rdquo十
TUhjnbcbe - 2021/5/27 19:24:00

作者|ItaloBaezaCabrera

译者|张健欣策划|Tina对于一门古老的语言来说,支撑未来技术的东西不是与时俱进吗?

差不多一年前,我发布了一篇题为“PHP可能在未来十年消失”的文章。我发布的这篇文章的总结就像一首《圣诞颂歌》,但不是EbenezerScrooge(电影《圣诞颂歌》中的一个商人角色),而是PHP:

过去,PHP没有修复它的问题,所以其它语言变得更有吸引力。

现在,PHP缺乏当前互联网所需的特性。

将来,PHP仍然不会有有意义的特性。

请注意,我从来没有写过“垂死”、“不要用它”,甚至“现在就放弃你的PHP项目!”。我只是说它会在之前的任何时候变得不再有意义,并对此为什么会发生做了的一个简单的解读。

考虑到PHP庞大的用户基础,一些指出PHP缺点的文章,往往会引爆一些狂热者。他们认为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的情况与VisualBasic、ASP.Net、Pascal、Fortran、ActionScript、ObjectiveC、Haskell、Ruby等许多其它服务端语言一样。它们完成了它们的技术周期,更好的语言用更多特性和工具集,或者更少的烦恼,取代了它们,就像PHP在年代中期针对互联网做的那样。一旦Rust成为Linux内核开发的标准,它也很可能发生在C和C++中。

与其它替代语言相比,PHP的崛起主要与Wordpress的首次出现和PHP在服务器领域的易卖性有关。特别是那些需要被编译成二进制的语言,即使这些替代语言有更多的特性或更好的性能,而PHP曾经两者都缺乏。正是因为Wordpress的崛起,媒体巨头们害怕自己的作品被“一个有博客的家伙”扼杀,于是接受了这一趋势,开始使用Wordpress来增强他们的互联网影响力。Wordpress甚至为这些公司提供了VIP模式。

PHP上的这种“硬锁”现在正在改变,这主要归功于云服务为其它编程语言提供了新平台,但即使到了今天,租到一台运行PHP的服务器并在一天内开始使用也不稀奇。事实是,今天也很容易租到一台运行Node.JS或AWSLambda的服务器。你不需要多年的培训来使用一家云服务提供商,或者一个服务器服务,甚至谷歌也提供了一个使用谷歌云平台的教程。

尽管如此,PHP仍然是能够支持网站开发的屈指可数的语言之一。随着越来越多的人参与进来,社区和官方都推出了工具:Opcache用于I/O性能处罚、PDO用于通用数据库层、Autoloader用来使大型项目更易管理、Composer用于依赖部署、PSR用于标准化代码规范、PHPUnit用于测试、PECL用于扩展等等。

所以,回到概念上来,淡出意味着被取代。它的使用量不会增长,而是变得停滞不前。唯一可能发生的事情就是慢慢被其它解决方案取代。这不是发生在一夕之间,而是常年的积累。

从公司的角度来看,改变技术栈需要花费大量的资源,而没有立即的ROI:迁移到新的技术栈不是没有代价的,更不是一天就完成的。更糟糕的是,有些工具可能不存在,比如分析、调试、甚至部署工具,这些都必须从头开始。

这使得很难说服老板进行“技术栈”迁移。这些老板,不是负责你的人,而是那些投资为了保持利润比上一时期更高的人。除非你能证明有一个新的“商业机会”,旧的技术栈无能为力,或者与其它新技术栈相比会相对性地赔钱,否则通常很难改变已经生效的一些东西。

4锤子是可靠的。射钉枪更好。

结合上下文,看看W3Tech对PHP的看法,你会发现PHP仍然因为被使用地最多而主导着因特网,但不是在%的真实流量上,而是在头部网站上,包括非美国平台。换句话说,如果Facebook使用了一个PHP脚本,那并不意味着整个平台都是基于PHP的——以及会更多地在该公司上。

Wordpress仍然是事实上被广泛使用的CMS,与WooCommerce一起成为企业的首选。虽然也有SaaS提供相同的服务,但可能没有必要修复没有损坏的东西。

由W3Techs.

1
查看完整版本: PHPldquo垂死rdquo十