PHP 可能在未来十年内消失?
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
犹记得,据 2001 年 7 月的 PHP 官方文档描述,“PHP 是有史以来最好的语言,没有之一。它快速,非常强大,而且免费。"不过,随着时间的迭代,不少开发者发现所谓世界上最好的语言 PHP,虽然能极大地提升性能,但是其功能不够完善最终导致 PHP 开始走上了下坡路,对此,你怎么看?
自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编写的部分服务器代码模块是可以重用在之前的移动或桌面应用中的。对公司所有者而言,这意味着公司不必再雇佣另一个有其他语言经验的开发者了,除非收益大过成本。
恐怕这就是我们将要面临的局面:
应用一开始用PHP代码库开发;
管理者索要新功能;
某个其他语言会填充PHP不提供的功能区;
最终开发者要使用两个生态系统。
同样,每种语言都有其特色和要警惕的问题,但我始终认为,一种语言要有功用性,能够让使用者完成自己的任务,而不是让人吃亏——如果不是为了PHP社区的利益,很难设想PHP会达成以上要求。
未来严峻
事实上,PHP8出现时会使用JIT编译器,但PHP背后没有核心开发者。而且Rogue Weave公司也更倾向于Zend Server,而非持续推动PHP核心Zend引擎的开发。这些功能可能永远无法实现,而且在这些问题列入考量时,Node.JS和Go等语言也已经拥有了更广阔的生态系统。
据我了解,JIT编译器应当允许开发者使用纯PHP而不是C++来创建扩展套件,这样性能损耗较低,可能会让语言功能发展得更快些,但创建者所提供的支持和/或可维护性也是语言持续的保证,否则难说软件包维护者是否会像Predis那样选择退出。
综上,在我看来,功能匮乏将使得PHP慢慢消失,而其他语言则会继续向前发展。
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
原文发布时间:2020-01-13
本文作者:Italo Baeza
本文来自阿里云云栖号合作伙伴“CSDN”,了解相关信息可以关注“CSDN”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
终于有人把超融合和边缘计算说清楚了
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 近年来超融合在国内迎来快速增长,根据IDC最新发布的报告,2019上半年中国超融合市场增长率达56.7%,大幅超越去年同期。Gartner发布的最新报告,到2023年我国超融合市场依旧保持23%的快速增长。超融合覆盖范围正在进一步扩大,不仅服务的客户在向大规模企业扩张,应用场景也从服务器虚拟化、VDI扩展到数据库、私有云等关键业务。 随着5G时代边缘计算数据中心的兴起,超融合市场正在迎来更大的发展空间。Gartner预测,2023年35%以上的超融合产品将应用在边缘计算领域。一起来了解一下超融合和边缘计算吧! 01 超融合的起源与内涵 随着云技术和虚拟化技术的发展,网络服务的构建有了新的思路和方案。2013 年的 vmware 大会上提出 VSAN 技术,其主要概念是在虚拟化集群中安装闪存和硬盘来构造存储层。VSAN 技术配置具有足够磁盘插槽和存储控制器的 VSAN主机,形成可扩展的分布式存储架构,生成易于管理的共享存储源。在 VSA...
- 下一篇
Python最重要的5大功能,要是能早点了解就好了!
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! Python作为近几年超级热门的新兴编程语言,其语言功能十分强大的特点,大家有目共睹,想必不用赘述。 Python功能众多,小芯曾用Python的交互式地图和区块链等功能创建了许许多多的应用程序,令人振奋。 但也正因其功能繁多,初学者一开始是很难掌握所有功能的。 即使你是一名从其他语言(比如C语言或MATLAB语言)转换过来的程序员,用更加抽象的Python编写代码对你来说也绝对是一次不同的体验。 但功能虽多,总有主次之分。 为了方便大家早点了解Python的一些大功能,小芯特别整理出了其中5大最重要的功能。 1.生成器——内存效率 打算计算大量的结果,但同时又想避免同时分配所有结果所需内存,这时候会使用生成器。换句话说,它们即时生成值,但不会将先前生成的值存储在内存中,因此只需要将其迭代一次。 生成器常用于读取大型文件或使用关键字yield生成无穷序列。在大多数数据科学项目中,笔者发现它颇有用处。 def gen(n): # an ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池