【编者按】PHP vs Node.js之争由来已久,前者用于动态网页开发,后者是用来编写高性能网络服务器的JavaScript工具包,到底他们如何?InfoWorld测试中心的Peter Wayner日前撰文指出两者的优势所在,不妨一看。 以下为译文: 这是典型好莱坞情节:分道扬镳的两
【编者按】PHP vs Node.js之争由来已久,前者用于动态网页开发,后者是用来编写高性能网络服务器的JavaScript工具包,到底他们如何?InfoWorld测试中心的Peter Wayner日前撰文指出两者的优势所在,不妨一看。
以下为译文:
这是典型好莱坞情节:分道扬镳的两位老朋友间的战斗。摩擦经常开始于一位对另一位不言而喻的领域感兴趣。这部电影的编程语言版本是Node.js的引入将好友情节变成一场旗鼓相当的比赛。PHP和JavaScript,两个曾经一起统治互联网的合作伙伴现在为了开发者心中的份额开始一决雌雄。
在过去,他们的合作关系很简单。JavaScript处理浏览器上的小细节,PHP处理所有的存在于80端口和MySQL的服务器端任务。这个幸福的联合不断支持着因特网的许多关键部分。在WordPress、Drupal和Facebook上,人们几乎不会离开PHP一分钟。
但是,后来一些聪明的孩子发现他能使JavaScript运行在服务器上。突然,我们发现没必要使用PHP构建下一代服务器栈了。一种语言就足够建立Node.js和运行在客户端的框架。对一些人来说,“JavaScript无处不在”变成了咒语。
当然,结局并没有写完。相比较与吹嘘Node.js的纯粹和JavaScript无处不在的简单的程序员,还有另外的程序员,他们对深度代码库和了解PHP的稳定性感到满意。怪老头能够击退服务器端新贵吗?JavaScript能推翻它的老朋友,实现统治世界吗?我们在微波炉里再抓一把爆米花,坐下来瞧瞧。
PHP赢在何处:混合内容的代码
Node赢在何处:分离的内容
混合内容的代码是拐杖,最终会使你受到损害。当然,在最初的两到三次,混合HTML代码是有趣的。但是不久,你的代码库乱成一团。真正的程序员添加结构,从逻辑层分离出装饰层。对新的程序员来说,代码很容易理解清楚,便于维护。运行在Node.js的框架由这样的程序员所建,他们知道当模型,视图和控制器分离时,生活会变得更好。
PHP赢在何处:深的代码库
网络充满了PHP代码。最受欢迎的构建网站平台(WordPress、Drupal和Joomla)都是用PHP编写。不仅这些开源平台,大部分他们插件也是用PHP编写。网上到处有PHP代码,它等着你去下载、修改和为你所用。
Node赢在何处:新的代码意味着更多现代特征
当然,网上有数以千计的开源PHP文件,但是一些是8岁的WordPress插件希望、祈祷有人下载它们。有谁愿意去花费几个小时、几天或者是几周的时间去倒腾那些已经好几年没有更新的代码?Node.js插件不仅是新的,而且用最新体系的完整知识构建而成。
PHP赢在何处:简单(在一定程度上)
PHP中没有太多的东西:几个处理字符串、数字的变量和基本函数。它除了把数据从80端口移动到数据库并返回,不会做的太多。这是应该做的。现代数据库是个神奇的工具,它能离开重的负载。对不应该复杂工作,PHP的复杂度是适量的。
Node赢在何处:闭包和更多的复杂性
JavaScript可能会有许多把一些人逼疯的小特质。但在大多数情况下,它是一个娱乐现代语法的现代语言,有几个有用的特征,比如闭包。你能容易地重新配置和拓展它,使强大的函数库像jQuery成为可能。你能像传递对象一样四处传递函数。为什么限制你自己呢?
PHP赢在何处:不需要客户端应用程序
所有的关于在浏览器和服务器上使用相同的语言的讨论是好的,但是如果你不需要在浏览器上使用任何语言呢?如果你运送HTML表单中数据呢?浏览器弹出,不会出现被未启动的JavaScript造成的令人头疼的事情和小故障,这个JavaScript试图在浏览器上创建一个来自二十多个web服务调用的页面。纯粹的HTML比其他东西工作更频繁,而PHP是最优化去创建HTML。为何费心在浏览器上用JavaScript呢?在服务器上建立所有操作,避免小手机上的小浏览器重载。
Node赢在何处:与HTML-fat PHP调用相对的瘦服务调用
虽然AJAX-crazy HTML5 Web应用程序有许多移动部件,他们很酷,非常有效。一旦JavaScript代码在浏览器缓存中,新数据沿着线路移动。这没有大量的HTML标记语言,不重复地去下载整个页面。只有数据改变了。如果你愿意投入时间创建一个平滑的浏览器端Web应用程序,这将会有不错的报酬。Node.js是最优化地去传送数据,仅仅只有数据通过Web服务。如果你的应用程序是复杂而又数据丰富的,这将是有效传送的良好基础。
PHP赢在何处:SQL
PHP与MySQL和它的许多变体,比如MariaDB。如果MySQL不全是正确的,还有其他的来自Oracle和Microsoft的伟大的SQL数据库。你的代码用很少的改变就能转换成你的查询。广阔的SQL世界没边界。一些最稳定,成熟的代码与SQL数据库连接,意味着所有力量也能容易地被整合到PHP项目中。它可能不是完美幸福的家庭,但它是大的。
Node.js赢在何处:JSON
如果你必须接入SQL,Node.js的函数库可以做到。但Node.js也有JSON,一个与许多最新NoSQL数据库交互的通用语言。这并不是说你不能为你的PHP栈获得JSON库,但当使用JavaScript时有些流体可使用JSON的简单性去处理。这是从浏览器到Web服务器,再到数据库的语法。冒号和花括号在每处的作用相同,这节约了你的时间。
PHP赢在何处:编码速度
对大多数开发者,编写PHP Web应用程序感到更快:没有编译器,没有部署,没有JAR文件或者预处理器——仅仅是你喜欢的编辑器和一些PHP文件目录。你的进度会不同,但就一起迅速确定项目而论,PHP是一个很好用的工具。
Node.js赢在何处:原始速度
编写JavaScript代码的过程中,当你在计算花括号和圆括号时,它有点难,但是编写成功后,你的Node.js代码可以飞。它的回调机制很巧妙,因为能帮你节约运行线程的时间。核心被建好,旨在为你做一切,这不是每个人想要的吗?
PHP vs. Node.js: An epic battle for developer mind share

