PHP与Node.js:一个史诗般开发者的分享

时间:2017-09-16 18:52

PHP与Node.js:一个史诗般开发者的分享

  【IT168 评论】两个老朋友之间最终以战斗的方式分开,这是经典的好莱坞情节,通常,摩擦开始于一个人对另一个人的说话不感兴趣时。在编程语言这部电影中,Node.js的引入使得朋友轻易地变成了怨恨对手:PHP和JavaScript,两个合作伙伴曾经一起统治互联网,但现在却彼此分开。

PHP与Node.js:一个史诗般开发者的分享


  过去的合作关系很简单。JavaScript处理浏览器上的细节,而PHP管理80端口和MySQL之间的所有服务器端任务。这是一个幸福的联盟,支持互联网的许多关键部分。在WordPress,Drupal和Facebook之间,人们几乎在网络上的每一分钟都有PHP的参与。

  然后一些聪明的开发者发现JavaScript可以用在服务器上。突然,没有必要使用PHP来构建服务器堆栈了。一种语言既可以构建Node.js,也是客户端运行框架所需要的。“JavaScript无处不在”成为了一些人的口头禅。

  从那时起,两个平台都不断地扩大和改进。Node.js的开发人员现在可以选择一个不断扩充的优秀框架集合:Express,Angular,Meteor等。列表很长,最大的问题是选择最优秀最合适的。

  PHP也加快了速度,zippy即时编译器提供的答案比以前更快。现在的PHP 7.0和HHVM都为Chrome和Node.js提供了相同的即时优化引擎V8。不仅如此,HHVM还有一个Hack,它对诸如lambda,泛型和集合等复杂编程特性提供完全支持。

  有人称赞Node.js和JavaScript,也有人对PHP的代码基础和稳定性感到满意。JavaScript还会和它的老朋友一起实现统治世界吗?

  PHP特点:混合代码

  如果你想添加一个分支,一个if-then语句就可以,看起来也很漂亮。或者也许你想混合文本或数据库中的数据。使用PHP,打开PHP标签,几秒钟就可以开始编写代码。不需要模板,因为一切都是模板!不需要额外的文件或精心设计的架构,只需要你的指尖编程。

  Node特点:代码分离

  混合代码可能最终不是什么好事。虽然,这件事很有趣,但很快你的代码就会变的逻辑混乱。真正的程序员会添加结构并将基础层与逻辑层分离。这使代码对新程序员来说更加清晰,易于理解和维护。在Node.js上运行的框架由程序员构建,程序员知道模型,视图和控制器分开是最好的。

  PHP特点:深度代码库

  网络中充满了PHP代码。用于构建网站(WordPress,Drupal,Joomla)的最流行的平台是用PHP编写的。不仅平台是开源的,大多数的插件也是如此。PHP代码无处不在。

  Node特点:更新的代码意味着更现代的功能

  当然,有成千上万伟大的开源PHP文件,但谁想要花几个小时,几天或几个星期的时间研究几年没有更新的代码呢?Node.js插件不仅更新,而且是建立在最新的架构方法上的。它们由程序员构建,程序员知道现代网络应用程序应将大部分智能推送给客户端。

  PHP特点:简单(排序)

  PHP没有太多的东西:一些变量和基本的函数,用于编译字符串和数字。除了将数据从80端口移动到数据库和回来之外做的不多,PHP是一个不复杂的工作所需的。

  Node特点:复杂的闭包

  JavaScript可能有许多小的特性,但在大多数情况下,它是一种现代语言,运行现代语法和一些有用的功能,如闭包。你可以很容易地重新配置和扩展它,使强大的库比如jQuery成为可能,你可以传递类似对象的函数。

  PHP特点:新代码正在建立

  如果你是一个程序员,想要做的不仅仅是与数据库交互,而是对结果进行格式化,现在你可以使用PHP做很多事情。Facebook的HHVM添加了对Hack的支持,Hack是一个完整的语言,充满了类型注释,泛型和lambda表达式等现代特性。使用这个会限制代码只运行在HHVM上。

  Node特点:几十种语言选项

  如果PHP用户乐意访问Hack,他们应该考虑迁移到Node.js世界,因为许多主要语言可以交叉编译以在JavaScript中运行,如Java,C#或Lisp和Scala,OCaml和Haskell。

  PHP特点:无需客户端应用程序

  在浏览器和服务器上使用相同的语言是很好的,但如果你不需要在浏览器上使用任何语言怎么办? 如果以HTML格式发送数据怎么办? 纯HTML比其他任何东西都更频繁地被使用,并且PHP已经被优化以创建它,既然如此,为什么还要在浏览器上使用JavaScript?

  Node特点:高效交付的基础