20多年后,我仍爱着PHP和JavaScript!-头条
扫码关注官方订阅号
二十多年过去了,仍然有很多人对PHP和JavaScript情有独钟。
在过去的二十年间,从C到CommonLisp,从Java到Python,从C到TypeScript,我在工作中用过十多种编程语言,但我却偏偏对那些质量堪忧的语言情有独钟。
为什么说质量堪忧?因为PHP和JavaScript让人诟病的地方确实不少:PHP是一门类型松散的语言,所以经常孕育出糟糕的代码,JavaScript和Node.js也基本是这样。
即便这样,我也依然很喜欢用PHP和JavaScript来编程。
Python很好,但PHP确实更容易使用
PHP诞生于上世纪九十年代中期,岁数甚至比很多程序员还大。我是从2000年初开始接触PHP的,当时它刚刚从版本4过渡到版本5。后来,我开始在自己编写的CodeIgniterZendFramework框架中编写应用程序。
在我看来,PHP之所以能够保持长青、多年过去仍无衰老迹象,主要原因就是它被嵌入到了全球各地的新旧应用程序当中、也被嵌入不分老少的开发者头脑当中。有些人用过几年,也有些人用了几十年,PHP都在他们心中留下了深刻印象。开发者不会消失、编写出的商业代码也没有消失,所以PHP依旧健在。而且有趣的是,Python其实诞生于1991年,比PHP还要早。而且虽然生命周期更长,但Python一直没能达到PHP目前的高度。
从个人观点出发,我觉得跟PHP相比,Python使用起来要更麻烦。这个问题在Python3中有所改善,但退回15年前,Python还没有PHP中开箱即用的那些“花哨功能”(函数)。很多功能必须手动安装,否则就没得用。
而且长期贯穿Python语言的另一个老大难问题,就是其中的间隔语法。这种由代码间的空格数决定分隔关系的语法让很多人望而生厌。很多程序员喜欢按自己喜欢的方式分隔代码,而且完全受不了编程语言本身在这里动脑筋,而在这点上,PHP就做得很好。
PHP和JavaScript哪些方面让人着迷?
此外,PHP和JavaScript还有更多让人着迷的地方,具体包括以下几个方面。
真正干实事的人在用
怎样理解PHP和JavaScript对真正干实事的人大有用处?也就是说,对于那些能理解商业需求、快速迭代,并有大量开发维护项目经验的人来说,PHP和JavaScript这两种语言可谓是必需品。
多年的发展让它们和自己的生态一同成长
PHP8可不是你太奶奶用过的PHP3,而ECMAScript12也不是你太爷爷写过的JavaScript。这些老古董们所依赖的生态系统可没有原地踏步。像是CPAN、PECL、npm这类的工具让其他语言的发展卷了起来。JavaScript一直以来都是创新的温床,带动了新范式和框架的层出不穷。
它们的质量常被其他因素弥补
这类“质量堪忧”的编程语言当初可并不是因为它们的优雅而出名的。它们更可能是在速度、部署难度、可延展性、工具、开发社群、框架,或者平台等方面更胜其他竞争者一筹。
我更偏爱PHP则是因为它的CGI-bin模式,它允许分块重构遗留代码库,还提供了简单易用的缓存和扩展方式,而且,开发者也完全不需要担心资源泄露。
这些语言即使是在一些基本问题上都能出状况,这也就意味着用它们编程总会带给人们做实验的感觉。能够用并不优雅的语言写出优雅的代码总会让人享受到成功的满足感。
在这些语言面前众程序员人人平等
这些语言对程序员们的背景要求并不严格,即使是一无所知的小白都能在几天内让一个真正的网站跑起来。我当年就是一路从复制粘贴基础代码段一路成长到用PHP2和PHP3写出完全属于我自己的网站,而现在的我也能够用我积累的经验回报社群,帮助那些刚入门的初学者们,这一点让我感到非常自豪。
对十二岁小孩或刚从代码新兵训练营中毕业的年轻人所写的程序代码不屑一顾,这种自大并不可取。正是因为这些用户拥有多种教育背景,才让不甚完美的编程语言拥有了更友善、更活跃的社群环境。
没有什么能阻挡你写出好代码
无论是PHP、JavaScript、Lua,还是Perl,这些语言都提供了函数、变量、类、头等函数等行之有效的工具,有的还额外提供了trait和原型式继承。而一个优秀的软件则需要有产品定位、软件设计、命名和设计模式,通过在静态分析或单元测试中强化不变性,为开发者们提供快捷有效的反馈循环,以及一个良好的团队交流环境。这些要素可完全不依赖任何的编程语言。对于JavaScript和PHP来说,它们提供了可靠的库、实用的静态分析工具,以及出色的IDE支持,你甚至会发现,它们在工具方面比许多更“优质”的编程语言还要强大。
遗留代码库意味着产品性能的有保障,也意味着我能在其上做出更即时且有效的优化改进。对于我来说,再没有什么事情比和其他用户一起优化一款产品更美好了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright2014-2023AllRightsReserved|苏州跃动光标网络科技有限公司|