Node.js 未来会超越 Java 吗?

如题所述

‍‍

如果是说普及度,那么JavaScript本来就超越了Java,作为浏览器唯一支持语言,JavaScript的代码和应用面都超越了Java。这并不说明JavaScript有多好,只是这是唯一选择而已Node.JS是运行在服务器端的JavaScript。事实上Web服务器端一直都存在两个阵营,以Java/C#为代表的工业设计语言和以PHP/RoR为代表的快速开发语言。前者一直牢牢地占据着企业应用开发市场,而后者则普遍认为更适合灵活多变的互联网,Node.JS显然是属于后者的。但随着Java和.NET平台上的MVC技术推出,Java/Scala和C#/F#也开始蚕食互联网市场。

‍‍
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-08
‍‍

在虚拟机层面 Node.js 基于的 v8 VM 看起来很不错,但和 Java 的 VM 一比,差距甚远。在服务器领域,特别是拥有众多 CPU 和大量内存的环境下,Java 的 VM 几乎是你能在地球上找到的最好的 VM。而 v8 既不能充分利用多 CPU 的性能,也不能将内存充分利用。你唯一能做的事情就是开很多个 Node.js 实例来缓解,但这进一步带来了更多的问题。 JavaScript 本身的设计让你感觉很灵活,因为它基本上是不对类型进行约束的,只有当运行过程中发生了错误才会提示你,毕竟在浏览器环境内,这算不上什么问题;但在一个团队内进行协作时,你会深刻的明白类型系统如果能在运行前就帮你找出那些低级的类型错误问题,将会节省你多少的时间和金钱。特别是别忘了,系统总是在演进的,一个稍微复杂些的业务系统就拥有几十个乃至上百个类型,而类型修改又往往很频繁,想想这个过程里会发生些什么你就明白了。相互连接起来。也许在小型 Web 站点中,你从来没用过这些。但相信我,在但凡稍微大一些的业务系统中,都是这么干的。这些消息队列服务存在的理由就是将各个子系统解耦。这样一来,你可以在前端部分应用 Node.js 进行快速开发,在业务处理部分使用 Java 来完成。数据分析系统却可以使用 Python/Scala (例如基于 Spark)实现。大型业务系统的架构者们都是些经验丰富的老手,他们知道每个语言/系统的利弊,也知道世界总在变,是 Node.js、明天也许就是另一个新秀,因此在整个业务系统中,你要做的根本不是“统一”,反而是“分离”。这样的设计才能够预留出扩展和变更的机会。

‍‍
第2个回答  2018-01-08
‍‍

事实上工业设计语言两大阵营,Java和.NET背后庞大的开发者社区和几乎取之不尽用之不竭的开源不开源的公共类型库,一直以来都是一个极大的优势。就长远来看,我更看好工业语言阵营,因为他们的经验和组件更容易积累和复用。但在今后很长一段时间内,两大阵营仍将同时存在。由于Node.JS和Java分属不同的阵营,如果要说超越那应该是Node.JS代表的快速开发语言阵营超越了工业设计语言阵营,但两个阵营目前在各自的领域都有很大的护城河,使得这种事情几乎是不可能发生的。

‍‍
相似回答
大家正在搜