点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试资料

犹记得,据 2001 年 7 月的 PHP 官方文档描述,“PHP 是有史以来最好的语言,没有之一。它快速,非常强大,而且免费。"不过,随着时间的迭代,不少开发者发现所谓世界上最好的语言 PHP,虽然能极大地提升性能,但是其功能不够完善最终导致 PHP 开始走上了下坡路,对此,你怎么看?

作者 | Italo Baeza

译者 | 孙薇,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

自Wordpress、Drupal、CakePHP、Laravel、Symfony及许多其他的Web应用程序走上舞台以来,人们发现语言程序的创建如此简单,似乎也让语言出现了某种类似二次复兴的迹象。虚拟主机Web hosting再加上PHP + MySQL + Apache堆栈,就像野火一般迅速蔓延,突然每个人都在十分钟里建起了自己的网站:博客、购物车、相册等等,应有尽有。

PHP的支持者们乐于致力改善这门语言,最终他们成功了——迟钝的老版本逐渐被替换掉,PHP 7在性能和功能方面都更优,PHP 8甚至还支持JIT引擎。

但我认为,之后PHP会慢慢消失,甚至完全被淘汰。根据官宣,PHP 8的唯一主要功能就是JIT引擎——在CPU受限的场景中能提高性能,但也仅此而已,其他更新微不足道,不会对我们现有或未来的应用程序产生任何影响。

性能不会成为致命的问题,但功能缺乏才是问题。

暂时的胜利,最终的失败

在PHP5暴露问题(慢、依赖混乱、功能缺乏)的同时,Ruby、Python、Node.JS和Go都开始受到大众关注。Go出现得比较晚,但无论如何,我们可以看到这些语言的用途:

  • Websockets

  • 非阻塞IO

  • Promises实现(即“在我执行其他任务时,完成此项任务”)

  • 更佳的数据流

  • 本地服务器部署

  • 桌面/移动应用的用法

  • 更干净的配置(如php.ini)

  • 软件包管理(后由Composer修复)

这些新功能除了composer,全都不包括在PHP的核心功能中,甚至宣传和计划中都不涵盖。基本上,官方是让PHP社区自行决断要自己做这些功能,还是干脆放弃了事。

你可能会说,这些功能并非各个项目必需的,其可用性要取决于具体情况,这话没错,但要实现上述功能,我们必须要选择是用非官方的程序包,还是自己做一个。

举个例子,我们看一下WebSockets:必须在Ratchet、Swoole、Amp和React中作出选择。这意味着,针对关键性功能,作为开发人员,我们不但要确保遵守程序包的相关文档,保证程序包的可维护性,还要关注PHP的版本更新情况,才能保证不出问题。我可以想象,PHP8出现时,要在新版本上稳定下来,需要花费数周乃至数月的时间。

Swoole的案例是可以再讨论的。目前开发者可能不太热衷于使用这个麻烦缠身的软件,尤其是考虑到语言障碍的问题,但如果想要进一步研究的话,可以点击这里查看开源代码。

虽然近来,人们的关注点有些偏移向语言本身添加某些helper和命令,但这些helper方法的混乱也是多年来未曾解决的问题:ucfirst(), strtolower(), str_replace()…我们为什么不能在使用统一命名上达成一致?为什么直到今日,仍然没有人能从数组中提取一些键?

回到重点,不要误会我反对使用第三方程序包,但我希望负责PHP本身的人员比随机的公司拥有更多的可维护性。

而且别让我用台式机或者移动应用程序。PHP是一种面向Web的语言,大多数开发者都默认这一点,但即便Node.JS被逐出了市场,PHP也不会有希望成为相应生态系统中的替代品。

具体到Node.JS的案例中,很大可能JavaScript编写的部分服务器代码模块是可以重用在之前的移动或桌面应用中的。对公司所有者而言,这意味着公司不必再雇佣另一个有其他语言经验的开发者了,除非收益大过成本。

恐怕这就是我们将要面临的局面:

  1. 应用一开始用PHP代码库开发;

  2. 管理者索要新功能;

  3. 某个其他语言会填充PHP不提供的功能区;

  4. 最终开发者要使用两个生态系统。

同样,每种语言都有其特色和要警惕的问题,但我始终认为,一种语言要有功用性,能够让使用者完成自己的任务,而不是让人吃亏——如果不是为了PHP社区的利益,很难设想PHP会达成以上要求。

未来严峻

事实上,PHP8出现时会使用JIT编译器,但PHP背后没有核心开发者。而且Rogue Weave公司也更倾向于Zend Server,而非持续推动PHP核心Zend引擎的开发。这些功能可能永远无法实现,而且在这些问题列入考量时,Node.JS和Go等语言也已经拥有了更广阔的生态系统。

据我了解,JIT编译器应当允许开发者使用纯PHP而不是C++来创建扩展套件,这样性能损耗较低,可能会让语言功能发展得更快些,但创建者所提供的支持和/或可维护性也是语言持续的保证,否则难说软件包维护者是否会像Predis那样选择退出。

综上,在我看来,功能匮乏将使得PHP慢慢消失,而其他语言则会继续向前发展。

原文:https://medium.com/@DarkGhostHunter/php-could-fade-away-in-the-next-decade-584e46d760db

