@bcc9c456 invokeDynamic was awesome for JRuby, and it yielded some optimisations for Clojure, too. Scala is making use of invokeDynamic since version 2.12, when it dropped support for Java 6/7. And I think they did it to reduce the generate JAR size, but I'm not sure.