I want to learn a new language...

Mike Heath mheath at apache.org
Thu Feb 15 14:49:44 MST 2007

I would recommend Groovy (http://groovy.codehaus.org/).  Groovy was
built to run on the Java platform so it gives your the performance of
the JVM but also give you the flexibility of scripting languages.  You
can also call all of your existing code from Groovy.  You can also
call Groovy code from Java.

Groovy is not interpreted but gets compiled to byte codes at run-time.
 The JVM can then convert the byte codes to native code.  You can also
compile Groovy scripts to .class files.

Groovy allows you to use dynamic typing. You can also you static
typing if you explicitly specific the type you want.

Groovy also supports closures and uses them extensively.

In Groovy, if you want to read a file you can do:

new File("foo.txt").eachLine { line -> println(line) }

Groovy also has the very cool concept of builders which allow you to
greatly simplify building GUI's, creating XML or HTML.  You could
apply the concept of builders to many tasks.

Groovy, of course, has some of the downsides of Java such as, slow
start time, large memory footprint, etc.

Another downside to Groovy is that you don't have much IDE support so
things like debuggers, code completion, refactoring, unit test
coverage metrics and compile as you go are either not available yet or
really immature.

More information about the PLUG mailing list