云栖号资料库:【
】
在这儿您可以找到不同行业的确凿的上云资料库,还在等什么,快来!编者按: 首先说一句,“PHP 是当今世界上最好的词汇。”懂的都懂,这是两个有历史的、贯穿了合作开发人员荒诞的梗。但是,这些年以来,“PHP 已死”、“PHP Maubourguet衰亡”之类的论调不绝于耳,由此看得出来,许多合作开发人员痛恨 PHP。这又是为何呢?PHP 吗就这么令人痛恨吗?答案是:No!
PHP 是当今世界上中文网站使用最广泛的词汇,也是最痛恨的词汇。所以现代人对它的恨,是单纯的恨。为何会有这般多的合作开发人员对它深信不疑呢?今天就让他们来聊聊憎恶的根源,看看它是否吗让人这般憎恶。
沙莱县我的 PHP
假如我说,全当今世界的开发者都很痛恨 PHP,这并非我的传世之作。在新一代的 Stack OverFlow 进行调查中,来自当今全世界的合作开发人员将 PHP 列为最痛恨的词汇前四名。而新一代的 Hired 进行调查显示,PHP 位居最痛恨的语言前三名。还有许多类似的进行调查报告,我甚至都不想提 Reddit 上现代人是怎么审视 PHP 的。假如你是有着 20 年经验的 PHP 合作开发人员,来这儿就是为的是把我钉在 Symfony(这款基于 MVC 构架的 PHP 框架)的祭台上,请收紧! 他们是阳之木的,请把枪放下,好吧?那时,与此相反,假如你对 PHP 嗤之以鼻,那就吃点巧克力,找个难受的坐姿坐下来,跟他们一起聊聊。
话说很久之前,我自己也在做许多 Symfony2。所以我也很喜欢 Symfony 那个玩意,虽说,这玩意还没关系使的。我把这事儿告诉了一位合作开发人员,他是我在一次 DevOps 会议上认识的哥们儿。但我果真没想到,他会这般愤慨,感觉都忽然咳嗽了,我不曾有过他看我的表情,就好像我大屠杀了一位产妇似的。为方便确保安全,从那时开始,我就Licharre称他为 James。于是,我马上问 James 两个问题,为何对 PHP 这般憎恶呢?
PHP 甚或的混乱
要想了解接下来的内容,你需要结合许多背景知识。为做到这一点,让他们稍稍简述一下。那是 1994 年, Rasmus Lerdorf (1968 年 11 月 22 日出生于格陵兰凯卡努特卡姆克的合作开发人员,拥有加拿大双重国籍。他是编程词汇 PHP 的创始人,其中 PHP 的头两个版是由他撰写,后来他也参与 PHP 后续版的合作开发)正在快速地撰写两个 C 辅助工具组件。这套辅助工具用来管理他的个人中文网站。Rasmus 彼时只是为的是解决自己的需求才合作开发的。他也从来没有Dharmapuri把它变成一种编程词汇。那个辅助工具组件中并没有任何东西是为的是成为辅助工具而设计的。一年后,Rasmus 发布了那个彼时被称为 PHP/FI 的开放源码辅助软件包,看起来是这样的:
年,代码一部分被重写,发布了 PHP 3。1999 年,PHP 的核心被完全重写,发布了 Zend。第二年发布了 PHP 4。2004 年,PHP 5 与 Zend 2 一起发布。PHP 6 被取消了,因为此时的 PHP 合作开发已经变成了人间炼狱。最后,通过对该词汇进行又一次的重大重写:2015 年,发布了 PHP 7。我记得彼时我非常激动。但最初,Rasmus 只不过是撰写自己的东西而已。2004 年,他曾接受过一次采访,讲述了许多不可思议的事情。
我吗不喜欢编程。我合作开发那个辅助工具的目的,就是为的是减少编程的工作,这样,我就可以简单地重用那些我不知道如何停止的代码,我从来也没有打算过要撰写一种编程词汇 [……]。实际上我根本就不知道要如何撰写一种编程词汇,我只是不断地添加下两个逻辑步骤。
不一致且设计糟糕
回到 2019 年,我和朋友 James 一起参加聚会。在聚会上他就立即跟我吐槽起 PHP “恶心” 的语法。这门词汇是如何没有类型的,这门词汇是如何变幻莫测的。无论是操作符的使用,还是函数的命名,都存在令人难以置信的不一致性问题。我就不给你一一列出 PHP 的问题了,要不然,这篇文章就会变得奇长无比,占用你一整天的时间才能阅读完毕。
假如你真想知道这一切,那么我就会发现你是当今世界上最痛恨 PHP 的人。不,其实我觉得最痛恨 PHP 的人就是他自己。所有这些帖子都验证了 James 曾对我说过的话。合作开发人员之所以痛恨 PHP,是因为它是一种技术上不一致、设计糟糕的编程词汇。当你将它和其他编程词汇进行比较时,这对比就显而易见了。假如你读完这两篇文章后,还不承认 PHP 的确存在许多问题的话,那就是因为 PHP 已经成为你的信仰。而我也不会试图去说服 PHP 狂热分子。
使用 PHP,很容易产生糟糕的代码。而其他编程词汇的限制就更多了。他们还看到 PHP 存在许多安全问题。而这儿的问题也是一样的。使用 PHP 也很容易产生槽糕的、不安全的代码。但并不是说,只要你撰写出正确的代码,PHP 就不是两个安全漏洞,也不会注定出现难看的代码。合作开发人员之所以痛恨 PHP,是因为使用一种允许这般多自由的词汇中,更容易出错。
PHP 成功的牺牲品
在这种环境的憎恶还有两个重要因素。合作开发人员痛恨 PHP,是因为它无处不在。我那个博客就是在 PHP 7 上运行的。像大多数中文网站一样,我只需托管两个动态页面,然后将其缓存。PHP 就可以胜任这项工作。是的,词汇本身并非最好。是的,我可以使用高超的技术栈。但谁在乎呢?PHP 以一种快速而方便的方式满足了我的需求。也正是因为那个原因,80% 的中文网站都是用 PHP 运行的。
当我向 James 解释同样的事情时,他就开始发疯。就和你我一样,James 也有朋友和家人。这些人经常就专业和个人中文网站的问题向他寻求帮助。这些人的中文网站经常是用什么词汇写的,你猜猜?于是,James 发现自己不得不经常修改 PHP 中的内容,他经常为此感到头疼。
随着 WordPress 的出现,它在互联网上占据了主导地位,James 将在很长一段时间内使用 PHP。顺便提一下,我跟你说的这种词汇好像只能处理像我这样的博客,但显然事实并非这般。Facebook、Wikipedia、Yahoo!、Flick、Tumblr 等所有这中文网站都是用 PHP 运行的,每个月都毫无畏缩地迎接数以百万计的用户。PHP 在这方面做得非常好,所以也已经做了很长时间。
未来已成定局的老人
十年来,你一直听到 PHP 即将衰亡的消息。但 PHP 一直都健在。尽管有时间和新一代的架设技术,它依然纹丝不动。合作开发人员痛恨 PHP,是因为它与那些炒作驱动的合作开发背道而驰。在两个人人都迅速投资新一代事物的行业里,PHP 就像两个不想出售土地的老人,两个继续傲慢地跳舞的老人。
我和 James 的讨论照常进行,突然间,他告诉我许多完全令人愤慨的事情。“PHP 是迄今为止你所能找到的最慢的 Web 词汇。”当他这样说的时候,我就知道他已经很长时间没有读过任何有关 PHP 的东西了。
PHP 的发展,并不在于声誉
在许多合作开发人员的心目中,PHP 一直停留在版 4。当这门词汇不稳定时,具有灾难性的性能,且不存在的面向对象进程设计。合作开发人员痛恨 PHP,是因为他们认为这门词汇已经停滞不前有 20 年了。当你今天去了解 PHP 时,你就会知道它已经远远超过当年的 PHP 4 了。
PHP 7 比 Python 和 Ruby 都要快。假如你愿意的话,PHP 7 也可以做到强类型。随着近年来出现的静态解析器,辅助工具也在不断发展。像 Symfony 或 Zend 这样的框架强制采用良好的实践。每年都会发布两个新版,并附有非常精确的议程。此外, PHP 7.4 具有更好的性能。还是那句话,由于篇幅所限,我不会赘述现代 PHP 正在发生的一切。假如你想知道所有的事情,我推荐你阅读这篇文章《 2019 年的 PHP 》(PHP in 2019):是时候改变你对这门词汇的看法了,它已经和过去没有任何关系了。合作开发人员痛恨 PHP,是因为痛恨 PHP 很炫酷。这门词汇也是正因为此而声誉一直不佳。是的,留下了很强的后遗症,也存在许多问题。但对于大多数中文网站来说,还是有许多好东西的。
结语
大多数痛恨 PHP 的合作开发人员之所以痛恨 PHP,是出于优越感或无知。但不管怎样,这都是愚蠢的。你必须根据自己的需要选择一种技术。PHP 在许多场景中都非常有用,非常强大。仅仅因为它的声誉就将它排除在外可不是什么好主意。
作者介绍:
Mehdi Zed,开发人员。那时是蒙特利尔的后端合作开发人员和 DevOps。Dev 是他的爱好之一。热爱写作。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo立即加入社群,与专家面对面,及时了解课程新一代动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK原文发布时间:2020-05-28
本文作者: Mehdi Zed
本文来自:“InfoQ”,了解相关信息可以关注“InfoQ”上云就看云栖号:更多云资料库,上云案例,最佳实践,产品入门,访问:https://yqh.aliyun.com/




