为什么开发人员讨厌PHP

2020-05-21 04:16:23

PHP是世界上使用最广泛的网站语言。它也是最令人憎恨的。这是纯粹的仇恨。但是为什么这么多开发人员这么讨厌它呢?今天我们来看看仇恨的根源,让我们看看它是否真的是正当的。

如果我说全世界都讨厌PHP,那不是我个人的观点。在最新的堆栈溢出调查中,来自世界各地的开发人员将PHP排在最可怕的5种语言之列。最新的招聘调查显示,它完全跻身最受憎恨的前两名之列。还有更多,我甚至不是在谈论Reddit上正在发生的事情。如果您20年来一直是一名PHP开发人员,为了将我钉死在symfony的祭坛上而来到这里,请放心。我们是来谈的,把枪放下。现在正好相反,如果您对PHP恨之入骨:吃点爆米花,舒舒服服地坐下来。

很久很久以前,我自己也在做一些Symfony2。坦率地说,我喜欢整个Symfony的事情,还不错。我把这件事告诉了一位开发人员,他是我在一次devops会议上认识的。他很震惊,他快要呕吐了,他看着我就像我刚杀了一个新生儿。从现在开始,为了方便起见,我要叫他詹姆斯。所以我立刻问了詹姆斯一个问题:为什么会有这么多仇恨?

要了解接下来会发生什么,您需要上下文。为了做到这一点,让我们稍微倒带一下。那是1994年,Rasmus Lerdorf正在快速编写一个C工具套件。这套工具是用来管理他的个人网站的。拉斯穆斯当时这么做只是为了他自己的需要。他不想把它变成一种编程语言。此工具套件中的任何内容都不会成为其中之一。一年后,Rasmus发布了这个名为THEN:PHP/FI的开源工具包。它看起来是这样的。

<;!--Include/Text/Header.html-->;<;!--getenv HTTP_USER_AGENT-->;<;!--ifsubstr$EXEC_Result Mozilla-->;嘿,您正在使用Netscape!<;p>;<;!--endif-->;<;!--sql数据库SELECT*FROM TABLE WHERE USER=';$USERNAME';-->;<;!--ifless$NUMBIES 1-->;对不起,P>;<;!--endif exit-->;欢迎<;!--$user--<;!<;p&>;您的帐户中还有<;!--$index:0-->;贷方。<;p&>;<;!--include/text/footer.html-->;

我们与您今天在您庞大的PHP7框架中使用的相去甚远,不是吗?然而,这一切都来自那里。接下来的故事:代码由一个开发团队接管,PHP/FI2于1997年发布。1998年,重写了一部分,并发布了PHP3。1999年,PHP的核心被完全重写以生成Zend。PHP4紧随其后,PHP5与Zend2一起于2004年发布。PHP6被取消了,因为开发变成了人间地狱。最后,通过对语言的又一次重大重写:PHP7于2015年发布。我记得当时我非常激动。但最初,拉斯穆斯只是在编写他自己的代码。2003年,他接受了一次采访,并讲述了一些令人难以置信的事情。

“我真的不喜欢编程。我构建这个工具的目的是减少编程,这样我就可以简单地重用代码…。我不知道如何阻止它,从来没有任何编写编程语言的意图[…]。。我根本不知道怎么写编程语言,我只是不停地添加下一个合乎逻辑的步骤。“。

回到2019年,我们的朋友詹姆斯在聚会上。他立即开始和我谈论PHP的“恶心”语法。如何不键入语言。语言在很大程度上是不可预测的。无论是运算符的使用,还是函数命名中令人难以置信的不一致。我将省去您的技术问题清单,否则这篇文章将花费您一整天的时间来阅读。

如果你真的想知道一切,我发现你是世界上最讨厌PHP的人。不,实际上我认为最讨厌PHP的人其实是他。所有这些帖子都证实了詹姆斯告诉我的话。开发人员讨厌PHP,因为它是一种技术上不一致的语言,设计糟糕。当你把它与其他语言进行比较时,对比是显而易见的。如果在读完这两篇文章后,您不能承认PHP有一些问题,那是因为它成了您的信仰。我也不再试图说服狂热分子。

使用PHP很容易产生糟糕的代码。其他语言有更多的限制。我们也看到PHP存在很多安全问题。这里的问题也是一样的。用PHP编写糟糕和不安全的代码非常容易。但是,如果您正确编码,PHP就不是一个安全漏洞,也不会注定是难看的代码。开发人员讨厌PHP,因为使用一种允许如此自由的语言更容易出错。

在这种环境仇恨中还有另一个重要因素。开发人员讨厌PHP,因为它无处不在。这个博客是在PHP7上运行的。像大多数Web一样,我只需要托管一个动态页面,然后将其缓存。PHP可以完成这项工作。是的,语言本身并不是最好的。是的,我可以用一个超级吸尘器堆。但谁在乎呢?它以一种快速、方便的方式满足了我的需求。也正是因为这个原因,80%的web运行在PHP中。

当我向詹姆斯解释同样的事情时,他开始发疯。就像你和我一样,詹姆斯也有朋友和家人。这些人经常在他们的专业和个人网站上向他寻求帮助。猜猜这些人的网站上总是出现什么语言?因此,James发现自己必须经常更改PHP中的内容。他会为此感到难以置信的头痛。

随着字面上主导互联网的WordPress的出现,James将在很长一段时间内使用PHP。顺便说一句,我跟你说的好像这种语言只能处理像我这样的博客,但显然不是这样的。Facebook、维基百科、雅虎、Flickr、Tumblr所有这些网站都运行在PHP上,每个月都会毫不犹豫地欢迎数以百万计的用户。PHP在这方面做得很好,而且已经做了很长时间了。

您已经听说PHP将会消亡已有10年之久。但他还在这里。尽管有时间和最新的假想技术,但它并没有移动。开发人员讨厌PHP,因为它与炒作驱动的开发相反。在一个每个人都在快速投资于最新东西的行业里,PHP是一个不想出售自己土地的老人。继续傲慢地跳舞的老人。

我和詹姆斯的讨论还在正常进行,突然他告诉了我一些完全令人震惊的事情。“最重要的是,PHP是迄今为止你能找到的最慢的web语言”。当他这样说的时候,我了解到James已经很长时间没有阅读任何关于PHP的东西了。

在许多开发人员的心目中,PHP仍然停留在版本4中,当时该语言不稳定,性能极差,不存在面向对象程序设计(OOP)。开发人员讨厌PHP,因为他们认为这门语言已经停滞不前20年了。当您今天了解PHP时,您会知道它与PHP4相去甚远。

PHP7比Python和Ruby更快。如果您愿意,语言可以是强类型的。工具也随着近年来出现的静态解析器而不断发展。像symfony或Zend这样的框架会强制执行良好的实践。每年都会发布一个新版本,议程非常精确。此外,PHP7.4在这里具有更高的性能。再一次,为了长度起见,我不会列出现代PHP中正在发生的所有事情。如果你想知道一切,我邀请你阅读这篇文章。现在是时候改变你对这门语言的看法了,它与过去的语言没有任何关系。

开发人员讨厌PHP,因为讨厌PHP很酷。正因为如此,这种语言的名声仍然非常糟糕。是的,这是一项强大的遗产,也存在许多问题。但对于大多数网站来说,也有很多好东西。

大多数讨厌PHP的开发人员讨厌它是出于精英主义或无知。不管怎样,这都是愚蠢的。您必须根据您的需要选择一种技术。PHP在许多场景中非常有用和强大。仅仅因为它的声誉就把它从方程式中剔除并不是一个好主意。