首页 > 评论 > 关键词 > PHP最新资讯 > 正文

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

2020-11-24 20:20 · 稿源:CSDN公众号

声明:本文来自于微信公众号 CSDN(ID:CSDNnews),作者 | BEN JAMES,译者 | Arvin,责编 | 夕颜,授权站长之家转载发布。

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完全写在<!-- html comments -->标记中,语法明显不同于现代版本。

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

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

FACEBOOK和PHP

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

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

我敢肯定,可以想象如果你 是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比大多数其他语言更令人讨厌。根据最近的2020Stack Overflow开发者调查,PHP在最可怕的语言中排名第六。为什么?

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

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

Stack Overflow2020调查:最可怕语言

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

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

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

未来

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

毫无疑问,当前的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应用程序。受到社会的高度重视,它的发展积极迅速。此外,PHP8也在今年8月推出,带来一大堆新特性(其中许多特性和Facebook章节中介绍的类似),比如JIT、Union类型和改进的错误。

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

原文链接:

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

  • 相关推荐
  • 大家在看
  • 苹果代工厂代码汇总 iPhone手机代工厂代码

    苹果iPhone手机是由多家代工厂制造,比如富士康、和硕、纬创等,都是比较大的苹果代工厂,主要负责iPhone、iPad、Apple Watch等产品的代工,那么这些代工厂的代码是多少呢,我们来一起看下吧。

  • 扩大少儿编程影响力,少儿编程官宣明星体验官应采儿

    近日,国内少儿编程领域知名品牌极客晨星官宣应采儿成为其明星体验官。极客晨星品牌还表示,应采儿在育儿方面注重教导孩子规矩,陪孩子一起养成自律习惯。自律是一种重要的思维方式,也是获得成功最重要的因素。极客晨星邀请了应采儿,来和孩子们一起学编程,陪孩子养成自律习惯。 极客晨星自从2016年推出适合孩子学习的少儿编程课程以来,其影响力和好评度持续上升,受到众多家长,尤其是80后、90后家长们的好评和认可。 此次,?

  • 极客晨星是如何让孩子学习少儿编程的?

    人类经历了三次工业革命。第一次蒸汽技术革命,第二次电力技术革命,第三次计算机及信息技术革命,这三次革命极大地改善了人类的生活。 现在正在经历的机器人、量子信息及5G时代的革命,让人类的生活发生了翻天覆地的变化,而这些变化的基础就是对编程的需求。 学习编程,不但培养你的创造力与想象力,甚至顺带可以培养你的自控力,因为程序代码中一旦有一点错误,都会导致代码运行不成功,需要你非常地细心。我们都知道现在所居?

  • 企业应该选择低代码还是无代码?J2PaaS开发平台给出了答案!

    随着数字化升级需求的加快,有着革命性生产力的低代码技术正在被市场所接受,那么对于企业和开发者来说,到底是选择低代码还是无代码?全球知名行研机构Gartner近期发布了《低代码开发平台技术评估指南》,为决策者的技术选型提供参考。在Gartner的报告中,低代码主要有以下几个主流分支:下面这张图是Gartner提供的低代码决策树,清楚的展示各分支的差异,让您轻松看懂该如何在LCAP、No-Code、iBPMS和MXDP中选出适合自己的技术方?

  • 极客晨星分享:少儿编程怎么学?

    过去几十年有了电脑、互联网、手机,每一种技术带来的都是革命性的变化。对这些技术没有常识的话,我们的生活、工作可以说是寸步难行。 同样的,我们很快要进入5G时代,这是一个万物互联的时代,你家的冰箱、空调,甚至包括马桶、桌子、凳子、杯子等等,原来不具备数字联网功能的设备,都可能会被接入网络。 这个物联网的时代,世界会与人类过去几千年来的认知、习惯彻底不同。这个变化需要人类具备新的常识。 万物互联以前的世界

  • 极客晨星少儿编程:与应采儿一起陪伴孩子成长

    近日,国内少儿编程领域知名品牌极客晨星官宣应采儿成为其明星体验官。极客晨星品牌还表示,应采儿在育儿方面注重教导孩子规矩,陪孩子一起养成自律习惯。自律是一种重要的思维方式,也是获得成功最重要的因素。极客晨星邀请了应采儿,来和孩子们一起学编程,陪孩子养成自律习惯。 极客晨星自从2016年推出适合孩子学习的少儿编程课程以来,其影响力和好评度持续上升,受到众多家长,尤其是80后、90后家长们的好评和认可。 此次,?

  • 人工智能时代,极客晨星少儿编程为5-16岁青少儿培养编程思维

    时代的变更向来是由科技引领的,5G来临的当下,人工智能俨然成为下一个十年的科技发展趋势。AlphaGo赢了柯洁;百度无人巴士量产;京东开始启用机器人送快递;谷歌的AI都学会了自行freestyle...这些人工智能产物无一不是依靠编程。 作为新生代,对他们的培养也是为了推动科技时代的发展;另一方面,人工智能时代,那些简单重复性的执行工作极有可能会被机器人所替代,不懂编程或者人工智能,就和现在不懂电脑和手机一样,out了!孩

  • 极客晨星:少儿编程教学要“因材施教”

    随着AI近几年的大火,编程作为AI的核心基础技能,其教育已经呈现出越来越“低龄化”的趋势,对编程教育“抓早抓小”也成了不少家长的共识,尤其是编程体现的其实是一种抽象逻辑思维能力。根据教育认知学的理论,孩子一般会在 7 岁左右开始形成抽象逻辑思维, 10 岁左右是抽象逻辑思维的最佳形成期,所以学编程的最佳时机是小学。少儿编程教学要“因材施教” 对于孩子来说,提升学习兴趣和专注力,实现学用结合才是学好一项技能的?

  • 中国少儿编程品牌哪家好?极客晨星值得推荐

    互联网发展到现在,信息已经成为联络国际的最重要资源。每一个孩子都必须要知道“信息”、了解“信息”最终运用“信息”。AI年代的需求,在人工智能年代,编程是一项根底的技能。想要学会运用互联网信息,就要学会运用计算机语言——编程语言,由于编程便是处理信息的现代办法,是人类与计算机沟通的仅有直接途径。除了作为未来国际沟通沟通的重要东西,编程更是一种极为快乐又风趣的活动,能激发孩子无限的想象力。不仅如此,最?

  • LOL手游100036等错误代码详细解决办法 全部错误代码分享

    LOL手游中因为是玩的外服,大量的玩家都会遇到各种各样的代码错误,下面就来为大家分享一下例如100036、100093、10087、we've let too many poros in、Unable to login with an account from the regin等错误代码解释。

    lol
  • 选好课程很重要,极客晨星让孩子喜欢上少儿编程

    近年来国家对编程教育的重视度逐年提升,推动中国少儿编程教育,提升青少年科学素养、国际视野,普及科学技术正在成为当代教育新的方向。那么,学编程究竟有什么好处呢?1.提高孩子学习成绩根据国外权威机构研究表明:编程让孩子现在的学习成绩整体提高30%。编程对基础学科提升有很大帮助,包括数学、物理、在这过程中提高了孩子的逻辑思维能力,学习能力,注意力等,这些对于构建其他学科的思维帮助特别大,提高孩子的综合学科能?

  • GitHub 源代码泄露,CEO 回应:这是个意外

    今天, TypeScript 开发者 Resynth 发文称,代码托管服务 GitHub 的全部源代码被泄露。他表示,在向官方 GitHub DMCA 提交的可疑文件中,一个身份不明的人利用 GitHub 应用程序中的一个漏洞冒充 GitHub CEO Nat Friedman 上传了机密源代码。

  • 选择极客晨星少儿编程,让孩子在未来竞争中储备能量

    在选择教育机构的时候,家长都很注意机构的资质,教师团队的实力,以及课程和服务的质量。但是更为重要的是孩子学编程,要有一套科学的课程体系,才会让孩子真正学会编程。完善的编程语言体系,能够实现从简单到复杂的变换过程。 极客晨星邀请国内外高端教研团队,花了四年多时间,耗资数千万元,打磨了一套更加适合中小学生的编程课程,让孩子轻松开启快乐的编程之旅。下面小编来说下为什么要选择极客晨星? 1.趣味进阶式全课程?

  • 宫颈癌HPV疫苗之父发声:建议男性也接种

    日前,央视新闻在全球联屏中采访到了被誉为宫颈癌HPV疫苗之父的哈拉尔德楚尔豪森(Harald zur Hausen)。豪森是来自德国的生物医学家,并获得了2008年诺贝尔生理学或医学奖。

  • 号外!极客晨星少儿编程正式官宣应采儿出任明星体验官

    近日,极客晨星官方正式宣布了应采儿成为极客晨星少儿编程明星体验官。 应采儿是著名华语影视女演员、主持人。作为演员,她演技精湛,从最初《全职杀手》里青涩的Gigi,到后来《鹿鼎记》中美貌刁蛮的阿珂,再到《赵氏孤儿案》坚强隐忍的庄姬公主。她将角色诠释的丰富立体、恰到好处,获得业界众多赞赏。作为主持人,她完美控场,极富综艺感,应变力极强,可以随时接梗抛梗不尴尬,使节目完全活跃于她所营造的气氛中,收获了满满的

  • 程序员35岁后怎么办?阿里CEO张勇:最发愁他们不想写代码

    作为网上被调侃最多的职业之一,程序员身上往往有着让人矛盾的看法,一方面他们是国内收入最高的工种之一,但围绕程序员的还有各种超过常人的焦虑及压力,比如35岁这个坎,人到中年还要继续写代

  • IBM将代码风险分析器添加到基于云的CI/CD

    为了将安全性和合规性分析引入给开发人员,IBM已将其代码风险分析器功能添加到其IBM Cloud Continuous Delivery服务中。IBM将代码风险分析器描述为一种安全措施,可以将其配置为在开发人员的代码管道开始时运行,以分析和查看Git存储库以发现开源代码的问题。目的是帮助应用程序团队识别网络安全威胁,确定应用程序安全问题的优先级并解决安全问题。IBM Cloud Continuous Delivery帮助供应工具链,自动化测试和构建以及通过分析控

    IBM
  • Python之父退休后太无聊加入微软 Python已成为第二受欢迎编程语言

    【Python之父退休后太无聊加入微软】Python 创始人现年 64 岁的 Guido van Rossum 在退休一年后决定再度复出,今天宣布已加入微软开发者部门 (Developer Division),但暂时未揭晓将担任哪一项职务。

  • 20年来首次:Java被挤出全球最受欢迎两大编程语言 Python取代之

    日前,TIOBE公布了最新一期的编程语言排行榜(11月)。接近20年来的首次,Java和C没有分享前两名,虽然C语言仍旧保持第一,但Java被Python超过。尽管相当一部分认为,Python的流行是因为机器

  • HelloCode少儿编程第二期线下师资培训营圆满结束!

    值此金秋丰收佳季,HelloCode迎来了第二期线下师资培训,全国校区的新入职教师相聚北京总部,共同接受了系统全面的教学培训,在干货满满的智慧海洋中遨游一程,满载而归。10 月 30 日,“第 2 期全国新员工教学岗培训”在北京HelloCode总部圆满落幕。此次师资培训营为期 5 天,囊括课程讲解、互动教学、模拟演练、实操点评等各个方面,主要内容有HelloCode课程体系、教学理念,教具运用,教学流程讲解,教学技巧教学,试听课展示等

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议
  • 热门标签