创意电子

标题: 「PHP」为什么开发人员讨厌 PHP? [打印本页]

作者: 立森影像LESU    时间: 2020-7-22 19:03
标题: 「PHP」为什么开发人员讨厌 PHP?
导读: 首先说一句,“PHP 是世界上最好的语言。”懂的都懂,这是一个有历史的、承载了程序员黑色幽默的梗。但是,这些年以来,“PHP 已死”、“PHP 行将消亡”之类的言论甚嚣尘上,由此看得出,很多开发人员讨厌 PHP。这又是为什么呢?PHP 真的就这么令人讨厌吗?答案是:No!
PHP 是世界上网站使用最广泛的语言,也是最讨厌的语言。而且人们对它的恨,是纯粹的恨。为什么会有如此多的开发人员对它恨之入骨呢?今天就让我们来谈谈仇恨的源头,看看它是否真的让人如此憎恨。
别碰我的 PHP
如果我说,全世界的开发者都很讨厌 PHP,这并非我的一家之言。在最新的 Stack OverFlow 调查中,来自世界各地的开发者将 PHP 列入最讨厌的语言前五名。而最新的 Hired 调查显示,PHP 位居最讨厌的语言前两名。还有很多类似的调查结果,我甚至都不想提 Reddit 上人们是怎么看待 PHP 的。如果你是有着 20 年经验的 PHP 开发人员,来这里就是为了把我钉在 Symfony(一款基于 MVC 架构的 PHP 框架)的祭坛上,请放松! 我们是来聊天的,请把枪放下,好吧?现在,恰恰相反,如果你对 PHP 深恶痛绝,那就吃点爆米花,找个舒服的姿势坐下来,跟我们一起聊聊。
话说很久之前,我自己也在做一些 Symfony2。而且我也很喜欢 Symfony 这个玩意儿,说实话,这玩意儿还挺好使的。我把这事儿告诉了一名开发人员,他是我在一次 DevOps 会议上认识的哥们。但我万万没想到,他会如此震惊,感觉都快要呕吐了,我忘不了他看我的眼神,就好像我屠杀了一名新生儿似的。为方便起见,从现在开始,我就姑且称他为 James。于是,我马上问 James 一个问题,为什么对 PHP 如此憎恨呢?
PHP 过往的混乱
要想了解接下来的内容,你需要结合一些背景知识。为做到这一点,让我们稍微回顾一下。那是 1994 年, Rasmus Lerdorf (1968 年 11 月 22 日出生于格陵兰岛凯凯塔苏瓦克的程序员,拥有加拿大国籍。他是编程语言 PHP 的创始人,其中 PHP 的头两个版本是由他编写,后来他也参与 PHP 后续版本的开发)正在快速地编写一个 C 工具套件。这套工具用来管理他的个人网站。Rasmus 当时只是为了解决自己的需求才开发的。他也从来没有想过把它变成一种编程语言。这个工具套件中并没有任何东西是为了成为工具而设计的。一年后,Rasmus 发布了这个当时被称为 PHP/FI 的开源工具包,看起来是这样的:
  Hey, you are using Netscape!
  Sorry, that record does not exist
  Welcome !
  You have  credits left in your account.
