I’ve just finished my first Grails project. To be honest, it’s a quite good mind refreshment for me as a Java developer. Grails simplify alot of complex stuff of Java ecosystems like IoC(Spring), ORM(Hibernate), XML configuration with convention over configuration. It takes you less than 10 minutes to create a full working web application with Spring Security for authentication and authorization, Quartz for job scheduling and Hibernate for data persistence when you’re familiar with it. Here are some Pros and Cons:
Pros:
- Almost “zero learning effort” for Java developers (although it almost took me a week to get productive with it)
- No XML configuration
- GORM is much easier to work with comparing to Hibernate (both XML-based and annotation-based), dynamic methods for domain class is definitely a good selling point for me here. It saves me tons of DAO code.
- Lots of plugins to extend Grails functionalities
Cons:
- Grails heavily uses convention-over-configuration but the documentation about conventions is not enough. Sometimes it get frustrated when you reading someone’s code without knowing the convention his/her using.
- Bugs. Lots of it, just navigate to JIRA of Grails and you will know what I mean :)
- Lacking of good IDE support. First I’ve tried Spring STS, then NetBeans, then IntelliJ IDEA Ultimate (free trial) and finally finishing my first Grails project in Gedit!
Grails is a great framework and I’m still learning it.