PHP 还有未来么,还是 25 岁就“寿终正寝”了?

2020年11月24日16:56:08 科技 1722

PHP 还有未来么,还是 25 岁就“寿终正寝”了? - 天天要闻

作者 | BEN JAMES

译者 | Arvin,责编 | 夕颜

出品 | CSDN(ID:CSDNnews)

1995年6月,拉斯穆斯·勒多夫(Rasmus Lerdorf)在Usenet小组中发布了一则如下公告。公告至今还在,随时可以阅读。

公告:

正式发布个人主页工具(PHP工具)1.0版本。

这些工具是一组用C编写的小巧紧凑的cgi二进制文件。

今天,25年过去了,PHP已经几乎无处不在。我敢打赌,对于本文的大多数读者来说,他们对Web编程的首次尝试均涉及PHP。

但是,无论PHP拥有多么丰富的历史和广泛的用户基础,都没有理由在一个快速发展的领域中使用这门语言。虽然PHP将不可避免地在现有的应用程序中出现数年,但它在新站点中还会有未来吗?

在展望未来之前,我们必须首先研究PHP在过去是如何发展的。

发端

Rasmus Lerdorf最初创建PHP是为了追踪浏览过他在线简历的用户。当源代码发布后,代码库被大量重写,PHP就开始流行起来。据报道,到1998年,有1%的域名安装了PHP。那时的PHP完全写在标记中,语法明显不同于现代版本。

Zeev Suraski和Andi Gutmans尝试用PHP建立业务,但发现它在功能上很匮乏。他们与Rasmus合作,PHP再次被重写并发布了PHP 3.0版本。当时事情有了一些进展,预计有10%的域安装了PHP 3。这也是PHP的含义从“个人主页”变成人人喜爱的递归缩写词“PHP: Hypertext Preprocessor”的转折点。这个版本和时期通常被视为PHP巩固地位的时期。在PHP 3和4过渡时期,phpMyAdmin被创建。Zeev和Andi将他们的名字组合在一起,创建了PHP服务公司Zend,古老的大象徽标诞生。

剩下的就是经典的历史了:PHP 4发布后不久,Drupal出世。2003年出现了WordPress,2004年,哈佛大学一位名叫Mark的学生(FB创始人)声名大噪。

FACEBOOK和PHP

Facebook是著名的PHP网站。但是,当成千上万的用户变成数以百万计,数以百万计的用户向数十亿用户扩张时,就出现了成长的烦恼。

特别是,PHP过去是(现在仍然是)一种脚本语言。对于开发人员的生产率来说很好,但对于资源效率来说却不然。因此,在2008年,Facebook开始从事HipHop for PHP(一种编译器)的工作。很简单,它解析PHP,将其编译为C ++,然后将生成的C ++编译为x64。鉴于PHP是弱类型且动态的,这不是什么了不起的壮举。但是结果不言而喻:CPU负载减少了50%。

PHP 还有未来么,还是 25 岁就“寿终正寝”了? - 天天要闻

我敢肯定,可以想象如果你 是Facebook的一名开发人员,使用这个程序会多么可怕。对PHP代码进行更改,运行解释器,然后运行编译器,再运行可执行文件,发现问题后返回修复。那是一个相当长的迭代周期,这就是为什么Facebook还开发了HPHPi,这是一种解释器,可以完成与解析器和编译器 (HPHPc)相同的工作,但只是用于开发。可以想象,让这两个项目保持同步是件非常头疼的事,因此在2011年,他们开发了HHVM(HipHop虚拟机)。

HHVM是一种PHP运行时。它使用JIT(即时编译)来提供两全其美的方法。这非常酷,如果你有兴趣,可以在Facebook自己的博客文章中阅读更多内容。

下一个重大进展是在2014年,出现了一种专门为HHVM构建的语言Hack。它既是PHP的超集又是其子集,添加了可选的类型注释和诸如异步架构之类的附加功能。它还帮助HHVM的JIT更加高效,因为它可以通过使用指定的类型提示使HHVM的JIT放心地进行优化。很快,Facebook上的新代码开始用Hack编写,在往后的时间里也把现有代码向Hack转化。Hack和HHVM都是开源的,现在都在积极维护。

Facebook发现原生形式的PHP无法大规模扩展的事实,是否意味着它是一种设计拙劣的语言?不,我不这么认为。我不认为当时存在的选项是针对Facebook所需的规模或细节创建的。但是,这并不能阻止人们用PHP构建Facebook。

PHP的仇恨者

在广阔的软件社区中,随着PHP的发展壮大,它不可避免地引来了越来越多的愤世嫉俗者的攻击。不过,客观地讲,PHP比大多数其他语言更令人讨厌。根据最近的2020 Stack Overflow开发者调查,PHP在最可怕的语言中排名第六。为什么?

