Developer(s) | Graeme Rocher |
---|---|
Initial release | October, 2005 |
Stable release |
3.1.10 / July 28, 2016
|
Written in | Groovy |
Operating system | Cross-platform |
Platform | Cross-platform (JVM) |
Type | Web application framework |
License | Apache License 2.0 |
Website | grails |
Grails is an open source web application framework that uses the Apache Groovy programming language (which is in turn 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 was previously known as "Groovy on Rails"; in March 2006 that name was dropped in response to a request by David Heinemeier Hansson, founder of the Ruby on Rails framework. Work began in July 2005, with the 0.1 release on March 29, 2006 and the 1.0 release announced on February 18, 2008.
G2One - The Groovy Grails Company - was acquired by SpringSource in November 2008, and it was later acquired by VMware.
On April 9, 2015, OCI (Object Computing, Inc.) announced that Graeme Rocher, Grails Co-Founder and Project Lead, and Jeff Brown, Principal Software Engineer and Senior member of Grails Core Team, have joined OCI to lead its Grails product team. OCI is now the official sponsor and has taken over funding for the Grails project. The Grails core team retains full autonomy as to how the project will be developed and advanced.
Grails was developed to address a number of goals:
Grails has three properties that differentiate it from traditional Java web frameworks:
Creating web applications in Java traditionally involves configuring environments and frameworks at the start and during development. This configuration is very often externalized in XML files to ease configuration and avoid embedding configuration in application code.
XML was initially welcomed as it provided greater consistency to configure applications. However, in recent years, it has become apparent that although XML is great for configuration, it can be tedious to set up an environment. This may reduce productivity as developers spend time understanding and maintaining framework configuration as the application grows. Adding or changing functionality in applications that use XML configuration adds an extra step to the change process, which slows down productivity and may diminish the agility of the entire process.