19

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

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw%3D%3D&%3Bmid=2247541865&%3Bidx=5&%3Bsn=d1f34761c1145ed604d15fdaa6e302f8
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

梅宁航 发自 凹非寺

量子位 报道 | 公众号 QbitAI

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

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

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

eayIJjV.png!web

正方: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的维护中。

IjMvYjN.png!web

在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 ,极大减少了开发者的维护难度。

3AVvUby.png!web

不出意外的话,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发展现状,抓住行业发展机遇

IjmqqiM.jpg!web

AI社群 | 与优秀的人交流

NRBJNrm.png!web

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

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

喜欢就点「在看」吧 !


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK