前几年大家都在热捧nodejs,nodejs性能高,前后台同语言,节约开发资源,但是为什么国内服务器端语言还是以php,java为主呢?nodejs在前端工程化方面,例如gulp,webpack,各种前端工程化工具都是基于nodejs,但是nodejs在服务器端却没有火起来?我明明记得前几年大家都在讨论说,nodejs写服务器端更有优势呢?
前几年大家都在热捧nodejs,nodejs性能高,前后台同语言,节约开发资源,但是为什么国内服务器端语言还是以php,java为主呢?nodejs在前端工程化方面,例如gulp,webpack,各种前端工程化工具都是基于nodejs,但是nodejs在服务器端却没有火起来?我明明记得前几年大家都在讨论说,nodejs写服务器端更有优势呢?
在虚拟机层面 Node.js 基于的 v8 VM 看起来很不错,但和 Java 的 VM 一比,差距甚远。在服务器领域,特别是拥有众多 CPU 和大量内存的环境下,Java 的 VM 几乎是你能在地球上找到的最好的 VM。而 v8 既不能充分利用多 CPU 的性能,也不能将内存充分利用。你唯一能做的事情就是开很多个 Node.js 实例来缓解,但这进一步带来了更多的问题。
Node.js 特别适合中小型系统的快速开发,而当系统变得复杂以后,Node.js 更适合充当 Web Gateway 的角色,以及用于前端开发。在这两方面它拥有绝对优势。
nodejs一直很火,但是主要是创业公司比较喜欢。对于大型公司,人家Java什么的架构如果使用nodejs重写成本很好,因此几乎不用。加上今年创业公司倒了一大片,因此nodejs就不怎么火了。
加上对nodejs比较热衷的是前端的朋友,觉得可以前后端一起使用。
而实际上,对于后端开发人员来说,怎么选都不会使用nodejs。比如我是搞数据质量的,第1选择永远都是python,连java都不用,就不要说什么nodejs了。
3 回答1.3k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答631 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.5k 阅读
2 回答942 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
不知道阿里、PayPal 和 Uber 算不算大公司?淘宝双十一就是建立在 Node 服务的基础上,算不算「火」?
实际上,在任何一家大厂,都不可能只有一种技术、架构、服务通吃。就像你不能简单地说阿里是用 Java 的或 Facebook 是用 PHP 的一样。
不知道题主如何定义「在服务端火」。如果你指的是所有公司都把原有服务替换成 Node 那么这是不可能的。
第一,即使现在出现一种新的全能技术,能秒杀所有其他语言,现有服务也不可能一夜之间都切换过去。只有可能在新的服务上应用新技术,等待新服务逐渐替换旧服务,新技术才逐渐取代老技术。这也正是如阿里等公司在 Node 上做的。
第二,一家公司采用什么技术,技术本身只是一个不那么重要的因素,更要考虑需求和成本。一家创业公司,不管用什么技术都能实现业务,老板更多地考虑的是人员成本、招人的难易度等等。PHP 和Java 都有大量从业者,而国内目前最优秀的 Node 程序员可能都集中在阿里等几个大厂里。
第三,好的程序员关注什么技术能解决什么问题,不是哪个语言比哪个语言好/火/流行。
第四,凡是能用 JavaScript 实现的,最终都会用 JavaScript 实现。