QbitAI量子位

文章数:10350 被阅读:146647018

账号入驻

“最好的语言“ 25 岁了,PHP说要走向安全和开放!

最新更新时间:2020-05-14
    阅读数:
梅宁航 发自 凹非寺
量子位 报道 | 公众号 QbitAI

今年 4 月,随着PHP 7.4.5 正式发布,宣告PHP诞生25年,作为一门饱受争议的编程语言,PHP 经历了什么,又准备如何解决历史遗留问题

PHP 主要使用场景是前端开发,并且被视为 WordPress 的“标准语言”,但 PHP 公认的问题是安全性和较为混乱的开发环境配置

就在最近,一场围绕PHP的讨论,在程序员聚集的HackerNews展开,要点如下。

正方:OOP进化、对外开放和性能提升

面向对象编程(OOP)的理念在PHP 4时代正式引入,但长期带有严重的性能问题,因为实际上是通过一个带有函数引用的数组来进行实现,直到PHP 5进行重构,但也仅仅是勉强堪用,Hacker News一位网友就表示,多数人被劝退就在PHP 5时代。

直到PHP 7的发布,才真正达到可使用的状态,实现了例如函数参数、返回值的类型化以及标量的直接使用。

在PHP 7.4上,加入了键入对象属性的新功能,将这些功能与命名空间,交互接口和可迭代结合在一起,更加强大和易用。

虽然PHP已经25周岁,但并未显现老态,反而更为乐于拥抱外面的世界。

这一趋势在PHP 7.4版本表现的十分明显,明确支持外部语言接口(Foreign Language Interface,FFI)模式,对基于C语言的扩展包开放,允许更多外部扩展包参与到PHP的编程与维护工作中。

在HN的讨论区中,很多人表示希望WordPress增加更多的语言选项,但在可预见的未来,PHP仍将长期使用于WordPress的维护中。


在PHP 7.4之前,开发者更习惯于“内置电池”的模式解决问题,好处是编写起来简单易懂,但代价是项目会随着开发者的更换和语言的进化逐渐变得难以维护,向其他语言开放有助于解决这一问题。

PHP 7.4每秒处理的请求数量是PHP 5.6的三倍,甚至比PHP 7.0快约18%。

此外值得一提的是预加载能力的提升,开发者可以使用opcache.preload配置指令,并指定PHP脚本的路径可以很容易地启用这一模式。

该脚本中引用的所有类和函数将被永久加载到内存中,并根据需要在每个服务器请求中进行引用。

此外,预加载模式下的每个请求的资源是可复用的,因此可降低请求时间。

当然,这也意味着如果要更改配置内容必须重启服务器。

反方:生态割裂和安全隐忧

长期以来,PHP的社区生态是割裂的。

拥有PEAR和PECL两种包管理器,并且同时被官方支持,因为二者分别由C语言和PHP实现,造成了更严重的不兼容问题。

并且,由于PHP的更新迭代,年代久远的包的维护和更新已经成为了大问题,HN的讨论热点就主要集中在PHP的维护上,而非新项目的开发。

出于可维护性的考虑,从PHP 7.4开始,官方不建议再使用PEAR,PHP推出自己的包管理器,官方称其为Composer,使用方式非常接近于Python的pip和Node的npm,极大减少了开发者的维护难度。

不出意外的话,PHP 7.X会陪伴我们很长时间,据消息,PHP 8.0的alpha版本会在6月份释出,现存的PHP的bug会在 8.X时代修复,主要更新会集中在安全上。

实际上,PHP最为人诟病的是安全性问题,无论是否赞成PHP是世界上最好的语言,但大多数前端开发者都承认PHP的安全性较差。

而在PHP 5.4时代官方移除safe_mode,更是劝退了大波开发者,在意识到问题后,PHP重新支持这一模式。

虽然有所反复,但总归是好事一桩。近期的PHP开始使用Argon2 password-hashing 算法,这是多年密码学哈希算法竞赛的冠军,也许是为表明对安全性的重视。

你认为PHP能否继续在前端开发中保持热度呢?

欢迎在留言区分享你的看法~

参考链接:

https://lwn.net/SubscriberLink/818973/507f4b5e09ab9870/
https://news.ycombinator.com/item?id=23077367

作者系网易新闻·网易号“各有态度”签约作者


如何关注、学习、用好人工智能? 

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

同时,AI内参群为大家提供了交流和分享的平台,更好地满足大家获取AI资讯、学习AI技术的需求。扫码即可订阅:

了解AI发展现状,抓住行业发展机遇

AI社群 | 与优秀的人交流


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


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


喜欢就点「在看」吧 ! 



最新有关QbitAI量子位的文章

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved