Hopefully this is relevant but one of the things I had difficulty with in Rust is closures (or more specifically the lifetime and pointers of closures) and wiring up a system or library that needs lots of callback things. See I'm used to Java where anonymous classes are closures (I really like that about Java/Scala/Groovy. One of the very few things I don't like about C# is that does not have anonymous classes). So t…
Apache Groovy has diverged from Java since Java 8 came out, and there's also other JVM languages such as Kotlin. You only gave JVM languages as examples of the good, and all your examples of the bad were those on other platforms.