为什么开发人员讨厌 PHP
PHP 是世界上使用最广泛的网站语言,同时也是最受开发者厌恶的语言,而且是纯粹的厌恶。但为什么这么多开发者如此厌恶它呢?今天,我们将追溯这种厌恶的根源,看看它是否真的有道理。
别碰我的 PHP
如果我说全世界都讨厌 PHP,那并非我个人观点。在最新的 Stack Overflow 调查中,世界各地的开发人员将 PHP 列入最令人恐惧的五种语言之列。最新的 Hired 调查将其排在最令人讨厌的语言前两名。还有很多其他的,我甚至还没有提到Reddit上发生的事情。如果你是一位拥有 20 年经验的 PHP 开发人员,来到这里是为了把我钉在 Symfony 的祭坛上,请放松。我们是来谈谈的,放下枪。好吧,如果你非常讨厌 PHP,那就拿点爆米花,舒服地坐下来。
以前我自己也在开发 Symfony2。说实话,我挺喜欢 Symfony 的,它还不错。我把这件事告诉了在 DevOps 聚会上认识的一位开发者。他震惊得快要吐了,看我的眼神就像我刚杀了一个新生儿。为了方便起见,以后我叫他 James 吧。于是我立刻问了 James 一个问题:为什么大家这么讨厌他?
PHP 麻烦过去
要理解接下来会发生什么,你需要了解背景。为此,让我们稍微回顾一下。那是1994年,Rasmus Lerdorf正在快速编写一个 C 语言工具套件。这套工具套件用于管理他的个人网站。Rasmus 当时这样做只是为了满足自己的需要。他并不想把它变成一门编程语言。这套工具套件中的任何内容都不是为编程语言而设计的。一年后,Rasmus 发布了这个当时名为 PHP/FI 的开源工具包。它看起来像这样。
<!--include /text/header.html-->
<!--getenv HTTP\_USER\_AGENT-->
<!--ifsubstr $exec\_result Mozilla-->
Hey, you are using Netscape!<p>
<!--endif-->
<!--sql database select \* from table where user='$username'-->
<!--ifless $numentries 1-->
Sorry, that record does not exist<p>
<!--endif exit-->
Welcome <!--$user-->!<p>
You have <!--$index:0--> credits left in your account.<p>
<!--include /text/footer.html-->
我们与您今天在庞大的 PHP7 框架中使用的代码相去甚远,不是吗?但一切都源于此。接下来的故事是:代码由开发团队接管,PHP/FI2 于 1997 年发布。1998 年,部分代码被重写,PHP3 发布。1999 年,PHP 核心被完全重写,产生了 Zend。第二年发布了 PHP4,2004 年 PHP5 与 Zend2 发布。PHP6被取消了,因为开发已经变成了人间地狱。最后,通过另一次重大语言重写:PHP7 于 2015 年发布。我记得当时我非常兴奋。但最初,Rasmus 只是在编写自己的东西。2003 年,他接受了一次采访,讲述了一些令人难以置信的事情。
我真的不喜欢编程。我开发这个工具是为了减少编程量,这样我就可以简单地重复使用代码……我不知道该如何停止这种做法,我从来没有打算编写一门编程语言[...]。我根本不知道如何编写编程语言,我只是不断地添加下一个合乎逻辑的步骤。
不一致和糟糕的设计
2019年,我和朋友James在聚会上聊了聊。他一开口就跟我聊起了PHP“恶心”的语法,比如这门语言是如何没有类型的,以及它是如何难以预测的。无论是运算符的使用,还是函数命名中令人难以置信的不一致。我就不一一列举技术问题了,不然这篇文章你得花一整天才能读完。
如果你真的想知道一切,我发现你是世界上最讨厌 PHP 的人。不,实际上我认为最讨厌 PHP 的人是他。所有这些帖子都证实了 James 的说法。开发人员讨厌 PHP,因为它是一种技术上不一致且设计糟糕的语言。当你将它与其他语言进行比较时,对比显而易见。如果读完这两篇文章后你仍然无法承认 PHP 存在问题,那是因为它已经成为了你的信仰。而我不再试图说服那些狂热分子了。
使用 PHP 很容易编写出糟糕的代码。其他语言的限制更多。我们也发现 PHP 存在很多安全问题。这里的问题也是一样的。使用 PHP 很容易编写出糟糕且不安全的代码。但只要代码编写得当,PHP 并不会存在安全漏洞,也不会注定写出丑陋的代码。开发人员讨厌 PHP,因为使用这种赋予如此多自由度的语言更容易出错。
成功的受害者
这种普遍的仇恨还有一个重要因素。开发人员讨厌 PHP,因为它无处不在。我的博客运行在 PHP7 上。和大多数网站一样,我只需要托管一个动态页面,然后缓存。PHP 可以胜任。是的,这门语言本身并不是最好的。是的,我可以使用超级强大的技术栈。但谁在乎呢?它以快速且易于访问的方式满足了我的需求。也正因为如此,80% 的网站都运行在 PHP 上。
当我向詹姆斯解释同样的事情时,他开始抓狂了。和你我一样,詹姆斯也有朋友和家人。这些人经常向他寻求帮助,无论是工作网站还是个人网站。猜猜这些人的网站上总是用什么语言?所以詹姆斯发现自己不得不经常修改PHP代码。这让他头痛欲裂。
随着 WordPress 的出现,它实际上主宰了互联网,James 将会长期使用 PHP。顺便说一句,我跟你说话的语气好像这种语言只能处理像我这样的博客,但显然并非如此。Facebook 、维基百科、雅虎、Flickr、Tumblr 所有这些网站都使用 PHP 运行,每月毫不畏惧地迎接数百万用户。PHP在这方面做得非常好,而且已经持续了很长时间。
未来已来,老头子
十年来,PHP 即将消亡的说法一直萦绕耳畔。然而,它依然屹立不倒。尽管时间流逝,最新的技术层出不穷,它却丝毫没有动摇。开发者们痛恨 PHP,因为它与炒作驱动的开发理念背道而驰。在这个每个人都在快速投资最新技术的行业里,PHP 就像一位不愿出售土地的老人,一位继续傲慢地跳舞的老人。
我和James的讨论还在继续,突然他告诉我一件让我震惊的事。“更糟糕的是,PHP是目前为止你能找到的最慢的Web语言。”听到他这么说,我明白了James已经很久没读过任何关于PHP的文章了。
PHP 不断发展,但声誉却没有改变
在很多开发者的心目中,PHP 还停留在 PHP 4 的阶段。当时的 PHP 语言不稳定,性能糟糕,而且缺乏面向对象编程 (OOP)。开发者们讨厌 PHP,因为他们认为这门语言已经停滞了 20 年。如今,当你了解 PHP 之后,你就会知道它离 PHP 4 还很远。
PHP7 比 Python 和 Ruby 更快。如果您愿意,该语言可以实现强类型。工具也在不断发展,近年来出现了静态解析器。像 Symfony 或 Zend 这样的框架强制执行良好的实践。每年都会发布一个新版本,并制定非常明确的计划。此外, PHP7.4的性能更上一层楼。再次强调,由于篇幅原因,我不会列出现代 PHP 中发生的所有事情。如果您想了解所有内容,我建议您阅读这篇文章。现在是时候改变您对这门语言的看法了,它与过去截然不同。
开发人员讨厌 PHP,因为讨厌 PHP 很酷。正因为如此,这门语言的名声一直很差。没错,它历史悠久,问题重重。但对于大多数网站来说,它也有很多优点。
结语
大多数讨厌 PHP 的开发者要么是出于精英主义,要么是出于无知。无论如何,它都很蠢。你必须根据自己的需求来选择技术。PHP 在很多情况下都非常有用且功能强大。仅仅因为它的名声就把它排除在外并不是一个好主意。
文章来源:https://dev.to/jesuisundev/why-developers-hate-php-194i