The Java language hasn’t changed much since 2004. Lambdas, modularity (project jigsaw) haven’t made their way into the platform yet, and probably won’t for a couple more years. The main reason of this stagnation is the constraints the designers of the Java platform have to consider evolving it. Most of them don’t exist when you start from scratch.That’s what happened in the Java space. Groovy, Scala, Clojure are the technologies that have been moving the Java platform forward. Runtime and compile time metaprogramming, macros, STM, different flavours of FP, all this goodness is available for you right now, just pick the right language. It’s worth mentioning that the Java language hasn’t disappeared. There are millions of developers happily using it, and there is nothing wrong with it. The goal is not to get rid of Java, but to provider choice.