Pros and Cons using Grails - A JVM based Web Developement Framework


 Pros: 

  1. Rapid development cycle. 
  2. Suitable for small to medium scale projects. 
  3. Plethora of plugins. Best of them is Spring security. Mail, Quartz 
  4. Very good documentation. 
  5. Easy setup and you can start sample application in about an hour. I am a Java developer and started using Grails 1.3.7 and was able to browse a sample application in an hour. 
  6. Easy GORM. 7. Initially very good and now almost excellent(after learning curve). 
  7. Change code and quickly see the results with a refresh. 
  8. CSS framework made easy by Less CSS plugin. Believe me it's becomes tough to manage CSS for front end heavy websites. 
  9. Dynamic configuration. Most of the configuration can be changed without server restart. 
  10. XML processing is made easy using Groovy. You will feel the difference if you have to deal heavily with external parties. 

 Cons: 

  1. Have to deal with run-time language. Error prone and all other cons by using runtime languages holds true. 
  2. Didn't dig into and not sure the internal implementation of GORM. But it fares badly with multi-threaded application. Ex: Had 2 threads created 2 different NEW domain objects of same type but one of them is persisted and the other not. 
  3. Have to buy IntelliJ Idea. Other IDE's either don't have or limited support. If you are sticking with Eclipse for development then the whole idea of RAD diminishes. 
  4. Developers tend to declare variables with 'def', roughly equivalent to Object type. Very hard to maintain and less readability. 
  5. Since controller service layer can be implemented with very less code .Not many designs patterns can be implemented effectively, easy for development but not robust application design. Not a con for Grails but including this as we inclined towards short cut code because of deadlines, etc reasons. 
  6. Interpreted languages always add extra weight at run time. 
  7. Of course you have to learn Groovy. 
  8. Works like a charm with GORM(unless you face issues :) as mentioned above) but not with other ORM's. 
  9. Not easy to integrate or less support with Maven. 
 Personal opinion -> Use Grails for Front end and Spring, Hibernate for Middleware/Backend

No comments:

Post a Comment

Please leave a comment related to the post.