Skip to: Site menu | Main content

Groovy 

      Download | Documentation | Developers | Community

An agile dynamic language for the Java Platform

Home Add comment to Wiki View in Wiki Edit Wiki page Printable Version

Groovy...

  • is an agile and dynamic language for the Java Virtual Machine
  • builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
  • makes modern programming features available to Java developers with almost-zero learning curve
  • supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain
  • makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL
  • increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications
  • simplifies testing by supporting unit testing and mocking out-of-the-box
  • seamlessly integrates with all existing Java objects and libraries
  • compiles straight to Java bytecode so you can use it anywhere you can use Java

Learn all about Groovy, Grails and Griffon at the 2GX Conference

2GX Conference is the largest North American Groovy and Grails conference series.

This year's event will take place October 19 - 22, 2009 in New Orleans, LA (USA). You will learn about rapid application development with Groovy / Grails and network with other developers who are redefining the way web applications are developed on the Java platform.

The conference is dedicated to Groovy, Grails and Griffon, is co-hosted alongside the SpringOne conference. Experts and makers of these Groovy-based technologies will guide attendees through lectures around those technologies.

Experience the latest Groovy 1.6

Groovy 1.6, the latest major and stable version of the popular dynamic language for the JVM, has been released. In a nutshell, it brings great compile-time and runtime performance improvements, multiple assignments, optional return in if/else and try/catch blocks, Compile-time Metaprogramming - AST Transformations and all the provided transformation annotations like @Singleton, @Lazy, @Immutable, @Delegate and friends, the Grapes and grab() and its @Grab annotation, various Swing builder and Swing console improvements, the integration of Groovy JmxBuilder, JSR-223 scripting engine built-in, and various metaprogramming improvements, like the ExpandoMetaClass DSL, per-instance metaclasses even for POJOS and runtime mixins.

Groovy, an award-winning creative and innovative project

  JAX is the most important Java conference in Germany. Every year, the organizers are running a contest to select the most innovative and creative projects. From over 40 proposals, the jury selected only ten nominees. Although great projects were selected, like the Matisse GUI builder in NetBeans, or the Nuxeo Enterprise Content Management solution, Groovy won the first prize! It is a great honor and a huge pleasure for us to receive such a prize, especially knowing the cool projects we were competing with, or the past winners like the Spring framework.

Dierk König, author of the best-selling " Groovy in Action" book, received the prize in the name of the Groovy community, after having presented several sessions on Groovy at this conference. This award proves and reaffirms how innovative, creative and influential the Groovy project is for the Java community.





"Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing. If you are a developer, tester or script guru, you have to love Groovy."



















Samples

A simple hello world script:

def name='World'; println 
"Hello $name!"
        




A more sophisticated version using Object Orientation:

class Greet {
  def name
  Greet(who) { name = who[0].toUpperCase() +
                      who[1..-1] }
  def salute() { println 
"Hello $name!" }
}

g = 
new Greet('world')  
// create object
g.salute()              
// Output 
"Hello World!"
        




Leveraging existing Java libraries:

import 
static
org.apache.commons.lang.WordUtils.*

class Greeter 
extends Greet {
  Greeter(who) { name = capitalize(who) }
}

new Greeter('world').salute()
        




On the command line:

groovy -e 
"println 'Hello ' + args[0]" World
        












Documentation [more]

Getting Started Guide

How to install and begin using Groovy as well as introductory tutorials.

User Guide

Provides information about using the Groovy language including language facilities, libraries and programming guidelines.

Cookbook Examples

Illustrates larger examples of using Groovy in the Wild with a focus on applications or tasks rather than just showing off the features, APIs or modules.

Developer Guide

Contains information mainly of interest to the developers involved in creating Groovy and its supporting modules and tools.

Testing Guide

Contains information of relevance to those writing developer tests or systems and acceptance tests.

Advanced Usage Guide

Covers topics which you don't need to worry about initially when using Groovy but may want to dive into to as you strive for Guru status.

Modules [more]



