The most I'd heard of groovy is what Dion said at the 2005 Server Side Java Symposium. There he said it was a bit backwards to have a JSR for a scripting language before it was more fully fleshed out. Something about a cart and a horse. Anyway, after atttending this talk I can see things seem to be progressing nicely, and I don't know if I agree with Dion's assesment, though I can see where he's coming from.

It's all about less lines of code.

Most of the web tier is duct tape with pockets of business logic. Good point. Scripting languages are built for glueing things together.

Why another scripting language?

want binary compatability with Java. Want something similar to Java.

features of Ruby Python and Smalltalk.

J/Python, J/Ruby, Beanshell, all lacking.

Features

    Dynamic and optional static typing.  

    Idea: write a component in groovy.

    Native syntax for lists, maps, arrays, etc.

    Closures: nested expressions.

    regex built in ==~

    Operator overloading, not a good example.  

    Semicolons are optional.

Groovy JDK, intercepts all calls and delegates to underlying class if
not implemented at the groovy level.  Can add new methods dynamically at
runtime.  Can use a "use" clause to pull it in.

Working with groovy and Java together.  Groovy classes can be called
directly from java.  Can also use with ant.  <script> tag.  or
<groovy> tag.

XML Generation

groovy.xml.MarkupBuilder

There are lots of MarkupBuilders in groovy.  This would be easy to build
renderers.

XML Parsing

Extras

    GroovyTest.  Easier than JUnit.

    Thicky, Server side Groovy based rich client delivery via JSP.

    Unix scripts in groovy.

    ActiveX Proxy nice for being able to connect to MS apps that expose
    ActiveX APIs, such as XSL.  Can be used to drive IE.

Status

    1.0 in September

    Development time, less than half of Java

    Performance: slow 20 - 90% of java

    Ready for small non-mission critical, experimental.

    appropriate to supplement ant, unit testing

  Technorati Tags: edburns