4 ms·
There's sure an interesting discussion to have in choosing Go vs Java, but this post doesn't contribute. What you want to compare is (the result of) GraalVM's n
by tannhaeuser 6y ago
There's sure an interesting discussion to have in choosing Go vs Java, but this post doesn't contribute. What you want to compare is (the result of) GraalVM's native-image vs Go rather than traditional Java byte codes execution on the JVM (which, for all we know, is more performant than Go-compiled binaries), making the post's first point (that you have to schlepp around a JVM) moot. Also, what is a "system programming language" anyway? I'd say C, C++, Rust, and other languages with zero-cost abstractions qualify, but certainly not garbage-collected languages like Go and Java. If you compare GCd languages, a discussion of the range of garbage collectors available on the respective platforms would be more helpful. For JVM, there are plenty; for GraalVM AOT/native-image, there's only SerialGC and G1GC (enterprise edition only) and not even CMS; what options are there for Go?
Not meant as Java fanboyism. My initial reaction towards Go was that I liked the apparent simplicity and freshness, until I saw that Go has already accumulated a surprising mass of idiosyncrasy. That k8s was ported from Java to Go also makes an interesting point of discussion, in that these two languages can target a similar problem space (apart from Java's bread-and butter "enterprise" workloads with massive use of reflection).