PHP是天下上利用最广泛的Web开拓措辞,它也是最令人讨厌的编程措辞。嗯嗯,这纯粹是拉仇恨,PHP是天下上最好的措辞!
但是,为什么这么多开拓职员这么讨厌它呢?本日,我们要回到仇恨的根源,看看它是否真的合理。
不要碰我的PHP!

如果我说PHP被全天下所讨厌,那不是我个人的意见。在最新的程序员编程措辞调查中,来自天下各地的开拓职员将PHP 列为最恐怖的5种措辞之一。最新的Hired调查显示,PHP在最讨厌的措辞前2名中名列前茅。还有一些调查,比如Reddit上的话题。
如果您是20年几年的PHP开拓职员,恰好在到这里进行十字军东征,放松些,将我钉在Symfony的祭坛上吧。我们在这里只是聊谈天,请放下枪,好吗?现在的事实正好相反,如果您满腔激情亲切地讨厌PHP,喝些茶,吃点爆米花,舒畅的坐下来谈。
从前,我自己在做过一些Symfony2项目。坦白说,我喜好Symfony,这个框架真的还不错。我见告了在devops会议上认识的一名开拓职员,他说他感到震荡,乃至作呕,他看着我,就像我刚行刺了一个新生儿一样。从现在开始,我称呼他为James,以简化描述。
我问James一个问题:为什么你这么恨PHP?
私信“资料”获取
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故事的别的部分:开拓小组接管了代码,并在1997年发布了PHP /FI2。1998年,PHP部分内容被重写,并发布了PHP3。在1999年,PHP的核心被完备重写,这便是Zend引擎。接着第二年发布了PHP4,并在2004年与Zend2一起发布了PHP5。PHP6后来被取消。终极,PHP7对该措辞的另一次重大重写:于2015年发布。我记得当时非常激动。但是最开始时,Lerdorf只是在写自己的东西而已。
2003年,他接管了媒体采访,讲了一些不可思议的事情:
“我真的不喜好编程。我构建此工具的目的是为了减少编程事情,以便我可以大略地重用代码……我不知道如何停滞它,从来没有打算编写一门编程措辞[…]。我根本不知道如何编写编程措辞,只是不断增加下一个逻辑步骤。”
不一致与不良设计早在2019年,我和朋友James有一次聚会。他开始与我谈论PHP不太好的语法。PHP无论是利用运算符还是函数命名都令人难以置信的不一致。
我认为最讨厌PHP的人实际上便是他,后来我查了一下他在网上发的所有这些帖子都证明了。开拓职员讨厌PHP,由于PHP是一门技能上不一致且设计不良的措辞。将其与其他措辞进行比较时,比拟显而易见,问题确实如此。
利用PHP很随意马虎就产生缺点的代码,而其他措辞有很多规范限定。我们还看到了PHP的许多安全问题,嗯关键问题就在这里:利用PHP编写缺点和不屈安的代码非常随意马虎。但是,如果编写精确的代码,PHP并不会产生安全漏洞,也不会是丑陋的代码。开拓职员讨厌PHP,由于利用这样的自由度很高的措辞随意马虎出错。
成功的受害者
PHP被拉仇恨还有其余一个主要成分。开拓职员讨厌PHP,由于现在它无处不在。比如Wordpress博客在PHP7上运行。像大多数网站一样,我只须要托管一个动态页面,然后将其缓存。PHP在这点非常可以胜任。虽然措辞本身并不是最好的。。但是谁在乎 ?它以快速且易于访问的办法知足了人们的需求。也正是由于这个缘故原由,80%的网站都在PHP中运行。
当我向James阐明时,他像疯了一样。他说自己不得不常常变动PHP中的内容,为此感到头痛。
WordPress的涌现(实际上在互联网上已占主导地位),James将长期利用PHP。顺便说一句,我正在与您交谈,就彷佛该措辞只能处理像我这样的博客一样,但事实并非如此。Facebook,Wikipedia,Yahoo,Flickr,Tumblr所有这些网站均在用PHP运行,并且每月欢迎数百万用户,而丝毫没有出什么问题。PHP已经做得很好,并且已经运行了很永劫光。
私信“资料”获取
PHP现在是老人,快要消亡
这句话已经听了十多年了,类似PHP即将消亡的预言。但是它仍旧在那,不减反增。只管现在有最新的替代技能,但它并没有太大受压缩。开拓职员讨厌PHP,由于它与新“炒作”的措辞相反。每个人都想投资最新产品,而PHP就像一位不想出让自己地皮的老人,而他在连续狂妄地跳着舞。
我与James的谈论连续进行,溘然间他见告我让人震荡的事情。“PHP在网络上最慢的措辞”。他接着说说自己已经很永劫光以来没有阅读任何PHP代码。
PHP在发展,而非荣誉
在许多开拓职员的心中,PHP仍保留在PHP4。也便是该措辞尚不稳定,性能不佳且较浅层的OOP时。开拓职员不喜好PHP,认为该措辞已经结束了20年。如今,当理解新的PHP时,您就知道它现在与PHP4已经相距甚远。
PHP7比Python和Ruby更快。如果须要,可以利用强类型的措辞比拟。近年来涌现的静态解析器也在发展,利用诸如Symfony或Zend之类的框架会逼迫采开拓者用良好实践。这些框架每年至少发布一个新版本,个中包含非常精确的操持。
PHP7.4的性能目前更高。出于篇幅考虑,不再列涌当代PHP中发生的全部事变。现在是时候改变您对这种措辞的意见,这与以前的版本毫无关联。
开拓职员讨厌PHP,由于讨厌PHP很酷。因此,这种措辞的荣誉一贯很差。是的,这有很强的遗产和很多问题。但是对付大多数网站来说,有很多的好东西。
结语
大多数讨厌PHP的开拓职员出于精英或无知而讨厌它。无论哪种办法,这都是小屈曲不明智的。人们该当根据实际需求选择一种技能,PHP在许多情形下都是非常有用且强大的。仅仅由于其荣誉而将其打消在外并不是一个好主张。
以下是网友对本文的历史评论:
电磁芯儿:说在点子上了。来自德意志的问候。
扎克:在我真正理解PHP时,我曾经很讨厌他。我曾经将Wordpress与PHP混成一谈,很多SEO书呆子将大量不良信息混在一起。我看到很多网站利用过度繁芜的JS来做一些事,而在PHP中,只须要一两行就可以搞定。
TS:这是事实。
安德森:在过去的19年里,我一贯用PHP。这是一个强大的生态系统,你会打仗到很多关键点不仅仅是PHP,这是任何一门措辞和爱好者要看到的。
比拉:过去的东西是PHP荣誉最糟糕的部分。
乔:完备赞许。我最不喜好网上的一些问题是由于我看到WordPress上看到的胆怯代码,这是这款系统的内核,WP的标准和约定让人吃惊,但是这款CMS还很稳定...
同盟:如果你想理解最新的PHP标准和实践,请用Laravel,Symphony也节省了PHP的开拓韶光。
tsu:感激!
我讨厌WordPress,但PHP是一个很好的措辞。
丹尼尔:很棒的文章。
莫特肖:为什么没有提Laravel?
天神欧巴:我曾经喜好PHP,最近我开始用MERN来开拓Web系统了。
瑞安:当前,在流量排名天下前50名的网站之一上利用PHP。该措辞未能履行其不良荣誉而使我感到惊异-它不仅快速灵巧,而且还是面向工具的。Composer软件包管理器使您可以轻松地将新库添加到项目中,而良好的框架(如Symfony和Doctrine ORM或Laravel和Eloquent ORM)使您可以构建健壮的代码,并以比许多其他措辞更快的开拓速率遵守适当的标准。如果确实是由业余开拓职员构建的,PHP旧版代码的利用确实很痛楚,但该措辞正越来越多地办理了许多此类问题(从PHP 7.4开始,您可以在变量级别和早期版本中声明类型。版本的PHP 7,他们在函数参数和函数返回中添加了类型提示。
小罗:讨厌php的人证明他不理解php,并且他是新伎俩式员。
作者:希曼。他是一名开拓职员。资深后端/ DevOps工程师。写程序是我的爱好之一,也非常喜好写作。
私信“资料”获取