REST API 的 Node js 与 Kotlin

pul*_*jay 0 backend node.js express kotlin

Kotlin 与 Node JS for REST Api's
我找不到任何关于 Kotlin 和 Node JS for REST API 之间差异的正确解释,
哪个在性能方面更好?

小智 13

让我来设定背景。它是 Kotlin/JVM 与 JS/Node.js。我们不能盲目地说这种语言更好。一般来说,Kotlin 应该更快,因为它是编译语言,与解释语言 JS 相比。

\n

无论使用哪种语言,我们都会讨论 API 架构。提供 API 服务可以通过阻塞或非阻塞方式实现(我不打算解释它是什么)。传统上,几年前 Java/Kotlin 和 Spring 一直使用阻塞架构,这提供了性能 X。相反,Node.js 基于非阻塞架构,它为我们提供了比阻塞架构更好的性能,并且架构风格是Node.js 表现更好的唯一原因。后来Spring发布了更新版本的框架来支持非阻塞架构。非阻塞风格称为响应式编程/Spring Webflux。

\n

所以现在两种语言都支持非阻塞架构。就原始语言性能而言,Kotlin 相对于编译语言来说会更好。从理论上讲,解释语言应该更慢。但未经任何测试,我们不能说哪个更好。

\n

就我个人而言,由于 OOPS,我很喜欢 Java/Spring,后来我开始使用 TS/Node.js。TS 通过类型检查消除了大部分运行时问题。但我们仍然无法将它与 Java/Kotlin 中可用的类型系统进行比较。作为一种语言,我觉得 Java/Kotlin 更优秀,而我在 JavaScript 中最喜欢的一件事是处理对象/JSON。还可以查看“Kotlin for JavaScript\xef\xbb\xbf”,它可以让您用 Kotlin 编写并转换为 JS。忽略这个“Kotlin for JavaScript\xef\xbb\xbf”功能,我计划在未来的项目中尝试非阻塞架构中的 Kotlin/Spring。如果您有 WebSockets 的用例,我认为 Node.js 会表现得更好,但我不确定 Java/Kotlin 中是否有任何库,因为我还没有探索过它。

\n

非阻塞风格的一个缺点是我需要将登录上下文对象传递给项目中的几乎所有方法。在阻塞架构中,我们将在线程本地添加登录上下文信息,以便我们可以在任何地方访问它,直到请求完成。

\n

我确信我没有完全回答你的问题。但我希望我提供的信息是有用的。

\n

如果我在任何方面错了,请纠正我。

\n