node 会超过java吗_node会替代java吗

node不会替代java,那么为什么不会替代?下面本篇文章就来给大家分析一下原因,希望对大家有所帮助。

5d4a700a05052868.jpg

原因一:

在虚拟机层面node.js基于的v8 VM看起来很不错,但和Java的VM 一比,差距甚远。

在服务器领域,特别是拥有众多CPU和大量内存的环境下,Java的VM几乎是你能在地球上找到的较好的VM。而v8既不能充分利用多CPU的性能,也不能将内存充分利用。

你能做的事情就是开很多个node.js实例来缓解,但这进一步带来了更多的问题。

原因二:

在语言层面JavaScript本身的设计让你感觉很灵活,因为它基本上是不对类型进行约束的,只有当运行过程中发生了错误才会提示你,在浏览器环境内,这算不上什么问题。

但在一个团队内进行协作时,你会深刻的明白类型系统如果能在运行前就帮你找出那些低级的类型错误问题,将会节省你多少的时间和金钱。

特别是别忘了,系统总是在演进的,一个稍微复杂些的业务系统就拥有几十个乃至上百个类型,而类型修改又往往很频繁,想想这个过程里会发生些什么你就明白了。

原因三:

在领域应用层面node.js在Web开发领域特别是其中的前端部分已经达到了惊人的繁荣程度,甚至有不少重要系统的后端部分也基于node.js完成。但如果仅凭这些就轻易的认为node.js将会一统全栈打败包括Java在内的其它语言是很幼稚的。

首先,在一个大型的系统架构中,整个系统是拆分成很多很小的业务系统的,这些系统往往通过消息队列(如RabbitMQ、Kafka等等)相互连接起来。

也许在小型Web站点中,你从来没用过这些。但相信我,在但凡稍微大一些的业务系统中,都是么干的。

这些消息队列服务存在的理由就是将各个子系统解耦。这样一来,你可以在前端部分应用node.js进行快速开发,在业务处理部分使用Java来完成。数据分析系统却可以使用Python/Scala(例如基于Spark)实现。

大型业务系统的架构者们都是些经验丰富的老手,他们知道每个语言/系统的利弊,也知道世界总在变,今天是node.js、明天也许就是另一个新秀。

因此在整个业务系统中,你要做的根本不是“统一”,反而是“分离”。这样的设计才能够预留出扩展和变更的机会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值