首页 » 网站推广 » php评论嵌套技巧_PHP VS Nodejs 10项大年夜PK

php评论嵌套技巧_PHP VS Nodejs 10项大年夜PK

访客 2024-11-29 0

扫一扫用手机浏览

文章目录 [+]

Craig 在书中讲到,这些比较总是有些抵牾。
作为一个故意思的随访,我们哀求 Bruno Škvorc (SitePoint 的 PHP 开拓者)和 James Hibbard (SitePoint 的一个 JavaScript 开拓者)对每一轮供应评论。

下面是他们详细的意见…

php评论嵌套技巧_PHP VS Nodejs 10项大年夜PK

第一轮:开始

php评论嵌套技巧_PHP VS Nodejs 10项大年夜PK
(图片来自网络侵删)

Round 1 寻衅是看你用每种措辞多快可以构建一个“Hello World”的页面。
这个包括搭建做事器环境所花的韶光。

据 Craig 估计,PHP 赢得这一轮,部分缘故原由是由于这种措辞“观点上更大略”,并且“对付新的开拓者来说不那么吓人”。

Bruno:

PHP 赢得”开始”这一轮纯粹是由于更多的主机支持这种措辞因此开始非常大略。
这是拿来就好用了而不须要做额外的事情。
如果更多的主机忽略利用 Node 命令行而直接采取文件上传的办法,并且在掌握面板上用一个大略的 “reload app” 键,那么两者将会一样。
然而就在屏幕上显示东西的实际语法而言,PHP 是更大略些——特殊是对那些没有编程履历的人而言。

James:

当在本地机器上开拓的时候,我没有在两者之间看到很大的不同。
在你的浏览器上运行 PHP 脚本,你须要安装一些做事器软件;要运行 Node 脚本,你须要安装 Node, 并且最好安装一个 web 框架比如express. 然而,正如 Craig 说的, PHP“观点上更大略”.Node 的进入门槛更高。
对此没有争议。

第二轮: 帮助和支持

第二轮会考量在两种措辞中,得到帮助和支持的难易程度。
PHP赢得了这一轮,紧张由于它涌现的更久一些。

Bruno:

关于这个保持沉默。

James:

我赞许这个说法。
Node是一门新技能,以是目前,帮助会少一些。
可是当Node越来越成熟的时候,这方面就不是问题了.

第三轮: 语法

第三轮比较了理解两种措辞语法的难易程度。
Craig剖断这一轮Node得胜。

Bruno:

我非常不同意这个不雅观点。
PHP的语法中的确有一些怪象,个中的很多已经被修复了,在新的版本中,还有很多要被移除。
另一方面,JS中也有“this”这个问题~

关于bullet 3 (开拓的时候,利用js你不须要在client端开拓和Server端开拓的时候做切换),我不同意这个不雅观念。
做事器环境和客户真个开拓环境已经完备不通了,大脑中的切换还是须要的。
总是有些新的语法你不能再浏览器中利用,反之亦然,以是这某种程度上也是措辞的切换。

Bullet 4 (理解 JS 会让你更希望利用它) 这从某种程度上来说我是赞许的。
我在事情中利用 JS 和 PHP多年,利用 JS 的韶光更久,但我对它却喜好甚少——只管那纯粹是个人方向。

James:

我爱 JavaScript。
我知道它有它的怪癖,并且我知道一些缘故原由,ECMAScript 2015 将会修正掉一些,并给措辞带来一部分令人激动的新特性。
JavaScript 是强有力和灵巧的,并能适应很多不同风格的编程。
与 PHP 对照,我享受利用 JavaScript。
Node(Node.js)便是个中之一。

第四轮:开拓工具

Round 4:考虑这两种技能所利用的开拓工具,Node 由于有开拓工具 npm,以是略胜一筹。

Bruno:

虽然,开拓者最初受到 npm 的鼓舞,但是现在有 leaps 和 bounds 比 npm 用着更舒畅,而且如果你在电脑上安装了同一个库的两个版本的话,leaps 和 bounds 不会让你的系统崩溃。
而且相对付 npm 而言,leaps 和 bounds 许可设计者利用递归思想,而递归思想是如此的主要,以至于当开拓者准备动手建立一个包管理器时,首先考虑的便是这一点。

npm 还有一个致命的缺陷,我把它称为“开拓者协作友好”,npm 不能很好地做到这点,对付 npm 而言只有开拓者本身能够理解自己写的东西。
末了,npm 与 Vagrant 不能很好地兼容,这直接的妨碍了您开始自己事情,就更别说 npm 不关注用户们的需求了。
npm 有一个 bug 已经存在了很多年,它导致该软件在 windows 上基本不能利用,这可不算是小问题了。
当然 PHP 也有很多屈曲的缺点,但是这些缺点并不会与你的系统之间发生问题。

的确,PHP并没有自带编译器,但我不认为它该当这样做。
这样的便利不应该由一个包管理器或者说是一个独立的运用来完成。
如果将来有一天,有人为 Node 开拓了一个很好的包管理器,把它与现有的编译器更换将会极其困难。
让它相对独立,人们可以便于切换。
此外,安装它仅须要在终端上输入一行代码,或者下载一个安装程序。