与你今天在庞大的 PHP 7 框架中使用的东西相去甚远,不是吗?然而,所有这一切都来源于此。接下来的故事是这样的:1997 年,代码被一个开发团队接管,当年发布了 PHP/F12。1998 年,代码一部分被重写,发布了 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 是他的爱好之一。热爱写作。
作者: A随行付POS机_赵    时间: 2020-7-22 19:05
我02年开始用PHP写web管理系统,至今还在持续改善中,因为它够用了。几年前用它写过数据分析+web展示,几十万的数据也没什么压力。什么软件都有长处和短处,再说编程最核心还是数据结构和算法,语言只是具体实现方法
作者: gyzgdq    时间: 2020-7-22 19:06
规范性限制越多越高越受欢迎,越自由的语言越遭怨恨,道理很简单的,看别人代码还不如重写个。。
作者: gyzgdq    时间: 2020-7-22 19:12
php需要因为太简单而又强大,所以,很多开发者难以置信,一直在唱衰和用无知来鄙视它,PHP无处不在,它 以一种快速而方便的方式满足了我的需求。也正是因为这个原因,80% 的网站都是用 PHP 运行的。Facebook、Wikipedia、Yahoo!、Flick、Tumblr 等所有这网站都是用 PHP 运行的,每个月都毫无畏缩地迎接数以百万计的用户。PHP 在这方面做得非常好,而且也已经做了很长时间。php与那些炒作驱动的开发背道而驰。在一个人人都迅速投资最新事物的行业里,PHP 就像一个不想出售土地的老人,一个继续傲慢地跳舞的老人。当你今天去了解 PHP 时,你就会知道它已经远远超过当年的 PHP 4 了。PHP 7 比 Python 和 Ruby 都要快。如果你愿意的话,PHP 7 也可以做到强类型。PHP 在许多场景中都非常有用,非常强大和炫酷。
作者: qq3028236701    时间: 2020-7-22 19:14
说白了就是太自由,不同开发者会弄出一套一套的套路,接手别人的代码就是灾难噩梦。即使用了框架,编程习惯差的人做出来的东西都是噩梦。因为入门太简单,乱七八糟的东西都有,没有太多规范限制。接手维护别人代码会心态爆炸
作者: A随行付POS机_赵    时间: 2020-7-22 19:17
真正做到,前端的交给前端,后台的交给后台。那就不会有慢的服务器语言。很多人用服务器语言生成页面,这才是混乱和运行效率低下的源泉。[抠鼻]
作者: vito    时间: 2020-7-22 19:20
php用到核心函数的地方太少。只要不是太作,一套代码,无限升级迭代。java有了maven也好不了多少,不同插件之间还是存在版本冲突,这是java的硬伤!
作者: LH4206    时间: 2020-7-22 19:23
有些Java程序员平时一本正经的用java工作,喷PHP,背地里用PHP干私活真香
作者: 刘伟    时间: 2020-7-22 19:28
我就用PHP写ERP系统,一个人写前后端快捷方便,当然Java我也尝试写过,100人的公司用PHP+MYSQL完全够用,跑个100w数据也顶破天了,真正一般的中国中型公司用PHP完全够用了,我想表明不管什么语言能解决实际业务的都是好语言
作者: LH4206    时间: 2020-7-22 19:30
php没跟上时代!最终会被淘汰,但是如果php支持移动端研发的话,php会超越java,大家应该清除,全球用php写的网站最多,最起码站了百分之七八十!如果跟上了移动端app研发,那么这部分人将会进入app赌博研发领域,java之所以学习的人多,其实还是因为app的研发原来离不开java,如果当初微软推出的c#语言支持安卓开发,我想也没java什么事了,因为当初很多培训机构都亲微软这一边!
作者: 立森影像LESU    时间: 2020-7-22 19:33
最近看变量比较,谁知道一个String和一个Array比较,比较的是什么东西?if('Array'>[]){}
作者: hyff    时间: 2020-7-22 19:34
用java编码完全是自虐,建议各位尽早转php
作者: 经典    时间: 2020-7-22 19:37
主要是他简单,开发又快,抢了不少java的饭碗,所以好多java都讨厌他
作者: 经典    时间: 2020-7-22 19:41
用PHP十几年,期间也尝试过其它语言开发网站,但是真的太糟糕了。还是用PHP爽,越了解PHP越爱她,现在自己写了PHP框架,用在了多个项目,简直不要太爽
作者: gyzgdq    时间: 2020-7-22 19:44
PHP是世界上最讨厌的语言,没有之一[捂脸]
作者: A随行付POS机_赵    时间: 2020-7-22 19:48
我用asp
作者: 刘伟    时间: 2020-7-22 19:51
Java和php都搞,无比厌恶php
作者: PF3686    时间: 2020-7-22 19:53
作为一位php狂热爱好者,最喜欢看别人发帖吐槽php,说这里不好那里不好,哪一门语言有绝对好的?唉,不了解php就说php的好与坏,真是搞笑,抨击php的同时还说别的语言的好,其实自己都没搞懂是不是真的如此
作者: 经典    时间: 2020-7-22 19:57
那asp呢?
作者: 经典    时间: 2020-7-22 20:00
动态语言一时爽,代码重构火葬场
作者: A随行付POS机_赵    时间: 2020-7-22 20:03
因为国内的程序员把升级语言,升级框架作为成就,举个例子 前端团队的成就之一就是不停的升级框架 ,其实仅仅是为了刷存在感 恕我直言 这是事实。




欢迎光临 创意电子 (https://wxcydz.cc/) Powered by Discuz! X3.4