java groovy scala clojure