The idea came to me this afternoon while reading Beginning Groovy and Grails: From Novice to Professional.  As I was reviewing Chapter 4, I was thinking how much I would like to get paid for doing web site development using Grails. The first page of the chapter was enough to get me very excited about doing Grails development rather than traditional Java2EE/Java EE programming.  In fact, it reminded me why I got so excited about it earlier this year when I attended a presentation by Christopher Judd, one of the book’s authors, where he gave an overview of the book and walked through some simple development.

I enjoy doing web application development, but as the authors point out, it has become (and I might argue that it has always been) very cumbersome to do with J2EE/Java EE.  The number of different technologies involved is staggering and it is not very conducive to the type of agile development that is in such high demand these days.  Agile development enables rapid development of production software systems that provide business value.  Traditional Java web application development suffers from long development cycles and lack of sufficient standards (and thus the multitude of open source frameworks), among other things.

Grails solves this problem by focusing on convention over configuration and enabling the kind rapid application development today’s developers need in order to meet the increasing demands for working software in shorter times.  The purpose of my post is not to provide all the details as to why this is true (for that, get the book, or browse the plethora of Grails resources on the web), but rather to share how the idea of GrailsGig was conceived.

In short, Grails makes web development fun again.  When developers are having fun, they are more motivated and will produce better work faster.  This is how it is for me, anyway.  Thus the desire to get paid for working on Grails projects.

I don’t know of many companies who are hiring for Groovy/Grails expertise…yet.  I suspect this will change over time, and I suspect it will start with smaller to medium sized businesses.  Large businesses are slow to adopt new technologies (ironically even when they have the potential to save them a lot of money).

Thus, GrailsGig was conceived.  GrailsGig is a Grails application for bringing together Grails developers with the businesses who need them.

As normal in human life, where it takes time to go from conception to birth, so it will be with GrailsGig.  Stay tuned…

It’s obviously been a while since I’ve posted, so I wanted to provide an updated. I’ve been inured with too many things that have distracted me from my Rails project for a time, though I hope to return to it soon as I hope it will be profitable for me in more ways than one. I’ve lately been playing with Grails, the need arising at work for a quick and simple blog-like tool to provide status updates via RSS to an existing Java web application.

This exercise has been interesting and helped me see the great similarities between Grails and Rails, as well as some differences. Truthfully I haven’t spent much time with Grails, so I don’t have much to report yet, except that Groovy is and since it compiles to Java bytecode that makes it a lot easier to use at existing Java shops than Rails. On the other hand, for side projects that will live on the Internet on commodity hardware, be it shared or private, Rails is a great framework.

One thing I will make note of in the hope that it will be useful to someone else, is that if you are working with Grails and wanting to deploy a WAR to some servlet container that only implements Servlet Specification 2.3 you can do the following:

grails -Dservlet.version=2.3 war

This requires, I think, at least version 1.0.1 of Grails. I did it with version 1.0.1 and 1.0.3. Of equal or more importance, though, is to set the app.servlet.version property in the application.properties file to 2.3, since that is the value that will actually be used when generating the web.xml for your application (where it really matters).

Unfortunately I ran into other problems (NoSuchMethodError on org.apache.tools.ant.ProjectHelper.getImportStack()) which I have yet to get around. I was deploying to WebLogic 8.1.6 and, so far as I know, the only version of ant in the classpath is the version deployed with the WAR, which is 1.7.0.

I hope to play around with Grails more, preferably on a real project that might start small and grow into something valuable to someone. And I somehow have to find time to get back to my Rails side project.