作者 |Clement Brian 译者 | 弯月

出品 | CSDN(ID:CSDNnews)

万物有开始就有结束。而如今 PHP 也步入了暮年。在这个时代,长盛不衰的唯一方法就是无可取代。

一门技术如非必不可少,就会被慢慢遗忘。PHP 不仅可有可无,而且会加剧开发工作的复杂性。与之相比,许多现代语言的表现更为出众。

这些现代语言没有 PHP 的局限性。虽然 PHP 在不断更新,但未达到领先水平。我并不讨厌这门编程语言,只是想通过本文分析一下为什么 PHP 会走上末路。

1.死亡逼近

在为项目选择技术之前,首先我们需要做一件重要的事情:分析该技术的发展趋势。
如果你的目标是在未来几年中加速项目的发展,那么分析技术的发展趋势会非常有价值。长期项目需要选择正确的技术。你不希望有朝一日被困在一个逐步衰亡且缺乏支持的技术中。下图来自 Google 的趋势分析,为我们展示了过去十多年间 PHP 的发展。

我们可以看出,在过去的十年中,PHP 一直在走下坡路,如今几乎已跌至谷底。下面是来自 TIOBE 指数的一个趋势图。

很明显 PHP 日渐式微。如今还有一些流行的基础设施在使用 PHP,这是因为这些基础设施都是在 PHP 发展的高峰期或上升期(2001年~2010年)构建的。WordPress 和维基百科就是典型的例子。

如果想构建复杂的系统,我们就不能依赖这门语言。更糟糕的是,我们更不能依赖一门正在走向衰亡的语言,即便我们的前辈在 PHP 崛起和顶峰时期选择了这门语言。
就 2022 年的形式来看,为项目选择 PHP 不再是一个明智之举,除非是暂时的。如果你非常注重项目的发展,则应该选择一种现代语言。一种正在上升或达到顶峰期的语言。这不仅可以保证将来的安全,而且也可以保证项目的持续生存和增长。

2.Node.js 正在慢慢取代 PHP

新一代的程序员不会选择学习 PHP 语言,他们会选择 node.js。而这些人将主宰未来的网络。
他们了解使用两种语言的难度,而且也清楚 PHP 的缺点。他们知道掌握 PHP 并不会给自己带来最大价值。
招聘人员也意识到了这一点。他们中的许多人正在慢慢地用 node.js 或其他替代方案替换 PHP。
转换领域(比如以前是游戏开发人员,如今想涉足 Web 开发)的资深程序员也不会选择学习 PHP。他们中的大多数人都选择了 Node.js。
下面这张图比较了 PHP 与 Node.js、Django 等其他后端框架。

Django 还很年轻,未来可期。我知道它还没有完全发展成熟。但未来它可能会成为一头野兽。它的发展并不会减弱。

Node.js 获得的关注度高于 Django。显然,很多人都很喜欢它。但相似的是,这两个框架都在增长。未来它们都会变得非常强大。
这些框架以及 Rust、Go 等其他现代语言都可以说比 PHP 更好。
它们消灭了 PHP 的缺点,拥有系统的架构,而且组织非常有条理,因此比 PHP 更可靠。

3.技术栈已改变

世界正在慢慢向 Web 3.0 迈进。未来 Web 将由云解决方案和机器学习主导。
目前,我们仍处于 Web 2.0,而 Django 和 Node.js 等语言非常适合这种过渡。
Django 特别擅长基于 AI 的 Web 应用程序、分析应用程序、实时应用程序修改,并且具有高度可扩展性。
Node.js 的开发效率非常高,而且非常适合实时发送数据,不仅速度非常快,而且还可以保证服务器的持续回调。
这些领域非常关键,却也是PHP的欠缺。因此,Django、Node.js、Rust 和其他现代技术更适合未来的发展。
此外,技术栈也发生了变化。曾几何时LAMP是最流行的技术栈。使用超过了10年,因为这个技术栈非常简单、可靠且稳定,因此深受开发人员的喜爱。
而如今我们有 MEAN、MERN、MEVN 以及由 AWS Lambda 和谷歌云等云平台提供支持的无服务器栈。很明显 MERN 以及其他亲属分支已经打败了LAMP。
此外,我们还有其他技术,如 Ruby on Rails 和 Flutter,可用于创建跨平台应用程序。当开发速度成为项目的首要因素时,就可以考虑这些技术栈。

4.PHP 无法融入移动电话和平板电脑等便携式设备的未来

如今 Web 的已由手机和平板电脑主导,无论走到哪里,我们都会随身携带手机。
目前大部分网络流量皆来自移动设备。普通人花费在手机上的时间比在任何其他设备上都要多。
各大公司的服务纷纷从 Web 转移到了移动应用程序。这导致眼下以及将来势必涌现大量大规模的迁移。
简而言之,这对移动应用程序开发人员来说是个好消息。
然而,坏消息是 PHP 不是此次迁移的一部分。PHP 不适合移动应用程序。而 PHP 的建立初衷也不在于此。它是一种面向 Web 服务器端的编程语言。
另一方面,Django 和 Node.js 则非常适合移动应用程序。未来,两者都有可能在在移动应用中占据很大一块份额。Django 已朝着这个方向迈出了一大步:它为世界上访问量排名第六的网站 Instagram 提供了支持。