本文为 CSDN 翻译,转载请注明来源出处。

热门内容:

  • Vert.x!这是目前最快的 Java 框架

  • SpringBoot线程池的创建、@Async配置步骤及注意事项

  • 看看,这些细节上的坑,你犯了多少?

  • 老大说,网上这种获取真实IP地址的方法不对,我不信...

  • AJAX 请求真的不安全么?

  • 你知道为什么Java的main方法必须是public static void?

  • 谈谈中间件开发,给想从事中间件开发的同学

  • 大年夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

PHP 可能在未来十年内消失?相关推荐

  1. js php 实现日历签到_PHP 可能在未来十年内消失?

    犹记得,据 2001 年 7 月的 PHP 官方文档描述,"PHP 是有史以来最好的语言,没有之一.它快速,非常强大,而且免费."不过,随着时间的迭代,不少开发者发现所谓世界上最好 ...

  2. node php go python_PHP 可能在未来十年内消失?

    犹记得,据 2001 年 7 月的 PHP 官方文档描述,"PHP 是有史以来最好的语言,没有之一.它快速,非常强大,而且免费."不过,随着时间的迭代,不少开发者发现所谓世界上最好 ...

  3. 形势说变就变!机器学习工程师恐在十年内消失?

    2020-05-27 12:32:00 全文共1992字,预计学习时长7分钟 图源:becominghuman 每个领域都有自身的发展规律,从萌芽到发展,再到归于常态化.随着时间的推移,早期的专门工具 ...

  4. 十年内将被人遗忘的15种技术:硬盘和鼠标

    博客网站LapTop近日刊载网络版主编艾弗拉姆•普里奇(Avram Piltch)的文章称,我们现在所使用的技术中有很多将在未来十年内消失.他列举了15种将会消失的技术,其中包括有线家庭互联网.专用照 ...

  5. 未来十年,机器学习工程师会消失吗?

    作者 | Luke Posey 译者 | 鹿未来,责编 | 屠敏 头图 | CSDN 下载自东方 IC 以下为译文: 我预测很快! 这只是我的个人片面的论点,所以大家可以尽情的说出自己的想法,这样这个 ...

  6. 吴晓波:未来十年,我们所认为的能力将荡然无存

    作者:吴晓波 来源:中大博研(ID:izddba) 这些技术变革,一方面面临伦理问题,另一方面面临到社会问题.所以未来10年一定是比刚刚过往的10年更精彩的10年. 10年好像并不是很遥远,但是我们站 ...

  7. 美权威报告:量子计算十年内无法落地

    https://blog.csdn.net/cf2SudS8x8F0v/article/details/84949063 来源:云头条 摘要:美国方面称,它对这项复杂的技术何时真正大有用武之地毫无头绪 ...

  8. 未来十年有望改变世界的五大发现

    来源:科技日报  浮云一别后,流水十年间!21世纪第二个十年已悄然离开.过去十年,不少革命性突破和发现给人类生活和认知带来重大变革:希格斯玻色子填补了"标准模型"最后一块拼图,深化 ...

  9. 云计算物联网Hold住未来十大技术趋势

    本文讲的是云计算物联网Hold住未来十大技术趋势,据国外媒体报道,思科首席未来学家.首席技术学家戴夫-埃万斯(Dave Evans)称,在未来十年内,物联网.云服务和虚拟人类等十大技术发展趋势,将深刻 ...

最新文章

  1. php查找二维数组下标,PHP实现二维数组中的查找算法小结
  2. 三次握手、四次挥手理解
  3. 学习Angular前了解下TypeScript
  4. JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略
  5. 三杯茶(一本令全世界为之动容的书)(Three cups of tea)
  6. 【Java学习笔记】线程学习笔记
  7. 测试管理 | 4种优先级排序方法一定要掌握
  8. nodejs操作redis总结
  9. jacob将word转换为html
  10. 2021年安全生产模拟考试(全国特种作业操作证电工作业-电力电缆模拟考试题库二)安考星
  11. sqlite编辑器 linux,SQLite编辑器
  12. 普鸥知产|亚马逊品牌备案被判“滥用行为”无法备案如何解决?
  13. adf机器_adf(adf文件转成shp)
  14. 大数据分析02——成都二手房(热度)
  15. 文献阅读总结--合成生物学工程促进大肠杆菌中莽草酸的高水平积累
  16. 内存分为几个部分?堆与栈的区别
  17. Debezium的MySQL连接器的工作原理
  18. 财务自由人(Financial free man)
  19. 怎么卸载python3.6_Mac 卸载Python3.6
  20. Stata:时间虚拟变量还是时间趋势项?

热门文章

  1. PHP Memcached应用实现代码
  2. 【直播】黎佳佳:音频数据分析以及特征提取
  3. 刻意练习:LeetCode实战 -- Task04. 三数之和
  4. 技术图文:如何利用C#爬取CSDN的博客文章?
  5. Go modules基础精进,六大核心概念全解析(下)
  6. 使用卷积神经网络预防疲劳驾驶事故
  7. GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?
  8. 百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...
  9. 百度CTO王海峰获“光华工程科技奖”,深耕自然语言处理近30年
  10. 隐私数据在隐私AI框架中的安全流动