Written by Spencer Uresk
Wednesday, 11 March 2009
For the last few years, Ruby on Rails has been one of the most talked-about Web application development frameworks. The popularity Rails has enjoyed isn’t without merit—the “coding by convention” idea it helped make popular was beneficial to Web development in many ways.
Coding (or configuration) by convention allows you to concentrate more on what your application is supposed to do rather than how to get it configured properly, which makes development easier and allows you to be more productive. In my own experience, developing an application and getting it into production with Rails was faster than anything I’d used before.
My colleagues and I were interested in Rails and invested time in learning it and using it, but weren’t thrilled at having to learn an entirely new language and deployment platform. Not being able to take advantage of the multitude of quality Java libraries we were familiar with. How could we get the same development experience, while still using proven Java libraries and existing Java skills?
Enter Groovy on Grails. Grails is a Rails-like (in fact, it was called “Groovy on Rails” until mid-2006) Web application development framework that adopts the same coding-by-convention style employed by Rails, but runs on the Java Virtual Machine and is built using many proven Java libraries and frameworks.
Groovy is a dynamic, object-oriented language. Groovy tends to be easier for someone with Java development skills to understand (and, in fact, virtually all Java code is also valid Groovy code). Since it compiles into Java bytecode, it can easily reference any existing Java code.
This high level of interoperability with Java code allows Grails to make use of existing frameworks. Many of the technologies that make up the LDS Java Stack are also at the core of Grails. (The core of the LDS Java Stack is the Spring Framework, which is also the core of Grails.) Other frameworks that overlap include Hibernate (the Stack uses Hibernate’s JPA implementation), Acegi Security, and Quartz (for job scheduling).
In addition to familiar, proven frameworks, Grails approaches Rails in terms of development speed and ease-of-use. You can generate CRUD (Create-Read-Update-Delete) pages using simple commands, plug-ins are generally easy to install and configure, and the Groovy programming language is both powerful and easy to use.
Grails doesn’t require special deployment considerations—it can generate a WAR (Web ARchive) that will run on any standard servlet container. This makes it easier to deploy in environments where infrastructure and training are already in place for deploying applications onto servers like Tomcat, Weblogic, or WebSphere.
For these reasons, Grails is certainly worth looking into for both Java developers looking for Rails-like productivity, as well as developers who would like to (or need to) work in a Java environment, but do not want to go through the daunting task of properly configuring a Java Web application. Grails is free to use and is released under the Apache License 2.0.
We do not currently use Grails for any projects in ICS, the Java developers in ICS have been looking into it on our own and feel that Grails offers interesting possibilities.
Spencer Uresk is an engineer for the Church.