As a product owner, you are well aware that the sooner you get a feature live on your platform, the faster it will generate money for you. For example, shortening the lead time of your application development from three months to one month would mean two extra months of sales and revenue. The competition is so fierce that the product companies are rushing minimum viable product (MVP) out in the market to monetize and to test product viability. Early and continuous delivery would mean early revenue and lesser market risk.
Traditionally, Java has been a clear favorite for product developers and open source fans. While Java platform continues to be robust in many ways, the time to deliver remains a perpetual problem. It takes weeks or even months to build a Java application from scratch and to get the features working end to end. Enterprise customers as well as ISVs have been waiting long for a faster development framework that not only facilitates faster development, but also let you develop on the underlying JVM. Needless to say, this new language can coexist with java as well.
This article is an excerpt from our white paper “Accelerating web application development with Groovy and Grails”. To get the complete whitepaper, please download it here.
What is Groovy & Grails?
Grails is an open source web application framework which uses the Groovy programming language (which in turn is based on the Java platform). It is intended to be a high-productivity framework by following the “coding by convention” paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer. Grails’ choice of Groovy and all the other components it uses makes it a very compelling platform for high-traffic and complex applications.
Diagram depicting the Grails architecture
How Grails compares with Java and Ruby:
Groovy and Grails meet expectations with Ruby on Rails on some factors, while it exceeds expectations in some others by utilizing the foundation of Java.
Comparison of Groovy with Ruby and Java
Consideration |
Java ( JVM ?) |
Ruby on Rails |
Groovy and Grails |
---|---|---|---|
Reduced Time to Market | No | Yes | Yes |
Reduced Costs | No | Yes | Yes |
Long term scalability | Yes | No | Yes |
Recommended for applications currently on Java and PHP | Yes | No | Yes |
Summary
Consideration | Java ( JVM ?) | Ruby on Rails | Groovy and Grails |
---|---|---|---|
Lines of codes to write (Prototypical form validation example) | 20 | 8 | 6 |
Readability | Lengthy lines of codes make it less readable | Small size helps in readability | Good IDE support and hence increases readability. Also size of code governs readability |
Performance | High | Comparitively lower than Java and Grails | Higher than RoR but lesser than Java |
Well-structured and updated knowledge base | Yes | No | Yes |
Adaptability with Agile | No | Yes | Yes |
Enterprise support | Yes | Small applications. The support of enterprise technologies is not at the focus of the community |
Could be used for prototyping and also for real applications |
In built testing tools available | No | Yes | Yes |
Developer availability | Huge supply | Not as much compared to Java | Groovy is a natural transition for Java developers |
Scalability | Yes | No | Yes |
Richness of API/libraries available | Yes | No | Yes |
Ability to embed in desktop (Java/C++) applications | Yes | No | Yes |
Ease of deployment | No | Yes | Yes |
Learning curve | Yes | Depends on the history of the developer. Generally start with the database schema and generate domain objects, view and controller from there |
Depends on the history of the developer. Start with the domain objects and generate view, controller and database schema. A lot more people can write proper domain classes than proper database schemata. |