Python编程解析百度地图API文档中的坐标转换功能导读:随着互联网的快速发展,地图定位功能已经成为现代人生活中不可或缺的一部分。而百度地图作为国内最受欢迎的地图服务之一,提供了一系列的API供开发者使用。本文将通过Python编程,解析百度地图API文档中的坐标转换功能,并给出相应的代码示例。一、引言在开发中,我们有时会涉及到坐标的转换问题。百度地图AP

Python解析XML中的特殊字符和转义序列XML(eXtensibleMarkupLanguage)是一种常用的数据交换格式,用于在不同系统之间传输和存储数据。在处理XML文件时,经常会遇到包含特殊字符和转义序列的情况,这可能会导致解析错误或者误解数据。因此,在使用Python解析XML文件时,我们需要了解如何处理这些特殊字符和转义序列。一、特殊字符和

随着PHP8.0的发布,许多新特性都被引入和更新了,其中包括XML解析库。PHP8.0中的XML解析库提供了更快的解析速度和更好的可读性,这对于PHP开发者来说是一个重要的提升。在本文中,我们将探讨PHP8.0中的XML解析库的新特性以及如何使用它。什么是XML解析库?XML解析库是一种软件库,用于解析和处理XML文档。XML是一种用于将数据存储为结构化文档

使用Python解析SOAP消息SOAP(SimpleObjectAccessProtocol)是一种基于XML的远程过程调用(RPC)协议,用于在网络上不同的应用程序之间进行通信。Python提供了许多库和工具来处理SOAP消息,其中最常用的是suds库。suds是Python的一个SOAP客户端库,可以用于解析和生成SOAP消息。它提供了一种简单而

使用Python解析带有命名空间的XML文档XML是一种常用的数据交换格式,能够适应各种应用场景。在处理XML文档时,有时会遇到带有命名空间(namespace)的情况。命名空间可以防止不同XML文档中元素名的冲突,提高了XML的灵活性和可扩展性。本文将介绍如何使用Python解析带有命名空间的XML文档,并给出相应的代码示例。首先,我们需要导入xml.et

PHP爬虫是一种自动化获取网页信息的程序,它可以获取网页代码、抓取数据并存储到本地或数据库中。使用爬虫可以快速获取大量的数据,为后续的数据分析和处理提供巨大的帮助。本文将介绍如何使用PHP实现一个简单的爬虫,以获取网页源码和内容解析。一、获取网页源码在开始之前,我们应该先了解一下HTTP协议和HTML的基本结构。HTTP是HyperText

PHP中的单点登录(SSO)鉴权方法解析引言:随着互联网的发展,用户通常要同时访问多个网站进行各种操作。为了提高用户体验,单点登录(SingleSign-On,简称SSO)应运而生。本文将探讨PHP中的SSO鉴权方法,并提供相应的代码示例。一、什么是单点登录(SSO)?单点登录(SSO)是一种集中化认证的方法,在多个应用系统中,用户只需要登录一次,就能访问

PHP中的HTTPBasic鉴权方法解析及应用HTTPBasic鉴权是一种简单但常用的身份验证方法,它通过在HTTP请求头中添加用户名和密码的Base64编码字符串进行身份验证。本文将介绍HTTPBasic鉴权的原理和使用方法,并提供PHP代码示例供读者参考。一、HTTPBasic鉴权原理HTTPBasic鉴权的原理非常简单,当客户端发送一个请求时


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version
Chinese version, very easy to use

Notepad++7.3.1
Easy-to-use and free code editor

Dreamweaver Mac version
Visual web development tools
