Hacker News new | ask | show | jobs
by gaius 2943 days ago
Try Groovy. All the verbosity of Java and all the type safety of JavaScript.
2 comments

Apache Groovy's original use case was for scripting classes already written in Java, for stuff like testing and glue code. It added closures to Beanshell, which was the de facto language for scripting Java at the time.

New leadership, er, took over in late 2005 and re-oriented it as a DSL for Grails, and later Gradle. Grails has since died, with virtually no-one upgrading to version 3, or starting new projects in it. The Grails 2 plugin scene is dead. Many sites are converting their Gradle build scripts to Basel, so it's also starting a slow decline.

Around 2012, Groovy was repurposed again with static typing to compete with Java and Scala on Android. But it never succeeded, and the leadership was retrenched 3 yrs ago from VMWare and couldn't find anyone else to financially support them.

Groovy remains OK for scripting Java classes, but it's fast becoming irrelevant now that Java itself has lambdas and type inference.

As Scala and Clojure both have REPLs and now Java too[1] Groovy is totally irrelevant, but it still clings on in a few places.

[1] https://blogs.oracle.com/java/jshell-and-repl-in-java-9

Yeah with lambdas and local type inference in Java it’s less and less relevant but it’s still dynamic and that can be great for tests and little scripts with Grape. I really enjoy Grape despite using it so rarely that I always need to look up how to do things.
I find Spock to be highly enjoyable. It warms my heart.
Groovy is excellent. Highly enjoyable... it’s the real JavaScript. But I prefer Java for production code and Groovy for tests.