都2019年了,PHP还是世界上最好的语言吗?

2019 年 5 月 26 日 量子位
晓查 乾明 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

当下,如果你打开搜索引擎,搜索关键词“PHP过时”,能找到714万个相关结果。

这些结果之中,不乏有2016年、2018年的结果,说PHP已经过时了。

现已2019年,这个曾经自称为“世界上最好的语言”PHP,情况如何?

一位名叫Brent的程序员小哥,写了一篇博客文章,介绍了PHP在2019年的情况。

他说,现在的PHP每年都会积极开发新版本,从2004年发布PHP 5以来性能已经提升了两到三倍。

而且,有很活跃的生态系统,里面有各种各样的框架、包和平台。过去几年,PHP也添了很多新功能,语言不断发展等等。

他希望,大家都放弃偏见,重新认识下现在的PHP。

博客文章被po到HackerNews上之后,半天就有700多热度,引起近400条讨论。

有人表示,自己还是不喜欢PHP的代码和架构,因为代码很难看,还是围绕着静态方法构建的,不容易阅读。

也有人给点了赞,说从生态系统、性能、语言本身上来看,PHP这几年的发展的确不错。

那么,PHP现在到底怎样呢?来一起看看。

PHP的性能:7.0版本提升两到三倍

现在,PHP已经更新到了7.3版本,2019年底将会跟新7.4版本,之后会升级到8.0版本。

小哥表示,PHP5.0版本在2004年发布的时候,它的性能就已经达到了平均水平。在升级到7.0版本的时候,又从头开始重写了一遍核心部分,运行WordPress 5.0时,性能提升了两到三倍。

在Web应用程序中,PHP与其他语言也有可比性,在某些情况下性能表现还更好。

虽然与C和Rust相比,PHP还是略逊一筹,但比Rails或Django要好得多,性能也比得上ExpressJS。

框架和生态系统:不仅仅是WordPress

在HackerNews的讨论中,很多人都提到,因为WordPress的存在才让PHP有了些存在感。

但小哥在博客中说,WordPress绝不能代表PHP当前的生态系统。

一般来说,PHP中有两个主要的Web应用程序框架,分别是Symfony和Laravel。现在使用PHP做开发,基本上都会选择其中的一个。

这两个框架背后,都有一个庞大的包和产品生态系统,从管理面板和CRM到独立软件包,分析工具,支付集成等等。

虽然这些框架适用于实际开发,但如果只需要进行内容管理,WordPress和CraftCMS是更好的选择,而且它们也会进一步改进。

此外,衡量PHP生态系统当前状态的一种方法是看Packagist中的情况,这是PHP的主要软件包的存储库。

PHP主要软件包近年来已呈指数级增长,每天下载量达到2500万次。这足以证明,PHP生态系统已经远非昔日可比。

除了应用程序框架和CMS之外,过去几年PHP中的异步框架也开始兴起,比如Swoole、Amp和ReactPHP等等,都是用PHP或其他语言编写的框架和服务器,能够让用户运行真正的异步PHP。

现在, PHP已经进入了异步世界,像WebSocket和具有大量输入输出的应用程序之类的东西,已经开始与PHP世界相关了。

语言本身

尽管async和await现在还不可用,但在过去的几年里,PHP语言本身已经做了很多改进。下面是一个不完全的PHP新特性列表:

  • 短闭包

  • Null合并运算符

  • Traits代码复用机制

  • 类型化属性

  • 展开运算符

  • JIT编译器

  • 外部函数接口

  • 匿名类

  • 返回类型声明

  • 现代加密库

  • 生成器

  • 更多

当谈到PHP语言特性的时候,让我们也来看看今天PHP语言是如何发展的。PHP有一个活跃的志愿者核心团队推动语言的发展,向社区征求意见(RFC,Request for Comments)。

接下来,这些RFC在“内部”邮件列表中讨论,也可以在线浏览。在添加新的功能之前,必须进行投票。只有至少占2/3多数的RFC才被允许进入核心。

大约有100人允许参与投票。核心团队的成员当然有权投票,因为他们必须维护代码基础。

