I’ve been teaching Groovy as part of one of my final year bachelor modules for about two years now. My module EG-358: Software Applications gives a sort of overview of how software engineering is applied across the range of platforms from desktop through to embedded (I cover the Enterprise in a Masters level module) and it takes in such esoteric issues as design patterns, collaborative development, agile development, IDEs, real-time, concurrency, etc.

<

p>
A focus of the module has always been around the “language level” and has argued for the adoption of the highest level language that suits the application domain. It was convenient to use Java to frame this discussion because it is was a single-language solution with a well defined abstract architecture and coverage of the range from embedded through to enterprise server. An important piece in the jigsaw, inspired by TCL-guy John K. Oosterhout’s seminal paper was scripting and scripting languages. To present the ideas and benefits of scripting, I used to have to divert study away from Java and the JVM; first to Perl, then Python. In the latter years I used JPython which, though a different language, at least ran on the JVM.

<

p>
I was very excited when Groovy was announced, because here was a language that kept the focus on Java and the JVM; was close enough to Java to avoid the necessary problem of learning a new way of working, but yet provided a route to illustrate the very-high level nature of scripting languages. I’ve stuck with it through its early versions, and on to the changes of syntax and semantics introduced by the JSR versions (jsr-5 last year I think). I even gave an example of agile web application development with Grails back in May 2006!

<

p>
So it’s great to know that finally there’s a version 1.0 out of groovy and a 0.3 of Grails with accompanying text books (see the link to Jeff Brown’s blog post for more). It’s a pity that the module itself is taking a one-year holdiday this year!

<

p>If you’re interested, I’ve tagged some of the many on-line references related to EG-358 on my del.icio.us acount.