Java凭借loom+valhalla+graalvm能打败Go吗? - Reddit


Loom缺失正在缩小与 Golang 的差距,并提供可能与Golang竞争的最大卖点。
但是,Loom 将在 JDK 19 中进行预览,并且可能在 JDK 22 之前不会作为最终的非预览功能发布。

Valhalla 看起来很棒,但谁知道它什么时候交付?它会在 2023 年或 2024 年预览吗?

Graal 是一项伟大的成就,但对于主流 JVM 开发并不实用。默认情况下,Go 可以轻松构建本机、微小的静态二进制文件。Graal 需要一个巨大而漫长的构建过程,并且有很多限制。可以肯定的是,这是一项了不起的技术成就,但实际上,Go 在构建小型二进制文件或 Docker 映像的快速 + 快速 + 简单构建方面具有优势,并且 Go 将在可预见的未来保持这一优势。

让 Golang 流行的一件事是它可以快速轻松地编译为静态二进制文件。Graal native 使用起来太痛苦了,除非你有一个明确支持它的框架。
也许Java的CRaC >> GraalVM IMO https://openjdk.java.net/projects/crac/正在改善这一痛苦。

不过,除了炒作之外,Go从来没有什么好处。它唯一半创新的地方是虚拟线程,但它的并行性很差,所以连这一点也没有用。对于那些说 "没有所有这些特性也是一种特性 "的人来说,当然,但至少不要为了表现力而复制复杂性。

除了很自以为是之外,锁在作用域的末端是不会被解锁的--即使你推迟解锁,它也会被函数作用域而不是最近的分支--这真是一个糟糕的想法。

Go不遗余力地限制你可以在上面创建的抽象概念。它提供了一些基本的构建模块,但它使你很难违背规律。它面向大型组织(如谷歌),这些组织有大量相对初级的工程师,需要培训他们来完成他们的项目。当你有了资历,你就不会觉得被语言的约束所束缚,因为你正在向人类编程过渡--为前面提到的初级工程师设计系统和生产工作。

相关链接:

  1. https://github.com/ebarlas/project-loom-c5m
  2. https://jbaker.io/2022/05/09/project-loom-for-distributed-systems/