书中提到的编译器影响很小的说法,是显而易见的缺点。
自从PHP开拓完成后,编译器就影响了每一位新加入进来的 PHP 开拓者,他们中的一些佼佼者不得不将它添加到现有的流程中。
只基于编译器存在之前就有很多 PHP 用户的情由,并不能解释它的浸染较小。
事实上,自从有了它,它就产生了巨大的影响。
一些人所说的“对社区造成的影响很少“的辞吐根本没有事实依据。

现在,我不能在大多数 PHP 开拓者都希望安装 Node 这个问题上辩论,这是真的事实。
可悲的是,很多好的工具都首先基于 Node 下开拓,但我仍旧希望就像 Node-free 开拓环境一样,也可用于开拓BowerPHP。

James:

我很高兴有人加入Node。

我喜好 npm。
它易于安装,易于利用,并有数以千计的包可用于险些任何必要。
我也喜好这样的事实,npm 可以选择环球的和本地的程序包(比较之下,一些措辞如Ruby,它的标准须要将你的程序包安装在你的 Ruby 版本的阁下)。
它的工具也很棒。
一些工具,例如 Bower 和 Grunt,在我事情流中都有一个固定的位置,它们成倍地提升了我的事情效率。

其余值得一提的是,npm 已经开拓出了第3版的 β 版。
它办理了 Bruno 提到很多问题,例如嵌套node_modules 方法缺点等。

下文引用自entire smackdown:

PHP开拓职员可能希望(或须要)在某些场合安装Node.js。
反过来不是真的。

第五轮: 环境

第5轮要说的是技能的可用性和支配情形,以及被哪些平台和生态系统支持。
Craig 对付这一点也不十分明确,但是看起来彷佛更倾向于 Node。

Bruno:

Craig 说他曾比较 PHP 和 Node 在 web 方面的上风(常见的 web 开拓问题),然后说到处都用到了 JS。
首先,我们来比较 Node.js,而不是 JS 本身,其次,我们比较了两种措辞在什么环境下可以运行。
猴子比鱼要厉害,由于鱼太蠢了不能爬树,但是猴子和鱼都会拍浮。
那么我们来比较它们做得怎么样吧。

在 web 开拓环境中,PHP 得胜了。
这里是一些基于 PHP 的桌面程序工具——是的,大概你不会利用它们,但你一定会用这些基于 PHP 的命令行程序。

James:

我和 Craig 又一次达成同等。
一些特性让 Node.js 变得如此盛行(速率,可扩展性,与 JSON 密切相连,低资源占用)使它适宜于许多其他类型的运用程序,例如强有力的物联网设备。
我以为,谁会不喜好机器人呢?

Node 使得项目得到了提升,诸如NW.js(一个基于 Chromium 和 Node.js 的运用),它许可你在 HTML 和 JavaScript 上编写本地 APP。
这多令人愉快!

第六轮: 整合

第 6 轮我们来看一下数据库和驱动的整合方面,PHP 胜出紧张是由于它的年事比较大。

Bruno:

整合方面实在是平局的,PHP 熟年龄的上风,可以有更多可选项,但是也意味着要照顾很多过期技能,如 mysql 扩展 —— 我们可以升级到 PHP7 来摆脱,但多年来一贯不可用。

James:

我当然赞许这个不雅观点,这虽然看起来模糊其词,而且我很喜好这个例子:“过期的,更受欢迎的技能”。
这也很好突了 Node一个很大的优点 —— 它原生支持 JSON。
JSON 或许是 web 中最主要的数据传输格式了,同时也是最新的 NoSQL 数据库的通用构造。
JavaScript 程序中利用 JSON 是非常随意马虎的,意味着当你利用 Node 事情时,数据可以非常简洁地进行传输,不用进行格式转换了。
你可以只利用一种语法(JSON 格式)通报在浏览器、做事器和数据库之间。

第七轮:主机和支配

第七轮会看看将新运用支配到 Web 做事器是否随意马虎,在 Craig 看来,PHP 在这方面明显是赢家

Bruno:

Bruno 再一次保持沉默。

James:

这是 Node 须要努力改进的区域。
每个供应 Web 主机的公司,都供应了 PHP 和 MySQL。
你想看到输出,只须要建立一个以“.php”为扩展名的文件,在<?和?>间写一些有效的代码,上传,用浏览器访问。
但同样的方法不适用于Node。
当然,Node 主机有很多选项,但是它们须要更多的设置和命令行办法的访问,这对付初学者来说可不愉快。
毫无疑问,PHP 在这一轮赢了对手。

第八轮: 性能

第八轮 紧张关注速率。
虽然这项常常依赖于履历以及开拓团队到底多上心,Craig 把稳到 Node 在一些方面的上风。

Bruno:

缺点比比皆是。
首先,这篇文章 有关于性能的详细谈论, 个中打消了开拓者履历以及运用类型对性能的影响。
如果那篇文章依然无法让你明白抛开高下文谈性能有多愚蠢,那来我来谈谈我的不雅观点:

PHP 正在嵌入一个多线程做事器。
这使得完备绕过外部做事器成为可能,但暂时还不推举利用。
其余也有一些超快速的的做事器(像 Nginx),他们使得全体启动 PHP、派发要求的过程快到可以忽略。

PHP 的原生异步 (无壅塞 I/O)支持将在 PHP7 中推出,而且多年前 ReactPHP 就实现了类似的模式,因此这一点也毫无意义。

PHP single-request 的生命周期模式是最大的包袱。
确实,如果你纯挚的追求速率,但是这条依然可以很随意马虎绕开,不止可以通过 Memcached 和 Craig 说的类似的方法, 而是通过类似;Ajax 的方法。
顺便说一下——做事端 JS 运用默认也是 single-request的。
其余——这种 single-request 的生命周期也是一种上风,每次要求重新构建运用,避免了很多内请安题,清空垃圾内存,保持苗条干净。
你上次利用一个稳定的永劫光运行的的无内存透露的 Javascript 运用是什么时候,不论前端或后端?

关于性能的谈论现在是,而且往后也将是——平局(除非你用的是 Java,那 Java 一定输)

James:

Node 以高性能低延迟的运行时环境而有名,而且它也找到了属于自己的办法来嵌入部分500强公司的代码栈。
由于它的无壅塞 I/O 机制以及 Google Chrome V8 引擎技能,现在 Node 已经成为了“快速”以及“可扩展的”的同义词。
现在网上有很多故事,像Node 如何让公司获取更好的性能提升 以及给开拓者供应更高的生产力。
我很高兴,这回合 node 胜,但我也理解有人质疑这点。

第九轮: 程序员情结

第九轮来看一看 Craig 以为一样平常程序员们对付 PHP 和 Node 有多少感情,末了他认为,Node 得胜了。

Bruno:

你肯定看错地方了,Craig,PHP 社区令人难以自傲地激情亲切和生动,每年有超过 20 个大会和非常精彩的主题谈论。
正是这样才完成了 HHVM 的 PHP7。

其余,我想说的是我很好奇 Node 的开拓者们在利用哪个版本来事情(v0.12.5 已经开始在写了),纵然经由了 6 年的必展。
这是不成熟的和危险的(天啊,你利用一个不稳定的技能,你在故意让你的企业挂掉吗),加上一点,它忽略了一些操作系统中的旧 bug,将导致一些主要的开拓职员从这个措辞的生态系统中离开。

一些负面的经历让我不喜好 Node,紧张是由于 npm。
未来或许会改变,但现在每次利用 Node 都以为恐怖和失落望。
我们都有自己的喜好,但保持客不雅观,选择精确的工具来事情是很主要的。
但同样主要的是要许可别人试错,由于大家都是马后炮。
以是不要听 Craig 的,不要听 Jim 的,也不要听我的。
大胆去试,看看什么可以用,找些让你觉得不错的来利用,终极,那些让你觉得富有成效的便是最好的,而不是哪些只能节省一些加载韶光的。

James:

Node 很火,在 Node 的领域有很多创新,只管激情是不客不雅观的,但很高兴 Node 赢得了这一局。

第十轮:未来

第十轮着眼于两种措辞的前景,基于两种措辞在现阶段看起来都有一个出路强劲的未来,Craig 断定这一轮的结果是平局。

Bruno:

Bruno 不得不赶紧去写多写一些关于 PHP 的文章,还要掩护那让人惊叹的 SitePoint PHP 频道。

James:

James 也等不及要回到他挚爱的 JavaScript 频道,但是他留下了这些不雅观点:

平局对付这一轮来说是公正的。
Node 是一颗崛起的明星,但是如果想撼动 PHP 的宝座,他还须要付出巨大的努力。

总的来说,如果锤子是你唯一的工具,那么每个问题看起来都像一颗钉子。
Node 并不会完美适配于每一个方案,当然很多时候不该用 Node 也是非常合理的。
然而,Node 能做到的,他可以做得非常好。
这完备由你自己来做一个明智的决定,去选择一个适宜自己项目的最好的工具。

既然 Bruno 和 James 都揭橥了自己的不雅观点,那么你是怎么看这个问题的呢?

Bruno Skvorc

克罗地亚的程序员Bruno拥有打算机科学,英语和文学三个硕士学位。
他是 SitePoint 网站 php 专栏作家,还是 Diffbot.com 的开拓布道者. 他避免像瘟疫一样的遗留代码,挑选项目是只管利用最新技能,他还是一个 treadmill desk enthusiast 和活板玩家,他有一个博客:sometimes blogs.

James Hibbard

我是一个网站开拓者,目前居住在阳光明媚的德国北部。
我喜好利用 JavaScript 和 Ruby 编程,你在SitePoint 的 javascript 论坛常常能看到我。
不写代码时我喜好跑步。

来云路教室http://yun.lu参加《Web前端就业实训营》,年轻人的第一份事情,年薪20万不是梦!

快加群346392529,变身高薪程序员。

标签:

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读0 评论0