PHP正在“杀死”Python

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"最近,我突然发现自己好像又在逆潮流而动。可能我的想法与很多朋友不同,我认为PHP这个编程语言界的“混蛋”比以往任何时候都更受欢迎。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"或许你会质疑——PHP不是已经完蛋了吗?市面上已经出现了很多“更好”的编程语言,不是吗?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"答案显然是否定的,否则PHP早就消失在人们的视野当中、还被踩上一万只脚。要找到背后的根源,我们恐怕先要弄清楚所谓“更好”的语言究竟是什么意思。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果大家还不理解PHP为什么仍然活蹦乱跳,那我们可能得从编程、程序员、市场以及技术大众化等问题说起。是的,真正的原因在这里,而非代码、函数或者语法。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"曾几何时,骂PHP代表一种潮流"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"要想在如今的编码工程领域选定队伍、站稳阵营,大家首先得把除领导指定语言之外的一切竞争性编程语言先痛骂一遍。这跟功能特性无关,而是业务文化的直接体现。换言之,这样的情景常让人想起入教仪式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"程序员们是一群固执己见的家伙,包括我在内,我们都很嚣张、喜欢抨击一切自己不用或者不喜欢的语言。大家肯定都听到过工程师说“Java太烂了,C#就是坨垃圾、啥也不是。”这里具体在说什么语言并不重要,只要能博大家一笑就行。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但肆意痛斥的背后还隐藏着一种更深层次的不屑,这一点在最近的PHP与Python之争中体现得尤其明显。在很多学术人士看来,这就像是一场血腥的改朝换代、似乎有人想干掉PHP并用Python彻底取而代之。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"不信大家可以上维基百科查一查,其中LAMP堆栈词条中的“P”代表的是Python。有意思吧,20年前我刚接触LAMP的时候,这个“P”可绝对指代的是PHP——没错,既不是Python也不是Perl。我不是说情况不能演进转变,但Python怎么就在不知不觉中替代了PHP的文化地位?这确实是个值得深思的问题。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"对于大多数程序员来说,我们会在学校里学习Python以及其他一些在现实场景中可能永远用不上的小众语言。大家多少会听到教授或者其他从业者说出“PHP很烂”之类的话,但如果深究下去,我们会发现他们可能从来没认真写过哪怕一行PHP代码。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"事实上,光是想想有人在全职写PHP代码都会让我们心底一寒,如同亲眼见到恶魔撒旦真的有忠实信徒一般。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"这种对PHP的蔑视其实相当合乎逻辑,甚至在程序员群体当中形成了一种内生性的共识。跟朋友们坐在星巴克享受下午时光,顺便吐槽一下特朗普、流行摇滚还有PHP,岂不美哉!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"此外还有编程纯粹主义者,他们愿意浪费大量宝贵时间来论证PHP为什么真就那么烂。大多数争论都围绕着他们不喜欢的某些设计倾向或者细微差别展开,而且踩一捧一是这类交流中的常见伎俩了。语言嘛,必须得评出谁高谁低,毕竟紫金葫芦都要分个公母呢。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"可抱怨的也确实不少:PHP是一门类型松散的语言,所以经常孕育出糟糕的代码。(但JavaScript和Node.js也一样,怎么没见大家有那么大怨气?)PHP的函数太多了。(没错,这样太方便了,显不出程序员的水平。)函数名称不一致。(是的,当一种语言真正实现了大众化、而非被全部掌握在单独一个计算机科学博士的手里时,就会出现这样的问题。)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"咱们回归正题,可以看到针对PHP的批评意见主要源自个人偏好或者对细节的挑三拣四。如果我们愿意,也完全可以在Python、C#、Java、Go或者JavaScript等其他语言里挑出类似的毛病。作为程序员,我们就是爱抱怨,抱怨让我们快乐。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但程序员们喜欢抨击PHP的真正原因,在于我们固有的傲慢态度与不断膨胀的嫉妒心混合到了一起。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#292929","name":"user"}}],"text":"PHP确实更容易使用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"PHP诞生于上世纪九十年代中期,岁数甚至比很多少壮派程序员还大。我是从2000年初开始接触PHP的,当时它刚刚从版本4过渡到版本5。后来,我开始在自己编写的CodeIgniter ZendFramework框架中编写应用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在我看来,PHP之所以能够保持长青、多年过去仍无衰老迹象,主要原因就是它被嵌入到了全球各地的新旧应用程序当中、也被嵌入不分老少的开发者头脑当中。有些人用过几年,也有些人用了几十年,PHP都在他们心中留下了深刻印象。开发者不会消失、编写出的商业代码也没有消失,所以PHP依旧健在。而且有趣的是,Python其实诞生于1991年,比PHP还要早。而且虽然生命周期更长,但Python一直没能达到PHP目前的高度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"为什么会这样?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"从个人观点出发,我觉得跟PHP相比,Python使用起来要更麻烦。这个问题在Python 3中有所改善,但退回15年前,Python还没有PHP中开箱即用的那些“花哨功能”(函数)。很多功能必须手动安装,否则就没得用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而且长期贯穿Python语言的另一个老大难问题,就是其中的间隔语法。我真的非常讨厌这种由代码间的空格数决定分隔关系的语法。我喜欢按自己喜欢的方式分隔代码,而且完全受不了编程语言本身在这里动脑筋。大家可以随意批评我的这种习惯,但这是我自己的代码、是我亲手写的,想要按自己的风格来有错吗?如果连这点权利都不给,我诅咒自以为是的杠精们天天查bug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Python一直吹嘘这种间隔语法“易于阅读”,这明显是营销屁话。我话搁在这里——Python用的这套语法,堪称编程语言界最自以为是、最糟糕的语法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"正是这种令人难以理解的自以为是,让程序员们饱受折磨;在编程早期、还没有IDE能帮我们纠正语法错误的年代,根本就不会有多少程序员愿意正眼瞧瞧Python。反正我自己是不想。更确切地说,这也是Python语言在诞生的前十年一直拿不下可观市场份额的一大原因。没错,这种设计压根没有用户友好性可言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另外,Python语言的存在感也不强。它是作为脚本语言被嵌入到Linux发行版中的,这也是它最主要的用途所在。没有人会欢呼“耶,Python来了,我们可以用它构建网站了!”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"当然,Python也可以用来做网站,但优秀的工程师都能感受到它的特性并不适合Web开发场景。除了个人在语法层面的偏好之外,我承认Python是一种功能极为强大的语言,特别适合处理数据科学或者其他着重高精度数学运算的任务。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"人人都能上手PHP"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"过去15年以来,Python确实迎来了脱胎换骨般的更新,所以在不少层面上已经超越了PHP。但Python仍有两个沉重的包袱没能丢掉:第一,大部分更新的出现都晚了十年。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Python 3发布于2008年,它的出现破坏了向下兼容性。除非额外修改,否则Python 2代码无法与Python 3一同运行。但企业环境下动不动就有几十、上百万条老版本代码,谁愿意去费这个劲?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"公平地讲,PHP 7和8也破坏了部分PHP 5(并没有PHP 6这个版本)代码。我曾是ZendFramework社区的一员,社区一直帮助更新框架以支持旧代码的PHP 7和8上运行。好消息是,在将ZendFramework升级至PHP 7和8时,我们的遗留代码几乎没受到任何影响。因此,大部分PHP 5.6的代码都得到了良好的向下兼容效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而真正让PHP成为业界长青树的分水岭事件,也许是一家名为Automattic的小型初创企业在2005年的悄然建立。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果WordPress是用Python编写的,我敢保证PHP绝对没有今天这么得意。但我也敢说,Python会阻碍、甚至扼杀掉WordPress获得如今这样广泛成功的可能性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"一种语言或者应用程序要想在开源市场上持续生存,贡献者的使用与扩展可谓至关重要。而谁更易于上手,谁就能在行业内吸引到更多贡献者的支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作为受到科班培训的软件工程师,一切针对PHP的辱骂我都可以尝试去理解,但我想提醒大家一点——使用PHP的并不只是有着正规文凭的工程师,还有兼职人员、家庭主妇、平面设计师、公司经理、企业家甚至是小学生。没错,成千上万的小学生正在自己第一台计算机用PHP编写网页。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"也可以说,PHP就是信息时代下的BASIC语言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而作为软件工程师,很多批评者已经习惯了工程师的思维方式,却忘记这世上还有无数只想为小公司建个网站、时间跟资源都很有限的PHP用户。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"WordPress和PHP向他们敞开了热情的怀抱。是的,WordPress本身确实易于使用,但还不够全面。而补充这个短板的正是WordPress插件架构(「架构」这个词在这可能不太准确,但大家能理解就行),允许普通人用PHP编写一小段代码来实现相应变更。用不着重写整个类、也不用考什么软件工程师认证,只需要一小段代码。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"这数以百万计的业余程序员们就这样迈出了自己的编程之路,并在网络上与他人分享自己的心得、最终建立起硕大无朋的PHP技术社区。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"易于理解的PHP让普通人也能有效编写代码,它简单、没脾气、类型松散、不涉及编译,可以说是任劳任怨。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"PHP支撑着整个万维网"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"快进到15年后,如今PHP支撑着78%的Web系统。单是WordPress就在全部网站中占比近40%,并拥有近三分之二的CMS份额!更重要的是,“声名卓著”的Python在这块蛋糕上仅占10%!虽然作为竞争对手的Python死忠们对PHP充满仇恨,但Python支持的Web占比还不足1.5%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"气不气?其实没什么可气的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"对,理当如此。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"有企业客户的招聘人员联系过我,表示打算删掉所有Python Web代码并替换成PHP。这事听着挺神奇,但其实经常发生。为什么?因为有一说一,Python并不怎么适合Web应用。熟悉Python的开发者往往是数据科学及其他领域的专家,而且有经验的人才在市场上可谓供不应求。让他们搞Web开发,就挺没必要的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"企业则希望在Web上灵活一点。当他们需要扩张或者削减团队规模,也不想花几周甚至几个月慢慢找寻熟悉Python的人才。这类工程师很贵的,企业不大负担得起。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但适应不同业务规模的PHP程序员在劳动力市场上则是保质保量,甚至可以根据需要快速培训。更重要的是,就算想找一位经验丰富、拥有数十年经验的高级PHP架构师,难度也远低于在Python领域找个同等水平的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而且公司管理层也会教Python铁粉们做人。你想在没有硬性理由的前提下用Python写Web或者中间件?人家根本没那么多预算,而且要求随时方便撤换成其他工具,这些都是Python不擅长的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"要成为一名合格的应用程序架构师,首先就是学会用最有效的技术为业务或者企业提供“规模适度”的支持:我们的个人偏好不重要、技术时不时髦不重要,最重要的是多、快、好、省。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"所以我发现适合完全用Python编写的SaaS应用程序其实很少。考虑到Python在Web领域可怜的市场份额,似乎大多数应用程序架构师都跟我有着相同的判断。他们只在最适合的地方使用Python,并在更多其他适合的地方使用PHP。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"总结"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作为工程师,我们都喜欢用自己熟悉的东西,也习惯了对自己不了解的东西大加贬低。别不敢承认,咱们程序员就这毛病。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"高校一直努力把Python定位成一种通用型商业语言——但它并不是。Python更适合作为一种高端语言,专门用于运行服务器、数据科学、处理大规模复杂数据,甚至是处理加密货币采矿。这些才是它的专长。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而PHP则属于大众语言,也已经成为万维网上的客观标准。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"所以如果愿意,各位也可以继续对PHP恶语相向,没关系。但归根结底,它仍是目前Web上使用范围最广的语言;而且随着WordPress的持续增长以及PHP 7和8的持续升级,这种领导地位短期内也绝不会被动摇。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作者简介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Beau Beauchamp是一名企业级UI\/UX全栈web应用架构师和高级开发者,拥有20多年开发可扩展应用的经验。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"原文链接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/beau-beauchamp.medium.com\/php-is-killing-python-2be459364284","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/beau-beauchamp.medium.com\/php-is-killing-python-2be459364284"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章