Groovy is an agile dynamic language for the Java Platform with many features that inspired languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax.
!etoile_foncee.gif!works cleanly with all existing Java objects and libraries and compiles straight to Java bytecode!
!etoile_foncee.gif!is ideally designed for the following purposes :
- Developing web applications in a quick, concise and fun way. The [*Grails|http://grails.codehaus.org]* demonstrates Groovy's capability in this area.
* Bringing the power of a scripting language to the JVM with seamless integration with the Java Platform
* Writing concise, meaningful, test cases using Groovy's JUnit integration.
* Prototyping and producing real industrial strength applications
* Writing shell scripts easily
!etoile_foncee.gif!can be used as a dynamically or staticly typed language and can either be compiled or interpreted
!etoile_foncee.gif!introduces powerful additional features to the JVM such as:
- Language conceptual enhancements
- Support for closures - re-usable blocks of code
- Native syntax for lists and maps
- Support the Gof Builder pattern via the notion of builders
- Syntax level regex operators and escape sequences
- Native JavaBean support
- Operator overloading to simplify working with datatypes Collections and Maps
- Polymorphic iteration and autoboxing
- Extension of Java Standard Library through the GDK
- TBD
- In addition, Groovy provides useful standard features to enhance developer productivity such as:
- Groovy Markup for XML, DOM, ...
- Groovy Path expression language
- Groovlets for implementing Servlets easily in simple Groovy scripts
- Ant Scripting
- Groovy Categories allow you to add methods to classes with the "use" keyword
- Groovy Template Engines which are pluggable, simple to use, integrate GPath and compile to bytecode
- Groovy SQL for making SQL more Groovy
- And providing great user defined modules
- Grails
- Gram
- COM Scripting
- GroovySWT
- GSP
- GSQL
- Process
- XMLRPC