简单谈谈PHP vs Node.js

网络正在处于一个日新月异的发展时代。服务器端开发人员在选择语言的时候非常困惑,有长期占主导地位的语言,例如C、Java和Perl,也有专注于web开发的语言,例如Ruby、Clojure和Go。只要你的项目运行良好,你的选择就显得没有那么重要了。

  但是如何让这些新的web开发人员做出一个正确的选择呢?

  我不希望展开一场PHP、NodeJs两大阵营之间的战争,我将会对比这两种语言所在领域的发展状况:

PHP

Rasmus Lerdorf在1994年创造出了PHP。它是由安装在web服务器(Apache、Ngix)上的组件运行的。

PHP代码可以和HTML混合到一块。 对于初学者就能很快写出很有价值的代码,这并不需要太多的练习。 这让PHP变得越来越流行, 现在全球百分之八十的服务器上都在运行着PHP。全球四分之一的网站都在用的一个内容管理系统--WordPress,就是用PHP写的。

Node.js

Ryan Dahl在2009年创造了Node.js。它是基于Google的V8 JavaScript解释引擎(在Chrome浏览器里它负责执行客户端的JavaScript代码)。与其它语言不同的是Node.js内置了处理网络请求和响应的函数库,所以你不需要单独的服务器(Apache、Ngix)或者其他依赖。

Node.js虽然很新但是很快就获得了极大的追捧。在很多的大公司都有在使用,例如:Microsoft,Yahoo,LinkedIn和PayPal。

  我们所钟爱的C#、Java、Ruby、Python、Perl、Erlang、C++、Go、Dart、Scala、Haskell等等,它们呢?
  如果文章里边比较了如上所有语言的各种参数,文章将会非常长,你还会读它么?你期望一个程序员了解所有的程序开发语言吗?这显然是不可能的。我主要对PHP和Node.js做了比较,主要原因如下:

首先它们之间值得比较。两者都是开放源码,都是致力于web开发,并且都可用于相似的项目。

PHP已经发布了很久了,但是Node.js才刚刚兴起,并受到越来越多的关注。难道PHP的程序员应该相信Node.js的宣传?应该考虑转换语言?

我了解,热爱编程语言,自从20世纪90年代之后我就一直使用PHP和JavaScript,并且也有几年的Node.js的经验。除此之外我也涉猎了其他的技术,但是在这里我还不能对他们作出客观评价。

  另外,对多少语言做比较不重要,因为总会有某些地方的某些人抱怨我没有提到他们语言。

  SitePoint上的角逐

  程序员会花费很多时间来提升他们自己的编程能力。一些人有编程语言之间的延伸能力,但是这些达到更高层次的人根据很多的因素来做出他们自己的选择。从主观方面来说,你将会推进并且捍卫你的技术决策。

  SitePoint Smackdowns并没有采取“选择适合你自己的,朋友”这样的观点。我将会根据个人的经验、要求和喜好提出建议。你可能不会同意所有的我所说的所有观点,这并不重要,重要的是你的意见将会给其他人做出更加明智的选择。

  评估方法

  下面将会对 PHP 和 Node.js 进行十个轮次的比较。每个回合都会考量可以应用到任意 web 技术的常见的开发挑战。我们不会太深入讨论细节;很少有人会关心随机数生成器或数组排序的价值。

  赢得最多回合的将会是优胜者。准备好了吗?开始较量吧。。。。。。

  第一轮:起步

  创建一个“Hello World” web 页面有多快呢?在 PHP 中:

<?php echo 'Hello World!'; ?>

  这段代码可以放置在可以被 PHP 引擎解析的任意文件中--通常,是以 .php 为后缀的文件。在浏览器中输入 URL 跳转到文件即可。

  不可否认,这不是全部。这段代码只能运行于安装了 PHP 的 web 服务器(PHP 有一个内置的服务器,尽管如此,最好还是使用一个更健壮的服务器)。大多数操作系统提供了服务器软件,如 windows 上的 IIS,Mac 和 Linux 上的 Apache,尽管它们需要启动和配置。通常使用提前构建的安装程序,如 XAMPP或虚拟机镜像(如 Vagrant)。一种更简单的方式:上传你的文件到任意的 web 主机。

  对比而言,安装 Node.js 轻而易举。你可以 下载安装程序 或者 使用包管理器。 接下来让我们在 hello.js 中创建 web 页面:

var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }).listen(3000, '127.0.0.1');

  在浏览器中访问 :3000/  之前,你需要在终端输入 node hello.js 来启动应用程序 。通过上面的五行代码,我们已经创建了一个小型的 web 服务器,尽管这很令人吃惊,但是即便拥有很强客户端 JavaScript 经验的人也很难理解。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5275d22637b584e377ae1f6fd9134bae.html