2008-05-26

Groovy Rediscovered

For the last couple of months, I've started using Groovy again. I used it a few years ago, but at that time, it was more for hobby-type purposes, and didn't have any applicable uses.

More recently, however, I have found many uses for Groovy, and have fallen in love with the language. My company uses WebSphere and RAD for Java development, and the lifecycle for development is painfully slow.

Utilizing the Spring Framework's support for dynamic languages have come in very handy. I am able to create a bean definition that watches a groovy file for modifications, and will re-inject the new class when the file changes. I've been able to replace all beans in the call stack with groovy versions of those beans and prevent myself from having to redeploy over-and-over (then eventually getting OutOfMemoryException's.)

Even outside of J2EE (web) development, I have found many other uses. I'm a tool Junkie. I love tools and I love creating them even more. When I see something that needs automation, I will create a tool for it. In the past, this has always been in Perl, but I'm seeing Groovy becoming a heavy contender. I wish, however, that Groovy had a faster startup time.

I've been following the discussions on Closures in Java. In my opinion, Java already has closures (in groovy), and there's no need to add it to the Java syntax. Java, the language, has run it's course. I think the focus needs to be on the Java platform and make it a better platform for other languages, such as Groovy, Scala, etc.

All in all, I would recommend Groovy development for any Java developer. It will increase development productivity in many ways.