创作不易,方便的话点点关注,谢谢本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身。
文章结尾有最新热度的文章,感兴趣的可以去看看。
文章有点长(3000字阅读时长:8分),期望您能坚持看完,并有所收获
PHP是全球网站开发中使用最为广泛的语言,但同时也是最遭人厌恶的语言,而且是那种纯粹的厌恶。可为什么这么多开发者如此讨厌它呢?今天咱们就来探寻一下这种厌恶情绪的根源,看看这种厌恶是否真的合理。如果我说PHP遭到全世界的厌恶,这可不是我个人的看法。在最新的StackOverflow调查中来自世界各地的开发者将PHP列入了最令人畏惧的五大编程语言之中。在最新的Hired调查里PHP更是赫然位居最令人讨厌的编程语言前两名。类似的情况还有很多,我甚至都还没提到Reddit上的相关情况呢。
PHP的过往问题
首先得知晓一下背景情况。咱们把时间倒回到1994年,那时拉斯穆斯·勒多夫(RasmusLerdorf)正在快速编写一套C语言工具集,这套工具是用来管理他的个人网站的。当时拉斯穆斯纯粹是为了满足自己的需求才编写的,他可没打算把它变成一门编程语言,工具集中的任何内容原本都不是为了成为编程语言而设计的。一年后拉斯穆斯发布了这个开源工具包,当时叫PHPFI,代码大概是下面这样的:
和你如今在庞大的PHP7框架中使用的代码相比,差别可太大了,对吧?但PHP就是从那时发展起来的。后面的故事是这样的:1997年,一个开发团队接手了这个代码,发布了PHPFI2。1998年对部分代码进行了重写,推出了PHP3。1999年,PHP的核心部分被完全重写,诞生了Zend。次年推出了PHP4,2004年又随着Zend2发布了PHP5。PHP6的开发则陷入了困境,最终取消了该版本的开发。后来又经过对这门语言的一次重大重写,PHP7于2015年发布了,但最初拉斯穆斯只是在编写满足自己需求的东西而已。2003年,他在一次采访中说了一些让人意想不到的话。“我真的不喜欢编程我开发这个工具是为了少写点代码,这样就能简单地复用代码……我都不知道怎么停下来,我从一开始就没打算写一门编程语言我根本就不知道怎么写编程语言,只是一步步地添加下一个合乎逻辑的步骤罢了。
不一致性与糟糕的设计
回到2019年,在一次聚会上认识的朋友聊天时,他立马就开始跟我吐槽PHP“令人作呕”的语法说这门语言没有类型检查,大多时候都让人捉摸不透,不管是在操作符的使用上,还是在函数命名那些让人难以置信的不一致性方面都是如此。我就不把那些技术问题一一罗列出来了,不然这篇文章你得看一整天。
网上那些相关帖子都印证了那位朋友跟我说的话。开发者讨厌PHP,是因为从技术层面来讲,它是一门语法不一致、设计糟糕的语言。把它和其他语言一对比,这种反差就很明显了。如果你不觉得PHP存在这些问题,那估计PHP对你来说都成信仰了,而我也不会试图去说服那些狂热分子了。用PHP的时候,很轻易就能写出质量不太好的代码,不过其他语言一般会有更多的限制规定。而且我们也能看到PHP存在很多安全问题,原因是一样的,用PHP很容易编写出不安全的代码。不过只要你将代码编写得准确无误,”PHP本身不存在安全方面“漏洞问题,也不一定会产生。开发者讨厌PHP,是因为在一门自由度这么高的语言里,更容易出现错误。
成也萧何,败也萧何
在这种普遍的厌恶情绪之中,还有一个重要的因素。开发者讨厌PHP,是因为它无处不在。我之前的博客就是用PHP7搭建的,和大多数网站一样,我只是需要托管一个动态页面,接下来进行缓存就行,PHP就能搞定这些事。没错这门语言本身算不上最好的,我也可以用超级厉害的技术栈,但谁在乎呢?它能又快又便捷地满足我的需求,也正因如此,77.4%的网站都在用PHP运行。
我把这些跟那位朋友讲的时候,他都快气疯了。和你我一样,他的也有朋友,之前找他帮忙处理他们网站上的问题。猜猜看这些人的网站用的是什么编程语言?所以他经常得去修改PHP代码,这可让他头疼不已。
随着在互联网上占据主导地位的WordPress的出现,他还得长时间和PHP打交道呢。顺便说一下,我这么说好像让人感觉PHP只能用来搭建像我这样的博客似的,但显然不是这么回事儿,像脸书(Facebook)、维基百科(Wikipedia)、雅虎(Yahoo)、Flickr、汤博乐(Tumblr)这些网站都是用PHP运行的,每个月都能毫无压力地接待数百万用户呢,PHP在这方面做得很好,而且已经持续运作很长时间了。
廉颇老矣,尚能饭否
这十多年来,一直有人说PHP要不行了,但它依然还在。任凭时光流逝,也不管出现了什么最新的前沿技术,它就是屹立不倒。开发者讨厌PHP,是因为它与那种追逐潮流的开发方式背道而驰。在这个大家都迅速追逐最新技术的行业里,PHP就像个不愿卖掉自己土地的老人,一个还在肆意“跳舞”的老人。我和那位朋友的讨论还在正常进行着,突然他说了句特别让人震惊的话:“而且PHP是目前你能找到的用于网络开发的最慢的语言。”他这话一出口,我就明白他很久都没关注过PHP的相关情况了。
PHP在发展,坏名声依旧
在很多开发者的印象中,PHP还停留在版本4的阶段呢,那时这门语言还不稳定,性能糟糕,面向对象编程(OOP)功能也近乎没有。开发者讨厌PHP,是因为他们觉得这门语言已经停滞不前20年了。但了解如今的PHP就会知道,它和PHP4相比已经大不一样了。PHP的运行速度比Python和Ruby都要快,倘若你乐意的话,它还能够进行强类型检查。相关的工具也在不断发展,这几年出现了静态解析器。像Symfony和Zend这样的框架也在促使开发者遵循良好的编程实践。每年都会按明确的计划发布新版本,而且PHP的性能更出色了。就不一一列举现代PHP所具备的新特性了。开发者讨厌PHP,是因为讨厌PHP似乎成了一种“潮流”这门语言也因此一直背负着极差的名声。没错它确实存在一些历史遗留问题,也有不少毛病,但对于大多数网站来说,它也有很多可取之处。
结语
大多数讨厌PHP的开发者,要么是出于精英主义,要么是因为无知才讨厌它的,不管是哪种原因,都挺傻的。选择技术应该基于自身的需求,PHP在很多场景下都是非常有用且强大的,仅仅因为它的名声就将其排除在外,可不是个好方法。
点个“在看”不失联
最新热门文章推荐:
为何开发者:正在抛弃PostgreSQL、MySQL 和 MongoDB
马斯克等大佬质疑:OpenAI引领的人工智能发展道路,究竟是进步还是灾难的前奏?
国外程序员分享:C++在底层性能和实时线程处理方面碾压Rust
震撼!国外2024年AI界十大传奇人物,引领全球科技变革
多年Rust编程:学到的8个Rust性能技巧
国外大厂程序员分享: 30多场面试失败经历总结出来的经验
不要盲目刷题(LeetCode):先学会这 15 种模式,做题变得简单
还在为代码部署发愁?学会这25个Docker命令,让一切变得简单高效!
吴恩达的创新之路:从学术界到工业界的每一次突破都彻底改变了一个行业的发展轨迹
十亿行数据挑战:CUDA申请出战(从17分钟到17秒)
十亿行数据挑战:JAVA申请出战(从71秒到1.7秒的逐步优化)
十亿行数据挑战:Rust请求出战( 5 分钟到 9 秒的历程)
从北大到小米:罗福莉如何用自然语言处理技术改变国内AI格局,引发国际关注与热议
开发者的福音:10款超棒工具让你的工作效率翻倍,告别加班熬夜的痛苦!
十亿行数据挑战:python申请出战
十亿行数据挑战:go申请出战(从15分到5秒)
十亿行数据挑战:C++如何快速高效地处理海量数据?
印度裔科学家AshishVaswani的Transformer模型为何让中国AI学者刮目相看?
传统爬虫 vs AI爬虫:为什么AI能轻松应对网站结构变化,自动理解并适应不同网页内容?
训练Transformer模型:预测股票价格(教程与代码样本)
国外C++大佬分享:多年编码后发现的 8 个 C++ 性能技巧
从美国到中国:入选AI2000榜单最顶尖学者的Trevor Darrell
参考文献:《图片来源网络》《数据来源网络》