除此之外,还有一群人是从PHP社区中单独挑选出来的。这些人包括PHP文档的维护者,整个PHP项目的贡献者,以及PHP社区中杰出的开发人员。

虽然大部分核心开发是在自愿的基础上完成的,但是核心PHP开发人员之一Nikita Popov最近加入了软件公司JetBrains,全职从事编程语言工作。

另一个例子是最近决定投资Zend框架的Linux基金会。像这样的雇佣方式和收购确保了PHP未来发展的稳定性。

静态分析工具

过去几年里,围绕PHP本身的工具已经有所增加,比如由Vimeo开发的静态分析工具Psalm等等。

这些工具能够对你的PHP代码进行静态分析,并报告其中出现的错误以及可能会出现的错误。

尽管PHP还没有被编译,不允许使用自定义语法,但在某种程度上,它们提供的功能能够媲美TypeScript。

这意味着,现在的PHP开发者要依赖文档块。但PHP的原始创建者Rasmus Lerdorf,已经明确提到了要在内核中添加静态分析引擎。这一想法的潜力很大,但任务同样艰巨。

在传输方面,受到JavaScript社区的启发,PHP开发者社区已经在努力的拓展PHP语法。比如一个名为Pre的项目,可以把新的PHP语法转换成普通的PHP代码。

这个想法虽然已经在JavaScript世界中得到了证明,但是只有在提供了适当的集成开发环境和静态分析支持的情况下,它才能在PHP中发挥作用。

尽管这是一个非常有趣的想法,但是在能够称之为“主流”之前,它还有很长的路要走。

PHP已经过时了吗?

再次把话题回到开头提出的问题上,PHP已经过时了吗?

除了上面的一些动态,还有一份报告可以参考。

去年10月,GitHub发布2018年的年度报告。在热门编程语言中,PHP排名第四。

虽然比不上JavaScript、Java,后来又被Python超过,但依旧比C++、C#等语言热度要高。

小程序|get更多AI学习干货

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;


欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)


量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !


登录查看更多
0

相关内容

PHP 是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入 HTML 文档的脚本语言,语言的风格有类似于 C 语言,被广泛的运用。PHP 具有非常强大的功能,所有的 CGI 的功能 PHP 都能实现,而且支持几乎所有流行的数据库以及操作系统。
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【Manning2020新书】Elm 实战,344页pdf,Elm in Action
专知会员服务
49+阅读 · 2020年4月14日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
领域知识图谱构建,115页2019著作带你学习KGC(附下载)
专知会员服务
82+阅读 · 2020年1月9日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
Julia 对决Python:谁能在2019年称霸机器学习编程?
七月在线实验室
3+阅读 · 2019年1月13日
2018年8月份GitHub上最热门的开源项目
算法与数据结构
3+阅读 · 2018年9月4日
2018年7月份GitHub开源项目排行榜
算法与数据结构
15+阅读 · 2018年8月3日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2018 年 2 月份 GitHub 上最热门的开源项目
算法与数据结构
5+阅读 · 2018年3月10日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
Arxiv
101+阅读 · 2020年3月4日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
30+阅读 · 2019年3月13日
Arxiv
4+阅读 · 2018年11月7日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
6+阅读 · 2018年2月24日
VIP会员
相关资讯
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
Julia 对决Python:谁能在2019年称霸机器学习编程?
七月在线实验室
3+阅读 · 2019年1月13日
2018年8月份GitHub上最热门的开源项目
算法与数据结构
3+阅读 · 2018年9月4日
2018年7月份GitHub开源项目排行榜
算法与数据结构
15+阅读 · 2018年8月3日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2018 年 2 月份 GitHub 上最热门的开源项目
算法与数据结构
5+阅读 · 2018年3月10日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
相关论文
Arxiv
101+阅读 · 2020年3月4日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
30+阅读 · 2019年3月13日
Arxiv
4+阅读 · 2018年11月7日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
6+阅读 · 2018年2月24日
Top
微信扫码咨询专知VIP会员