作者 | 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非壅塞IOPromises实现(即“在我实行其他任务时,完成此项任务”)更佳的数据流本地做事器支配桌面/移动运用的用法更干净的配置(如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编写的部分做事器代码模块是可以重用在之前的移动或桌面运用中的。对公司所有者而言,这意味着公司不必再雇佣另一个有其他措辞履历的开拓者了,除非收益大过本钱。
恐怕这便是我们将要面临的局势:
运用一开始用PHP代码库开拓;管理者索要新功能;某个其他措辞会添补PHP不供应的功能区;终极开拓者要利用两个生态系统。同样,每种措辞都有其特色和要当心的问题,但我始终认为,一种措辞要有功用性,能够让利用者完本钱身的任务,而不是让人亏损——如果不是为了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 翻译,转载请注明来源出处。