node还有前景吗
js学会后想做全栈开发的话应该学习node.js还是PHP?
js学会后想做全栈开发的话应该学习node.js还是PHP?
PHP这种“世界最好的语言”,早已跌下神坛,不利于现在的前后端分离模式的开发,而且它那糟糕的错误处理机制一直饱受诟病。移动数据时代,大量的APP,数据的迸发,迭代,使用js,配合vue,react,Angelajs等主流框架,几乎涵盖所有现有应用开发,node本身就是为了前端全栈而设计,是前端全栈的基石。
就目前发展而言,建议完全掌握js,html,css后,强化webpack,glup,es6,typescript等知识。然后迅速进入node开发后端,很快可以开发,部署应用。
在空余时间再考虑go语言作为后端语言,虽然go的热度不如Java,c和Python。但是作为五年个人开发者,个人认为Python如没有较大的机制改变,会布PHP后尘,Java虽然是大厂维护,但它底层代码十分混乱,连开发Java的公司员工都在吐槽。c是比较难的语言,不适合快速学习和部署。
Nodejs和php哪个有前景未来?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,而 PHP 是一门编程语言,二者的学习难度和适应场景不尽相同。时常将它们对比,是因为 PHP 和 Node.js 都是最广泛使用的两种服务器端技术。先出现的 PHP 与迟到的 Node.js早在 1995 年,PHP 就有了雏形,不过那时是为了制作“个人主页”。当然,现在它有了更深层次的含义——超文本预编译器,服务能力也远不止博客站点,很多公司都使用过 PHP 构建大型企业级应用,比如早期的淘宝网使用的技术正是 PHP。PHP 本是脚本语言,但是在 .php 扩展文件中,你可以写任何的 CSS、HTML、Javascript 甚至是纯文本。也可以说,PHP 是不纯粹的脚本语言。
Node.js 首次公开是在 2009 年,比 PHP 整整晚了十年。设计的出发点,是用来创建可以在 web 浏览器环境之外运行纯 JS 应用程序。这也意味着,玩转 Node.js 需要对 Javascript 有一定的理解。应用领域不同对于客户端和服务端通信少、交互不频繁的应用,使用 PHP 更加便捷。如个人博客之类的内容管理系统(Wordpress),大都使用 PHP 构建。如果客户端和服务端需要频繁通信,使用Node.js
更容易发挥性能。如单页面应用,聊天室应用,或者视频播放应用,可以充分利用 Node.js 非阻塞的特性和 I/O事件驱动。响应速度有要求如果不显示地使用异步编程方式书写 PHP 代码,PHP 默认是同步执行的,仅当上一行代码执行完成后,下一行代码才能执行。如果中间出现消耗时间长的业务逻辑,整个执行时间是累加计算的。
Node.js 代码天生是异步执行的,在多核 CPU 的服务器中,能“同时”执行多行代码,而不必等待上一行代码的执行结果。因此,使用 Node.js 往往比 PHP 有更加好的响应速度。当然,你也可以让Node.js
以同步方式运行,只需要 async、await 关键字标识即可。相对应地,让 PHP 代码异步执行,可是要复杂很多。技术栈PHP 在领域定位上属于后端,而 Node.js 确不是那么明确,虽然 Node.js 使用的语言是 Javascript,但是大多数人认为它属于后端,不同的定位会导致技术栈差别很大。使用 PHP 开发时,程序员经常在不同语言之间切换,常见的搭配组合——LAMP,即Linux,Apache HTTP Server,MySQL 和 PHP。也就是说 PHP 开发者需要对上面这几个技术栈有所涉猎。Node.js 开发则只需要精通 JavaScript,常见的搭配组合——MEAN,即MongoDB,Express.js,AngularJS 和 Node.js。其中,AngularJS 还可以是 React 或者 Vue,总之,需要对 JavaScript 有广而深的理解。甚至有言论称:Node.js 在网站方面相当于一个可编程的 Apache 服务器。在数据库方面,PHP 最常搭配 MySQL 这样的传统关系型数据库,在业界的解决方案最为成熟。而 Node.js 的最佳合作伙伴是 NoSQL,在业界使用 Node MongoDB 的解决方案最为常见。优劣得所每一项技术存在即是合理的,PHP 发展这么多年,成熟度不言而喻,经历过各大公司的广泛采用,并且如今还有大量基于 Wordpress 的网站在运行,短时间不可能被历史淘汰。不成熟的程序员是见异思迁的,只考虑技术问题。市场是理性的,考虑语言的生态,部署难易,解决方案成熟度,招聘成本等因素。在前后端分离的大背景下,选定一个方向对于新入行的程序员也是一种引导。要是选定了大前端,Node.js 是避不开的技术。真正让 Node.js 成为一个庞大生态的,反而是 npm 的出现,可以说,Node.js 与 npm 是相互成就,二者要是各自发展,反而可能都是不温不火的状态。
在业务面前,技术或者语言只是工具,Node.js 也好,PHP 也罢,很多设计思想是统一的。当掌握了一门编程语言,会发现很容易触类旁通,那时也不会纠结到底学习哪门技术了。