Golang is actually called Go, took 10 years to get generics, still doesn't do enumerations like Pascal in 1970.
Rust, still doesn't have anything that matches Swing, JavaFX, Spring, ability to plug into runtimes into production, a standard ABI.
There is GTK with gtk-rs, which surpasses Swing/JavaFX in many technical aspects and also has orders of magnitude higher popularity and bigger community.
Java, does it still require you to make up a class for things that are completely unrelated to classes / objects? Does it still require you to put each public class in a separate file?
Java is an OOP language, maybe that isn't modern for you, I dunno.
When I compare languages I care about the whole package, grammar + semantics are hardly a sales pitch when they don't have anything else to offer.
> grammar + semantics are hardly a sales pitch
That's why many don't care all that much about generics.
> Java is an OOP language, maybe that isn't modern for you
"Modern" is not that interesting in itself. Familiarity and ergonomics towards what you're doing is more important. "Missing" features is often an advantage. Newer is not always better, certainly not in all dimensions or application domains.
Glad that at least it managed to get inspired by CLU model of generics from 1975.
There you go, enumerations, parametric types, structural typing, generics, garbage collection, modules, fast compilation to native code, REPL, checked errors, all about 50 years ago.
Pity there wasn't a Google around to push them.
In ten years, maybe Go. Long, LONG way to go in adoptability to push against Java shops.
There are library to read/write command buffer, but there are none for interface with real hardware.