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赢在何处:混合内容的代码
你正在打字,主意随之成为你网站中的文本。你想为进程增加一个分支,依据URL的一些参数,一点if-then句子就会使它看起来美丽。或许也许你想从数据库中参加文本或数据。用PHP,你能翻开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咨询:http://www.thinksite.cn/index.php?m=content&c=index&a=lists&catid=22