The following modules and contributions are currently available:

  • COM Scriptingscript Windows ActiveX and COM components with Groovy
  • Gant
  • GFreeMarkeran integration of the FreeMarker template engine for Groovy
  • GMaven GMaven provides integration of Groovy into Maven.
  • Google Data Supportmakes using the Google Data APIs easier from within Groovy
  • Grama simple xdoclet-like tool for processing doclet tags or Java 5 annotations
  • GraphicsBuilderGraphicsBuilder is a Groovy builder for Java 2D
  • Grapplet
  • GriffonDekstop Enhancements for Groovy
  • GrooshProvides a shell-like capability for handling external processes.
  • Groovy Jabber-RPCallows you to make XML-RPC calls using the Jabber protocol
  • GroovyJMS
  • GroovyLabProvides a domain specific language (DSL) for math engineering (matlab-like syntax).
  • Groovy Monkeyis a dynamic scripting tool for the Eclipse Platform
  • GroovyRestletGroovy DSL for constructing Restlet application
  • Groovy Science
  • Groovy SOAPcreate a SOAP server and make calls to remote SOAP servers using Groovy
  • GroovySWTa wrapper around SWT, the eclipse Standard Widget Toolkit
  • Groovy TransformsProvides additional AST Transformations
  • GroovyWSGroovySOAP replacement that uses CXF and Java5 features
  • GSPmeans GroovyServer Pages, which is similar to JSP (JavaServer Pages)
  • GSQLsupports easier access to databases using Groovy
  • HTTP Builderprovides a convenient builder API for complex HTTP requests
  • JideBuilderJideBuilder is a Groovy builder for the open source JIDE Common Layer
  • MetaBuilderMetaBuilder is a builder that builds builders.
  • Native Launchera native program for launching groovy scripts
  • Proxy-o-MaticProxy-o-Matic lets you create dynamic proxies fast and in an homogeneous way
  • Windows NSIS-Installera Windows-specific installer for Groovy
  • Windows Servicesframework for Groovy-based WinNT (Windows) Services
  • WingSBuilderWingsBuilder is a Groovy builder for the wingS Framework
  • XMLRPCallows you to create a local XML-RPC server and/or to make calls on remote XML-RPC servers
  • Grails — a Groovy-based web framework inspired by Ruby on Rails
  • GORM — the Grails Object-Relational Mapping persistence framework
  • Griffon — a Groovy-based desktop framework inspired by Grails
  • GroovyPlugin — A Groovy plugin for JSPWiki
  • OCM Groovy — A Object Content Mapping implemented in Groovy leveraging the Java Content Repository (JCR)
  • Tellurium — A test framework built on top of the Selenium test framework implemented in Groovy
  • Gradle — The next generation build system


Enjoy making your code groovier !!!!







Latest news

If you wish to stay up-to-date with our vibrant community, you can learn more about:

And below, you will find the latest announcements:

Last changed Jul 02, 2009 00:56 by Vaclav Pech

GParallelizer, the opensource concurrency and actor library for Groovy, has reached its 0.8 release. Besides further maturing the actor support and the collection concurrency, you can now find an inspiring Dataflow Concurrency DSL bundled with GParallelizer. Check out the details on Dataflow Concurrency on the project wiki.

To list a few of the new features, here's the top 5 items from the release notes:

  • Added DataFlow concurrency support
  • Enabled asynchronous collection processing through meta-class enhancements
  • Added sendAndWait() methods to actors to block the caller until a reply arrives
  • Ability to join actors to await their termination
  • Added special-purpose actors, the DynamicDispatchActor and the ReactiveActor, to allow for an alternative message handling syntaxes

Check out GParallelizer today and don't forget to experiment with all the samples.

To get a feel for what actors can do for you, have a look at the sample actor solutions to several common concurrency issues, like The Dining Philosophers or The Sleeping Barber.

Thank everyone for the feedback I've received. Since it is the comments and suggestions I hear from the community that drives my development further, please, keep on commenting.

Posted at Jul 02, 2009 by Vaclav Pech | 0 comments
Last changed Jun 24, 2009 05:31 by glaforge

The SpringSource Groovy & Grails team is providing a great opportunity for developers to learn all they need to know about Groovy & Grails from the G&G leads themselves: Guillaume Laforge, Graeme Rocher & Jeff Brown. To make the training available to as many developers as possible, SpringSource also lowered the prices for these famous trainer courses.

During the Groovy & Grails training course attendees will:

  • Receive an introduction to Groovy by learning how to install it, use its compiler, shell and console, and how to integrate it in your applications
  • Learn the language fundamentals, such as its Java-based syntax, its powerful strings, how to define operator loading or how to leverage its easy
  • XML parsing capabilities, and more
  • Learn all you need to know about Meta Object Protocol (MOP), Metaprogramming Hooks and ExpandoMetaClass
  • An introduction to Grails, the Grails Stack, getting started with scaffolding and getting to know the Grails command-line environment
  • Learn how to maximize use of MVC in Grails by using services, controllers, views, tag libraries, GSP templates and Ajax
  • Learn how to use and optimize Grails plug-ins including lessons on extension points, architecture, how to package and install, artifacts and command line scripts
  • And much more

The full schedule for these courses can be found below:

  • United States
  • Europe
    • July 21 - 24: Paris, FR (Guillaume Laforge)
    • July 28 - 30: London, UK (Graeme Rocher) - register before June 28 and save £160
    • September 16 - 18: Oslo, NO - register before August 16 and save kr 1500

If this course is not provided in your state or country ask for the special hotel - travel deal or if you have five or more developers interested in this course take a look at onsite training to save money.

Posted at Jun 24, 2009 by glaforge | 0 comments