字体-字体+

PHP对战Node.js:一场关于开发者喜好的史诗级战役

2016-01-14 开发资讯 访问量 2557

整个故事正如好莱坞大片的经典剧情走向:两位昔日好友如今分道扬镳,甚至被迫陷入了你死我活的斗争当中。刚开始的分歧并不严重,无非是一位老友对于另一位伙伴长久以来占据、但又绝口不提的业务领域产生了点兴趣。而在现实版的这场编程语言决斗大电影中,Node.js成了那位成了好兄弟反目成仇的导火索,并由此引发一场势均力敌、旗鼓相当的大战:PHP与JavaScript,双方曾一度携手统治整个互联网世界,但如今却为了争夺开发人员的支持而向对方痛下杀手。

遥想当年,合作关系总是简单而纯粹。那时候JavaScript负责处理浏览器上的细枝末节,而PHP则管理着存在于端口80与MySQL之间的全部服务器端任务。当时双方保持着愉悦的合作心态,并不断为互联网旗下的各种关键性部件提供支持。无论是WordPress、Drupal还是Facebook,缺少了PHP、人们在网络中几乎一分钟也待不下去。

然而某位机灵的技术人员发现了一个惊人的秘密:JavaScript也完全能够运行在服务器之上。几乎在一夜之间,我们似乎根本用不着借助PHP的力量来打造下一代服务器堆栈了。单凭一种语言,我们已经能够构建起Node.js以及其它各类运行在客户机上的框架。“JavaScript无处不在”甚至成为一部分开发人员的工作信仰。

当然,这个故事的结局还没有敲定。对于每一位到处宣扬Node.js先进性以及JavaScript便捷性的开发人员来说,总有跟自己作对的家伙存在——他们更倾向于PHP深邃的代码基础以及长期稳定的实际表现。那么这位旧日支配者能够在自己多年盘踞的服务器端主场上击溃挑战方吗?JavaScript又是否会无情地推翻自己的老朋友,完成自己的天下一统野心?请大家拿起手中的爆米花桶与可乐,共同观看这场精彩纷呈的同室操戈好戏。

PHP胜出:代码与内容混合

大家在输入的过程中当然希望能将自己的思路直接转化为网站的文本内容,同时还要为进程添加分支、一部分if-then语句以保证站点拥有漂亮的视觉效果,具体取决于URL中的某些参数。又或者,我们希望能够利用单一数据库将文本或者数据加以混合。在PHP的帮助下,大家只需要打开魔法般的PHP标签,几秒之内即可开始编写代码。是的,不需要任何模板——因为一切都已经从属于模板了!也用不着使用额外的文件或者复杂架构,可编程逻辑的强大力量就在我们的指尖、等待着各位的调遣。

Node.js胜出:关注点划分

将代码与内容加以混合像一把神奇的拐杖,虽然开始能够很好地引导使用者、但最终却往往变成沉重的负担。诚然,将代码与HTML混合在一起确实相当有趣——至少前几次体验时是如此。但很多我们的代码库就会变成一大堆逻辑相互杂糅的乱麻。真正的程序员会向其中添加结构,并把修饰层从逻辑层当中划分出来。很明显,新手开发人员能够借此对项目拥有更清晰的认识,也更易于完成后续维护工作。运行在Node.js之上的各类框架正是由这样一群程序员们所打造,他们很清楚当模型、视图以及控制器得到明确划分之后,生活会变得更加美好。

PHP胜出:深邃的代码库

整个网络世界充斥着大量PHP代码。用于构建网站的各类主流平台(包括WordPress、Drupal以及Joomla等等)都是由PHP语言所写就。除了这些平台之外,大部分相关插件同样以开源代码的形式存在。总而言之,PHP代码可谓唾手可得,等待着大家对其进行下载、修改并根据需要灵活运用。

Node胜出:新生代码意味着现代功能

不可否认,成千上万的开源PHP文件确实能帮助大家更轻松地完成项目开发,但其中也有不少已达八岁高龄的WordPress插件等待并盼望着开发人员将其下载并加以运用。谁愿意用几小时、几天甚至几个礼拜时间对这些多年未曾更新的代码进行调试?至少我不愿意。Node.js插件不仅更加年轻,而且也享受到了最新架构方案所带来的种种便利。开发这部分代码的程序员们非常清楚,现代Web应用程序应当为客户端引入更多智能化元素。


标签: