25 条回复  ·  2797 次点击
joshuacavell 初学 2025-10-24 17:20:52
Cpp 和 JAVA 都争论这个话题几十年了,各自都有完整的论述.只要生态够完整就没有必要纠结.而且都到这个体量了,编译型的新语言层出不穷,基于虚机技术的几乎只有 C#和 JAVA. C#用户怼 JAVA 正常,Cpp 作为编译型语言的旗帜和 JAVA 辩经也正常,其他语言碰瓷 JAVA 是真好笑😄
hronro 小成 2025-10-24 17:29:37
@yakun4566 你说的依赖是外部软件依赖么,这种换 JAVA 来不也还是一样?
zxjxzj9 初学 2025-10-24 17:30:23
现在来看最能解决一次编译到处运行的反而是 docker ,其次是 go 这种到处编译到处运行的,最后才是 java 这种一次编译但是要考虚拟机到处运行的。
dzdh 小成 2025-10-24 17:32:26
@yakun4566 #7 1.2x 版本前后对 win 的支持不一样好像删除了一个什么 api 。win32 啥的。https://github.com/golang/go/issues/57003
unused 初学 2025-10-24 17:34:33
@zxjxzj9 docker 只能处理依赖,解决不了架构问题
huijiewei 小成 2025-10-24 17:40:44
优势当然是有的。一个写业务的,直需要考虑在 jvm 里面没 bug 就行了,平台和架构的复杂性 jvm 都帮你解决了。 你自己试试 go 。编译完,目标系统稍微升级个小版本就可能 boom
han1988 小成 2025-10-24 17:41:01
@renfei 国产 JVM 的 bug 怎么修?
fortytwo 初学 2025-10-24 17:41:03
我觉得这个问题在当时的时代背景比较重要,现在完全不重要了。 Java 核心在于 JVM 虚拟机设计,来完成“一次编译到处运行”功能。 现在各种服务大多也是运行在系统层级定制的虚拟机上的。 任何语言,本质上都可以使用 dockers 等虚拟化工具来运行。 但是 JVM 这个先发优势,给了 Java 足够的时间发展生态。使得生态成为了 Java 护城河,和 Python 一样。 所以没有优势,唯一的优势是 Java 生态,大类的工具类库,解决方案。
Ayanokouji 小成 2025-10-24 17:42:29
1. 一次编译到处运行在目前没有啥优势,java 自己都在搞 native 2. 不能否认 jvm 的其他优势
dddd1919 初学 2025-10-24 17:42:59
jvm 优势还是有的,程序自身的适配能力强。 但系统越来越复杂化,除了应用本身,外部依赖越来越多,比如图片处理会用到 imagemagick ,视频加工用到 ffmpeg ,一个完整应用的边界从一个简单进程延伸到各种第三方依赖,所以 java 的理念在今天也就拓展到虚拟化技术上,把整套系统打包成一个可以到处运行的包,比如大型的 vm ,或者轻量的 docker
返回顶部