为什么PHP比以往任何时候都更受欢迎和更讨厌
我又一次发现自己在流行文化的洪流中逆流而上,提供了一个你们大多数人都不想听到的现实检验。PHP,这个编程语言的私生子,比以前更受欢迎了!为什么?
为什么?为什么PHP还没有死?外面有那么多"更好的"编程语言,对吗?
嗯,不,没有。否则,它们早就领先并摧毁了PHP所做的一切。我们需要重新审视我们对"更好的"语言的定义。
如果你在挠头,想知道为什么PHP没有死,甚至没有死亡,那可能是因为你不了解关于编程、程序员、市场和民主的一些事情。这些事情实际上与代码、函数或语法没有任何关系。
抨击PHP是一种时尚
要想在今天的编程圈子里为自己扬名,你就必须抨击那些与你所学到的语言相竞争的语言。这不是关于功能,而是关于文化。实际上,这更类似于宗教。
程序员是一个有主见的群体,非常傲慢,但我们必须克服它。我们喜欢抨击任何我们不喜欢和不使用的语言。你可以看到工程师们说这样的话:"Java很烂。C#很烂。Go很烂"。其实,什么语言并不重要。他们都会被大家批评。
但是现在似乎有一种更深的鄙视,甚至是在PHP和Python之间涌现出一种不言而喻的竞争;几乎就像学术界有什么阴谋一样,他们很想干掉PHP,用Python取代它。
甚至现在你可以在维基百科上找到LAMP技术栈神奇地包括Python的文章。咦?20年前我使用LAMP的时候可不是这样的。PHP是LAMP缩写中的"P"。它不是Python,甚至也不是Perl。我并不是说事情和定义不能改变。也许我是个阴谋论者?不具有包容性?还是Python人群在"文化上占有"我们的首字母缩写?
对我们大多数人来说,我们在大学里学习Python和其他一些我们在现实世界中可能永远不会用到的小众语言。我们的教授或其他新手告诉我们:"PHP很烂!",尽管他们中的大多数人从来没有专业地写过一行PHP。
事实上,一想到有人在专业地写PHP,你就会完全被打倒,就像人们一窝蜂地去崇拜反基督者的脚一样。
你对PHP的蔑视并不符合逻辑,而是内涵的,或者说是共同的。在星巴克和朋友们一起喝着拿铁咖啡,同时反对特朗普、Nickelback和PHP,这是一种"时尚"。
然后是编程纯粹主义者,那些浪费了他们宝贵的时间来挑剔为什么PHP这么烂的人。这些争论大多是围绕着他们不喜欢的偏好或细微差别而展开的,这样他们就可以宣传他们自己的编程宗教,呃,语言,作为统治他们所有的一环!这些抱怨从未停止过。
抱怨是无止境的。PHP是松散的类型,会促进坏的代码。(Javascript和Node.js也是如此,而你还在使用它们。)PHP有太多的函数。(是的,这对某些人来说是个问题,它太方便了,而且做得太多了。)函数名称不一致。(是的,当一种语言真正民主化的时候就会发生这种情况,而不是由一个想获得CompSci博士学位的人写的。)
这里的重点是,对PHP的批评通常属于个人偏好或吹毛求疵的小事。如果我们真的想,我们可以在Python、C#、Java、Go、Javascript或其他任何东西上找到同样的偏好性细节。但作为程序员,我们喜欢抨击PHP的真正原因是混合了我们自己固有的傲慢和不小的掩饰性的嫉妒。
PHP只是更容易使用
PHP在90年代中期就已经存在了,甚至比我们中的一些人还没有出生。我在年初开始使用PHP,当时它正从第4版过渡到第5版,然后开始用CodeIgniter、ZendFramework和我自己的自制框架编写应用程序。
我之所以提到PHP的长寿,是因为这是这种语言不会消失的主要原因--它被嵌入了,不仅仅是在全世界的新的和旧的应用程序中,而且它被嵌入了人们,不管是年轻人还是老年人,他们使用它的时间不仅仅是几年,而是几十年。既然我们不会消失,我们编写的商业代码也不会消失。
有趣的是,Python早在年就已经存在了,比PHP的出现还要早。但尽管它有更长的发展时间,它却没有达到PHP现在所享有的同等水平。
那么这是为什么呢?
就我个人而言,与PHP相比,Python使用起来很麻烦。这个问题在Python3中有所改变,但在15年前,Python还没有PHP开箱即用的所有有趣的"铃声和口哨"(功能)。你必须手动安装很多这些功能。
我发现Python的另一个问题,无论是当时还是现在,都是Python的间隔语法。我讨厌写那些由间隔决定分隔符语法的代码。我喜欢以我喜欢的方式给我的代码留出空间,我不想让我的编程语言妨碍我。你们想怎么骂我都行,但这是我该死的代码,我想怎么写就怎么写,其余的PSR纯粹主义者可以去死了。(明白我说的有主见是什么意思了吗?)
Python把它的间隔语法吹嘘为"易于阅读",但这只是营销上的废话。就像它本身一样--Python使用的是最糟糕的观点式语法。
正是这种高度主观的语法容易引入错误;而且在早期,在IDE为你纠正所有这些东西之前,我猜测开发人员只是不喜欢使用它。我知道我不喜欢。这也是,或者说,很可能是十年或更久之前,该语言遭受低采用率的部分原因。它并不是那么方便用户使用。
我也认为人们只是不知道它的存在。它作为一种脚本语言被嵌入到Linux发行版中,这就是它的主要用途。没有人跑出来大叫:"哦,Python,现在我可以建立一个网站了!"
事实上,虽然Python可以做网站,但真正优秀的工程师并没有把Python的力量看作是对网络的最佳利用。除了我个人对语法的偏好外,Python在功能上是一种非常强大的语言,特别是它的数据科学或其他重度数学用途的库,其中精度是绝对的。
PHP是一种任何人都可以使用的语言
如果不是因为两件事,我认为Python在过去15年左右的时间里进行了许多更新,现在已经可以超越PHP了。首先,它在进行这些更新时晚了十年。
年发布的Python3实际上打破了向后的兼容性。Python2的代码不能在Python3中运行,除非你修改它。如果你有一百万行的代码需要更新,那么就会很痛苦,尤其是在企业环境中。
公平地说,PHP7和8也破坏了一些PHP5(没有PHP6)的代码。我是ZendFramework1社区的一员,帮助更新了该框架以运行在PHP7和8上。幸运的是,在将ZF1升级到PHP78时,我的企业遗留代码几乎没有损坏。所以,大部分的PHP5.6代码仍然是非常向后兼容的。
但是,真正帮助推动PHP成为明星的最大的分水岭事件可能是年成立的一家名为Automattic的小创业公司。
WordPress的开源起点很低,但它改变了不仅是开发者,而且是普通人在网络上发布信息的方式。
在这之前,你最好的发布方式是Drupal、Joomla或其他一些BBS软件。(我肯定还有其他一些我遗漏的软件。)但它们都是使用起来很麻烦的,因为写它们的人是像程序员一样思考的,而不是真正的最终用户。
如果WordPress是用Python写的,是的,PHP可能会走下坡路。但是我敢说,Python会扼杀(如果不是完全阻止)WordPress实现它所享有的流星般的上升。
采用,以及延伸到贡献者的支持,对于一种语言或应用程序在开源市场上的生存是至关重要的。而没有什么比该死的容易使用的东西更能刺激这种采用。
作为一个受过大学教育的软件工程师,你可以对PHP说任何贬义的东西,但是PHP不仅仅被有血统的软件工程师所使用,它还被兼职人员、家庭主妇、平面设计师、公司经理、企业家以及第一次使用电脑写网页的小学生所使用。数以亿计的人。
可以说,PHP是信息时代的BASIC(语言)。
作为一个软件工程师,你要像一个软件工程师那样思考,而不是像一个只想为他们的小企业建立一个网站而时间和资源都有限的人那样思考。
WordPress和PHP改变了这一切。
是的,WordPress本身很容易使用,但它并不拥有一切。正是WordPress的插件架构(我在这里非常宽泛地使用了"架构"这个词),让普通人可以用PHP写很小的代码片段来进行修改,而不必重写整个课程或成为软件工程师来完成任务。
这些数以百万计的业余程序员,由于缺乏一个更好的术语,然后在网络上与其他人分享他们的成功,并发展了这个平台。
易于理解的PHP语言使普通人能够写出有效的代码。这很容易。它是没有主见的。它是松散的类型。无需编译。它只是工作。
PHP运行着整个世界的网络
近15年,今天PHP已经为78%的网络提供了动力。仅WordPress就占了所有网站的近40%,并拥有近2/3的CMS市场份额关键是Python希望它能拥有这些市场的10%!尽管敌对的Python纯粹主义者对PHP有那么多的憎恨,但Python在网络中的份额还不到1.5%。
而这是应该的。
等等。什么?
有企业客户的招聘人员联系过我,他们想把他们所有的Python网络代码撕掉,用PHP代替。虽然这可能让你感到震惊,但这种情况比它应该发生的要多。为什么呢?因为说实话,网络并不是Python代码的最佳用途。使用Python的人往往是数据科学和其他专家。而有经验的人是供不应求的。
公司往往需要灵活应变。当他们需要扩大团队或有人离开时,他们没有时间寻找几周或几个月的时间来寻找新的Python人员。Python工程师也很昂贵。
从小型企业到企业级的PHP程序员要容易得多,如果你需要的话,甚至可以培训。关键是你可以找到一个有几十年经验的经验丰富的高级PHP架构师,比你找到Python版本要容易得多。
重点是,如果你为一家公司工作,并且在没有一个真正好的理由的情况下用Python编写他们的网络或中间件,你需要被打一巴掌。你让公司背上了代码,这将使他们在以后花费大量的钱来拆除并替换成正确的工具。
应用架构师的首要工作是用最有效的技术为业务或企业的用例"量体裁衣";而不是用你的偏好给他们添堵,因为那是谷歌最新的"时尚技术",或者是他们在学校教你的东西。
在很少的用例中,我建议完全用Python编写一个SaaS应用程序;考虑到Python在网络上的市场份额,似乎大多数应用程序架构师都是这么做的。他们在Python最出色的地方使用它,在PHP最出色的地方也使用它。
总结
作为工程师,我们都喜欢使用我们所知道的东西,而对我们不知道的东西则嗤之以鼻。这就是我们的思维方式。
学院和大学都试图将Python定位为一种通用的商业语言。但它真的不是。Python被定位为运行服务器、数据科学、计算复杂的大数字、甚至是挖掘加密货币的高端语言要好得多,所有这些它都做得非常好。
而PHP则是大众的语言,它已经成为世界范围内事实上的网络语言。
所以,你可以继续抨击PHP是语言的私生子。但是在一天结束的时候,它仍然是网络上最广泛使用的语言;而且随着WordPress的持续增长和PHP7和8的新速度,这种地位不会很快改变。
________________________________________
BeauBeauchamp是一名企业UI/UX全栈网络应用程序架构师和高级开发人员,有超过20年的为美国一些顶级企业开发可扩展的云端应用的经验,包括。迪士尼、AAA、企业、Sprint和戴尔