我不想在这里讨论技术细节,如果你感兴趣,可以看看《PHP:糟糕设计的化身》,这篇文章简直被PHP仇恨者奉为圣经。这篇博客写于2012年,其所提及的一些问题此后已得到解决,但许多问题尚未得到解决。(例如:为什么在2020年仍没有本地异步支持?)

我认为PHP在语言哲学上的问题更大。这是一个用复杂方式实现的用于相当狭窄领域的工具。在理想情况下,如果应用程序必须是复杂的,那么开发人员应该在用户代中看到复杂性,而不是语言本身。你不需要用一个复杂的工具来创建复杂的项目。当我说PHP很复杂时,我并不是说它对初学者来说很难使用(事实上恰恰相反),我是说它有不一致的命名约定和许多非常具体的函数,这两者都很容易产生错误,直到运行时这些错误才会暴露出来。但是,这些仅仅是PHP时代的属性吗?虽然这可能是一个因素,但肯定不是大家讨厌它的原因。毕竟,Python创建于1989年,比PHP早6年,在Stack Overflow 调查中,它在最受喜爱的语言中排名第三,也是当今增长最快的语言之一。

PHP 还有未来么,还是 25 岁就“寿终正寝”了? - 天天要闻

Stack Overflow 2020调查:最可怕语言

当谈到安全性时,关于PHP站点上超过平均水平的漏洞数量,是该语言的错误还是站点开发人员的错误,存在一些争论。

一方面,为了吸引包括非程序员在内的广泛人群而设计的编程语言,不管语言本身有什么优点,这些人用几十年前的教程编写的代码组合在一起创建网站,这种编程语言总是会遇到问题。另一方面, PHP试图以令人费解的方式修复基本的安全问题,例如先用escape_string()修复SQL注入,然后通过添加real_escape_string()修复漏洞,再添加addslashes()、mysql_escape_string()、pg_escape_string()等等。将此添加到其复杂的错误/异常处理(是的,错误和异常是不同的)中,如果不熟悉语言的细微差别,那么很容易出错。运行过时、不受支持的PHP版本的站点数量的数量还将以惊人的速度继续增长,因此在未来几年里,PHP站点仍将是黑客唾手可得的目标。

尽管如此,我不认为这门语言存在的问题有人们所说的那么严重。尽管人们对PHP的抱怨有合理的理由,但在我看来,大部分的污名都是因为它很受欢迎而遭受的嫉妒,而不是什么个人原因。

未来

本人深知在地址栏中使用post.php的页面输入对这门语言的评论,是很有讽刺意味的。但这与现有的网站无关。我认为即使是最热心的用户也不会建议我们重写所有使用PHP创建的网站。问题是,在2020年,如果我想创建一个新网站,我应该考虑使用PHP吗?

PHP 还有未来么,还是 25 岁就“寿终正寝”了? - 天天要闻

毫无疑问,当前的web开发趋势正在为单页面应用程序设定一个方向——在这种应用程序中,你的浏览器永远不会重新加载,但是导航是通过Javascript使用API调用(例如:浏览GitHub或Google Drive)得来的数据重新呈现页面来实现的,这样的调用快得像闪电一样。Javascript库、框架和工具在浏览器中构建反应式和高性能应用程序的生态系统不断增长,其中React和Vue最受欢迎。

归根结底,PHP是用于服务器端呈现的。这对大多数网站来说是不错的,也是大多数网站的最佳选择。但是如果你要在2020年建造新的产品,你必须接受这一点将带来的限制。虽然PHP风格的服务器端渲染还没有死(大家是不是都忘了SEO了?),但是现代的网站很可能是同构的,也就是说,能够在服务器和客户端渲染相同的Javascript,使用诸如Next.js(用于React)或Nuxt.js(用于Vue)等框架,能够将PHP从服务器端清除。

但是我们不能忽视PHP也在不断发展的事实。Laravel自诩为“web工匠的PHP框架”,它提供了一种MVC架构,用于安全快速地创建PHP应用程序。受到社会的高度重视,它的发展积极迅速。此外,PHP 8也在今年8月推出,带来一大堆新特性(其中许多特性和Facebook章节中介绍的类似),比如JIT、Union类型和改进的错误。

最后,祝PHP 25岁生日快乐,虽然PHP古怪得很,将来很长时间也将保持这份怪异。你给了很多人力量,并在web的崛起中发挥了关键作用。但是,如果人们到别处寻找未来,你也不要太沮丧,毕竟现在都2020年了。

本文为CSDN翻译文章,转载请注明出处。

https://hackaday.com/2020/06/29/does-php-have-a-future-or-are-twenty-five-years-enough/

科技分类资讯推荐

未来智能驾驶图鉴:车路协同成主流,道路两侧也安上雷达! - 天天要闻

未来智能驾驶图鉴:车路协同成主流,道路两侧也安上雷达!

