Why would Bob McWhirter and James Strachan create a new scripting language? Why would they call it Groovy? More importantly, what features would enable Groovy to succeed when others are already entrenched? Let's answer the third question with a look at Groovy's features.

Gradle is a new and revolutionary build tool, based on the Groovy programming language. It is very different from existing tools like Ant and Maven in that it provides an extremely powerful capability to develop build applications using Groovy code and a compelling Groovy DSL. This allows to easily develop a non-standard build for any project, according to its needs, or to fall back to a more traditional convention-over-configuration approach also fully supported by the tool.

As with messages, files are displayed on the home page in the order they are added to the system. Currently all messages and files are displayed on the home page. Over time, our home page is going to become rather large and unwieldy. We need a user's home page to show only the files and messages that they are interested in. To do this, users need to be able to tag their content. The new Grails concepts that will be introduced in this two-part article series by Jon Dickinson are: * Working with inheritance in the domain classes, and looking at which strategies GORM supports for persistence * Using polymorphic queries over a domain inheritance hierarchy * Encapsulating view-rendering logic in GSP templates * Manipulating collections with the Groovy collect and sort methods

In the previous part of the article by Jon Dickinson, we saw how to construct a domain model to allow files and messages to be tagged. In this part, we will see how to customize our home page and work with the templates and tags

Many-to-many (m:m) relationships can be tricky to deal with in a Web application. In this installment of Mastering Grails , Scott Davis shows you how to implement m:m relationships in Grails successfully. See how they're handled by the Grails Object Relational Mapping (GORM) API and the back-end database. Also find out how a bit of Ajax (Asynchronous JavaScript + XML) can streamline the user interface.

This month, I'll round out the MVC triptych with a discussion of Grails views. Views (as you might guess) are stored in the grails-app/views directory. But there's much more to the view story than the intuitively obvious directory name. I'll talk about Groovy Server Pages (GSP) and give you pointers to many alternative view options. You'll learn about the standard Grails tag libraries (TagLibs) and find out how easy it is to create your own TagLib. You'll see how to fight the ongoing battle for DRYness (see Resources) by factoring common fragments of GSP code into their own partial templates. Finally, you'll learn how to tweak the default templates for scaffolded views, thereby balancing the convenience of automatically created views with the desire to move beyond a Grails application's default look-and-feel.

The Java Platform has evolved into a solid and mature enterprise application platform. One of the signs of a mature application platform is that there are a lot of spin-off techniques and options to integrate with other techniques. This article will go into detail about how to write JEE applications with Grails, a spin-off of traditional JEE application development, and Flex, a different technique that can be used with Java. Both frameworks can be highly productive. Combining the two frameworks holds the promise of building rich internet frontends to J2EE applications while retaining the high productivity.

“Dynamic programming” is intriguing for a few reasons. The combined words do not directly refer to anything dynamic or programming, at least not in the sense attached to those words individually today. It is an algorithmic technique that takes a counterintuitive approach to realizing blazingly fast computation. We will explore this technique here and quickly implement an example using the facility available in Groovy.