原文链接:https://levelup.gitconnected.com/php-is-dying-a3805e23a3b8

PHP 正在迅速死去相关推荐

  1. 我们死去后,宇宙还能记住我们吗?

    图片来源:Pixabay 撰文:约翰·霍根(John Horgan) 翻译:常灏杰 审校:曾小欢 吴非 一些物理学家坚信信息不会消失,甚至在黑洞中也不会消失,但是这一"规律"也许只 ...

  2. 『转』度百死去飞秋一个BUG引发的血案

    作了一篇文章度百死去飞秋一个BUG引发的血案,昨天,度百死去的美国客户发邮件给我,说我的软件出问题了,我查来查去,发现居然是服务器上一个目录无法删除,一删除就报 cannot read from th ...

  3. 『转』死去度百飞鸽传书

    今天看了一篇文章,狂骂某国内搜素引擎,看得真爽,就装过来了. 再次研究最大搜索引擎的排名,国内搜索引擎的排名终极方法就是竟他妈的价.呵呵,没技术含量的,就是你通过某些方法排上去,很快地,你就会被人工掉 ...

  4. 【无人机】他把死去的猫做成无人机,网友愤怒了!

    唐唐老家有一只大橘猫,特别喜欢在阳台上趴着. 还总是从那里直接跳到楼下,好彰显自己的体态轻盈. 但是吧,后来它吃胖了,都胖成猪了. 那一次它还是十分自信的跳了下去,然后...就没有然后了... 失去自 ...

  5. 母牛2年生小牛 5年后并死去的算法

    同事提出一个问题,关于牛生小牛的算法,之前的牛生小牛的算法都是假设牛不死的情况下的,几年生一头,若干年后还有多少头,这个算法是有些变化的. 农场第一年有一头牛,假设这头牛每2年生一次小牛,小牛迅速长大 ...

  6. 如果早晚都要死去,为什么还要活着?

    --如果早晚都要死去,为什么还要活着? --甜甜圈吃几口就没了,为什么还要吃? 人生只有一次 不妨勇敢一些 去发现自己的内心 做让你充满生命力的事情 大胆爱心里所挚爱 成为真正想成为的人 " ...

  7. 我们在这创业,我们在这融资,我们在这泡妞,我们在这死去...

    我在知乎的题目是<在火热的中关村创业大街孵化器里创业是怎样的体验?> 写着写着,就改了标题. 我自认为很有发言权了.我的团队在这里创业,而且在孵化器里.我们在这创业,我们在这融资,我们在这 ...

  8. LeetCode 605[Python]. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

    LeetCode 605. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和 ...

  9. 这些夕阳产品的编程语言即将死去,有你学的吗?

    现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,但逐渐不受大家欢迎:直接完全死去.这些夕阳产品的编程语言即将死去,有你学的吗? Dart是Googl ...

  10. 每日一题:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

    每日一题:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 2020年11月24日,力扣,简单,种花问题 一.题目描述 假设 ...

最新文章

  1. python爬虫入门urllib库的使用
  2. SharePoint 2010中的客户端模型
  3. [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程
  4. SQL Server 2016 列存储技术做实时分析
  5. 关于display相关的一些内容(总体)
  6. Visual Studio 2008 断点调试直接跳出代码窗口
  7. linux用户登录指定目录
  8. 转 Java jar (SpringBoot Jar)转为win可执行的exe程序
  9. php类的实例化方法,php中类的定义和实例化方法
  10. 掌握这个分析方法,数据分析就学会了一半
  11. C# label控件竖直显示 label控件垂直显示
  12. 《程序人生》深漂程序猿2019的一年
  13. 怎么在MATLAB中看奈氏图的S平面,MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制...
  14. 基于btest.so的策略测试方案
  15. 聚沙成塔-linux 常用命令
  16. SHUOJ 2333
  17. 聊聊旷厂黑科技 | 手机多摄的终极奥义是“多”吗?
  18. 读javascript高级程序设计09-BOM
  19. Jemeter 设置中文
  20. 黑客喜欢的扫描器盒子

热门文章

  1. 敏捷开发般若敏捷系列之二:什么是敏捷(上)(无住,不住于法,破法执)...
  2. Spring Cloud 服务消费者 Feign (三)
  3. Android框架Volley使用:Post请求实现
  4. 使用git stash命令保存和恢复进度
  5. 06 iOS 关闭侧滑返回
  6. CentOS7 安装 Mysql 服务
  7. iOS中将后台JSON数据转化为模型的总结
  8. [转]Asp.net mvc 网站之速度优化 -- 页面缓存
  9. 新手必看!电脑文件管理八条小技巧
  10. 通过 Kubeadm联网部署K8S