新能源汽车风口下,智能驾驶成为起飞的猪。国内供应链发展也十分迅猛,现在10万级的车也能体验智驾,那么在未来,智能驾驶会达到什么样的状态呢?答案是“车路协同”。车端智能是基础现在带智驾功能的车都有一定的硬件基础做支撑,比如毫米波雷达、摄像头、激光雷达、芯片等,通过这些硬件,可以采集车辆周围的环境信息和信...
“英伟达已向中国三家企业通报” - 天天要闻

“英伟达已向中国三家企业通报”

据台湾《工商时报》网站5月3日报道,在针对中国市场的H20芯片遭美国政府禁售后,美国芯片大厂英伟达正加紧开发另一款符合美国出口规定的人工智能(AI)芯片,以继续保住其在中国的市场份额。
金舟投屏文件输出目录设置方法 - 天天要闻

金舟投屏文件输出目录设置方法

金舟投屏文件输出目录怎么设置?跟着我来操作。1、 打开金舟投屏应用2、 在金舟投屏窗口,点击菜单按钮。3、 在弹出的下拉菜单中,选择设置选项。4、 进入设置窗口后,选择点击文件选项。5、 在文件窗口里,点击输出目录按钮,于弹出窗口选择文件输出路径,例如:D:文件保存金舟投屏。6、 点击关闭即可完成操作(9777180)...
E-钻文件加密大师:轻松加密文件保护数据安全 - 天天要闻

E-钻文件加密大师:轻松加密文件保护数据安全

对电脑文件加密,能保护个人隐私与商业机密,提升重要文件安全性。1、 把重要文件放入一个文件夹,进行加密保护。2、 开启E-钻文件加密大师;3、 点击加密按钮,选择要加密的文件夹,然后单击确定。4、 选择加密强度与模式;5、 请再次输入密码,然后点击确认。6、 点击加密文件,输入密码后即可打开。(9777179)...
Win7文件夹加密方法大全 - 天天要闻

Win7文件夹加密方法大全

如今,隐私的重要性日益凸显。每个人都有自己的隐私,特别是在电脑中存储了大量个人文件,其中一些是不想让他人看到的重要资料。因此,我们需要为文件夹采取适当的保护措施。加密文件夹是最常用的方式之一,而加密方法多种多样。这次我们将分享一种简单易行的加密技巧,供大家参考使用。1、 在百度搜索强杰隐身侠下载,下载...
隐身侠的软硬件区别 - 天天要闻

隐身侠的软硬件区别

隐身侠是保障信息安全的利器,可用于保护和备份电脑、U盘、移动硬盘及加密云盘中的重要文件与私密数据。它能有效防范因设备维修、丢失、被入侵或外借等情况导致的信息泄露或数据丢失风险,助您掌控信息资产,提升工作效率。此外,U型隐身侠还兼具普通U盘的存储功能。1、 从使用方式来看,硬件版需将购入的隐身侠硬件PCKII插...
文件夹加密秘籍:使用加密软件保护数据安全 - 天天要闻

文件夹加密秘籍:使用加密软件保护数据安全

接下来,小编将1、 下载并安装隐身侠应用查看2、 打开浏览器,搜索隐身侠,下载并安装软件,操作简单,所示。3、 双击图标开启隐身侠4、 安装软件后,会提示重启电脑,请重启后再启动隐身侠以使其生效,所示。5、 登录账号(若无账号,注册一个即可)。6、 请输入账号与密码,参照下图。7、 创建新的保险箱8、 登录后,点击...
隐身侠操作指南:简单易懂的使用方法 - 天天要闻

隐身侠操作指南:简单易懂的使用方法

隐身侠是一款保护电脑和移动存储设备中重要文件与隐私信息的新一代信息安全产品。它能轻松加密硬盘、U盘等存储设备中的数据,已通过多项权威认证。产品外形酷似小型U盘,不仅可作为普通U盘使用,还能充当电脑信息安全的防护工具,简单易用,一分钟学会操作,是保障个人电脑隐私安全的理想选择。1、 首次设置使用2、 平常操...
金舟截图软件图片输出格式设置方法 - 天天要闻

金舟截图软件图片输出格式设置方法

1、 在右侧弹出栏中,点击程序设置选项。2、 在程序设置窗口,点击图片输出格式按钮,于弹出选项中选择所需格式,例如JPEG。3、 点击确定按钮即可完成操作(9777181)...
解决Win10系统下隐身侠无法安装的问题 - 天天要闻

解决Win10系统下隐身侠无法安装的问题

隐身侠——您的信息保密专家。它能有效保护电脑、U盘、移动硬盘以及加密云盘中的关键文件和机密数据,防范因设备维修、丢失、被盗用或黑客攻击导致的信息泄露与损失风险,助您牢牢掌控核心资源,让工作与生活更加安心无忧。此外,隐身侠本身也可作为普通U盘使用,兼具实用性与安全性。1、 请检查您的Win10系统是否已启用本...