NodeJs学习小结(一)之两个“怪老头”的斗争!

以下一些地方结合了点个人理解,有错误欢迎指出:

先讲一关于nodeJS起源和PHP发生战争的小故事:(本故事来自其他网站摘要):
两位老朋友间的战斗。摩擦经常开始于一位对另一位不言而喻的领域感兴趣。这部电影的编程语言版本是Node.js的引入将好友情节变成一场旗鼓相当的比赛。PHP和JavaScript,两个曾经一起统治互联网的合作伙伴现在为了开发者心中的份额开始一决雌雄。

在过去,他们的合作关系很简单。JavaScript处理浏览器上的小细节,PHP处理所有的存在于80端口和MySQL的服务器端任务。这个幸福的联合不断支持着因特网的许多关键部分。在WordPress、Drupal和Facebook上,人们几乎不会离开PHP一分钟。

但是,后来一些聪明的孩子发现他能使JavaScript运行在服务器上。突然,我们发现没必要使用PHP构建下一代服务器栈了。一种语言就足够建立Node.js和运行在客户端的框架。对一些人来说,“JavaScript无处不在”变成了咒语。

当然,结局并没有写完。相比较与吹嘘Node.js的纯粹和JavaScript无处不在的简单的程序员,还有另外的程序员,他们对深度代码库和了解PHP的稳定性感到满意。

首先先声明下php和node都是后端脚本语言。node.js是为js语言提供了后端的解决方案。通过在服务器上部署google v8引擎以实现后端功能。
但php只是服务器脚本,它只能在安装了Php语言的web服务器上运行

  1. Nodejs是用来作什么的?

总结:简单来说,是一种javascript的运行环境,能够使得javascript脱离浏览器运行。所以我们可以在本地开发时候写js来使用babel等,因为我们本地安装了node环境,我们写的用来编译ES6的js是运行在本地node环境上的.
&
什么叫babel?

Javascript在不断的发展,各种新的标准和提案层出不穷,但是由于浏览器的多样性,导致可能几年之内都无法广泛普及,babel可以让你提前使用这些语言特性,他是一种用途很多的javascript编译器,他把最新版的javascript编译成当下可以执行的版本,简言之,利用babel就可以让我们在当前的项目中随意的使用这些新最新的es6,甚至es7的语法。说白了就是把各种javascript千奇百怪的语言统统专为浏览器可以认识的语言。

&

官方:NodeJS 是基于Chrome V8引擎的 JavaScript 运行环境。NodeJS使用事件驱动,非阻塞型I/O。NodeJS的包管理生态是 NPM,是现在世界上最大的开源程序包库。

  1. PHP是用来作什么的?

    总结:php就是你和机器对话的语言,但电脑本身不懂php,所以要配置php环境让它懂,这个环境(php服务)可以理解成一个翻译器,把你输入的php语言翻译成机器语言(0011010110等).

官方:在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言。

那么两者有什么区别呢?也会有人问那个脚本语言会更好呢?那么接下来我们来分析分析吧。
在这里插入图片描述

PHP优点:混合内容的代码、深的代码库可以随便使用、相对简单、不需要客户端应用程序、PHP与MySQL和它的许多变体、编写PHP Web应用程序感到更快,编码速度快。

NODE优点:分离的内容会使程序员代码容易理解清楚,便于维护、Node.js插件不仅是新的,而且用最新体系的完整知识构建而成、闭包。你能容易地重新配置和拓展它,使强大的函数库像jQuery成为可能、接入SQL,Node.js的函数库可以做到。但Node.js也有JSON,一个与许多最新NoSQL数据库交互的通用语言,原始速度会更快。

二者要是纯做后台的话, 我更多会选择php, 因为php的封装更完善,不需要再挂其他的middleware, 各种针对后台的解决方案也更加成熟和完善。针对web的MVC框架也更加成熟, 语法上也更成熟, 这点js差点, ES6语法是很爽, 但是支持不够好, 一般需要babel转一下才行,当然编译功能可以自动化,但针对新手有学习成本。最重要是php是热更新,刷一下就能看到更改的结果, node得reload一下, 当然用node-dev也可以自动化。差不了太多,但同样,对新手而言,需要学习成本,这个成本主要是没过来人点一下的话,容易盲目的搜索而无结果。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值