Groovy looks like the Java-based scripting language that I have been waiting for — I should have started working on it sooner!
I’ve discussed with my peers at work at various times about creating a scripting language that would ease some of the more tedious parts of Java and enable a simpler and faster development model. Because of the nature of our business, we were concentrating on a language that would make enterprise development of J2EE applications simpler. The latest name that we had for it was “Enterprise Java” as one of its core axioms would be complete compatibility with pure Java code (every Java program would also be a EJ program) and it would enable J2EE development.
Groovy is a long way towards this goal. Although it doesn’t have perfect Java compatibility, it does follow Java syntax pretty closely and you can generally guess what something will look like with the only new syntax being those things that are actually new features. Like closures and builders for instance. Like most good programming languages it borrows a lot from its peers, Python, Ruby, and Perl while leaving self, end, and $%*)&@#$@( behind. Although they are further along adoption and maturity-wise, Groovy comes fully equipped with a framework and class library that they will only dream about — the full Java platform. Not only can you use the frameworks, you can even implement interfaces and extend classes using Groovy so you are not in any way limited.
Not only is the feature set nice, I’ve had the pleasure of looking at the source code, fixing some bugs, and now adding some new things, like a GroovyServlet that will run your Groovy scripts directly from a web application. As a testament to their programming prowess, it only took about 100 lines to write it. Groovy’s internals boast extremely clean APIs and an obviousness that makes it a pleasure to work with. Additionally, since they develop in Eclipse, you can just check it out as a project or use Maven to build on the command-line.