|
Why would it be the new Java/.NET? You vastly overestimate that separate runtime as being a huge positive, it is almost indifferent to most niches where these two are most common: servers, especially on the bigger side of things. For a devops team with a proper CICD pipeline, monitoring, whatnot, installing a runtime is beyond trivial, especially that many of it is container-based. So even if all else were equal, Go would need much much more positives to even start turning the wheel towards itself, momentum is huge in the industry (old Cobol systems are still clocking at places, even if they do so in a VM, as the hardware they are hardcoded against are too old now). Especially that it is not at all a net positive in many people's eyes: - it is very verbose (yes, it is in fact more verbose than Java, that had been bullied by everyone forever for being verbose..)
- has terrible expressivity (java streams/.net linq)
- smaller ecosystem (java is much larger than even .net, let alone go)
- slow reflection (on the more enterprise-y end of the industry you sometimes need more dynamic workloads) Also add that both Java and .NET has native AOT compilation, so even that small benefit you mention may not be a dealbreaker, even if those are not as smooth a rides as go's. |
I developed server software in Java for two decades, and I can tell you that the huge JVM was always a PITA for us, even after Docker became a thing. All those frameworks? We ended up throwing them out. And the slow startup speed of Java apps made our tooling sluggish. It was also a pain to ship tooling to non developers, for all the same reasons.
Using Go after all this time was like a breath of fresh air.
It’s fine for you to assert your own preferences and biases but you don’t represent all enterprise server developers.