The 3rd and final day of the Wisconsin Java Software Symposium was another great day. The day started with the ‘Groovy Programming’ session by Richard Monson-Heafel. Richard currently serves on the J2EE 1.4 (JSR-151), EJB 2.1 (JSR-153) and EJB 3.0 (JSR 220) expert groups for the Java Community Process. He is also one of the founders of the Apache Geronimo and the OpenEJB open source projects. Richard is also the award winning author of Enterprise JavaBeans, 4th Edition, and the awesome J2EE Web Services. I blogged about this book earlier in the year as I really loved that book and recommended it very highly.
The first session was all about Groovy and it was great to have Richard lead this session. He is serving as specification lead for the Groovy JSR along with James Strachan. As you probably know, Groovy is a new language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax. The reaction of the Java community has been mixed and a lot of people have asked the question about why Groovy was selected over JRuby or Jython. Richard makes the point that Groovy makes sense over JRuby or Jython or any of the other scripting languages as Groovy is built on top of the Java platform and uses syntax that is familiar to Java developers.
I was a little skeptical about Groovy but went in the session with an open mind. As Richard walked us through Groovy, I started to see the potential of Groovy. The fact that I can use existing Java classes in my Groovy apps and vica versa makes Groovy a very powerful option. Richard did a great job of walking us through the language features and explored the built-in support XML, SQL and HTML parsing. I was very interested in the Groovy features but it was also nice to have Richard leading the session as he was able to give us inside info on the status of the JCP and language. Apparently Dave Thomas and Mike Spille are working on trimming down the language and so mixin’s can’t be that far away from Groovy. Some of the language features seemed really cool like the File I/O – Being able to copy a file with 2 lines of Groovy code will make me use Groovy. Richard described Groovy as ‘syntactic sugar’ for Java – I like that description. I hope Groovy succeeds and learns from all the mistakes Perl, PHP, Ruby, and Phyton have made while duplicating the simplicity and power of those languages.
I really liked what I saw about Groovy at this session. I’ve tried in the past to get into Ruby and Jython, but it never really took. I see a lot of value in a simple scripting-like programming language that would allow you to create simple one-off applications in mere minutes. Every one of us has to write a little script to upload a file automatically once every 6 months, or import a file from a vendor and stuff it in the database, etc. and I always try to write them in Java. Now I have the option of using Groovy and I am going to try and learn Groovy to see if it lives up to the expectations. Here are some great Groovy resources:
After the Groovy session, Richard and I went out for lunch. Richard and I had communicated over email in the past and had talked about getting a beer when he was in town. I had a blast spending a few hours with Richard. I’ve always loved his books and his writing style and it was just a lot of fun to pick his brain and get insights into his world. He is a really nice guy and he was very generous with his time. Thanks Richard – You made my weekend.
After lunch, I sat in the ‘Unit and Acceptance Testing web applications’ session by Cobbie Behrend. Cobbie is a friend and it was nice to be there to see him and support him. Cobbie did a great job in walking through some of the web test frameworks. Cobbie walked us through HttpUnit, jWebUnit, Fitnesse and Cactus. Cobbie spent a lot of time talking about his personal experience and shared his best-practices in terms of testing. This was a great session and totally interactive and we have some great observations from the attendees including Brennan Stehling, Dave Colwell, and Ed Chaltry. All in all a great session and a lot of fun.