Skip to main content

Practically Groovy

The "Practically Groovy" series was a highly influential collection of technical articles originally published on the IBM developerWorks platform. The series was designed to advocate for the Groovy programming language, a dynamic language for the Java Virtual Machine (JVM), and to teach developers how to use it to simplify traditional Java tasks.

In the mid-2000s, the Java development community was searching for ways to reduce boilerplate code and speed up the development lifecycle. Groovy emerged as a powerful solution: an agile, dynamic language for the Java Virtual Machine (JVM) that seamlessly integrated with all existing Java objects and libraries.

Recognizing this shift, IBM developerWorks launched the "Practically Groovy" article series. The objective was to provide practical, hands-on tutorials showing developers how to smoothly integrate Groovy into their existing Java applications, highlighting its ability to simplify testing, database access, and GUI creation. Because IBM has since retired the developerWorks platform, the original live articles are no longer officially available, but their architectural lineage is preserved here.

Series Archive

Unit test your Java code faster with Groovy

Introduces the concept of using Groovy's dynamic typing and scripting flexibility to write robust unit tests for existing, statically-typed Java codeframes.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Ant scripting with Groovy

Explores Groovy's native integration with Apache Ant through AntBuilder, demonstrating how developers can write complex build logic programmatically instead of relying on verbose XML.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

JDBC programming with Groovy

Demonstrates Groovy's simplified approach to database connectivity. By utilizing closures and string interpolation, Groovy drastically reduces the boilerplate code typically required by traditional Java Database Connectivity (JDBC).

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

MVC programming with Groovy templates

Discusses how to leverage Groovy's built-in templating engines to generate dynamic web views, effectively implementing the presentation tier of the Model-View-Controller (MVC) design pattern.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Go server side up, with Groovy

Looks at embedding Groovy scripts into server-side web environments, allowing developers to enjoy rapid, iterative development without the constant need for JVM recompilation.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Mark it up with Groovy Builders

A deep dive into Groovy's MarkupBuilder, which provides a streamlined, programmable, and highly readable syntax for generating hierarchical data structures like XML and HTML.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Stir some Groovy into your Java apps

Provides architectural strategies and best practices for seamlessly embedding the Groovy runtime engine directly into legacy Java applications.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Groovy's growth spurt

Acts as a mid-year update on the evolution of the Groovy language, chronicling changes to its syntax and expanded capabilities as the language matured toward its official 1.0 release.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Functional programming with curried closures

Explores functional programming paradigms within Groovy, specifically detailing how to utilize curried closures for partial function application—a concept somewhat foreign to standard Java at the time.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Of MOPs and mini-languages

Discusses Groovy's Meta-Object Protocol (MOP), which enables runtime metaprogramming and dynamic method dispatch, allowing developers to write their own highly expressive Domain Specific Languages (DSLs).

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Smooth operators

Examines the concept of operator overloading in Groovy, showing how developers can overload standard mathematical and logical operators to make custom objects behave more intuitively.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Groovy: A DSL for Java programmers

Introduces the foundational concepts of utilizing Groovy's flexible syntax to construct expressive, domain-specific languages (DSLs) that seamlessly run on the JVM.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Reaching for each

Examines Groovy's native collection closures, illustrating how methods like "each" dramatically simplify iteration and list manipulation compared to traditional Java loops.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Building, parsing, and slurping XML

Demonstrates Groovy's unparalleled power in handling XML, showcasing how XmlSlurper and MarkupBuilder render complex parsing and generation tasks practically effortless.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Metaprogramming with closures, ExpandoMetaClass, and categories

Takes a deep dive into Groovy's metaprogramming capabilities, revealing how developers can dynamically inject new behavior into existing Java classes at runtime.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

Unit testing with GroovyTestCase and GMock

Elevates your testing strategy by integrating GroovyTestCase and GMock, providing a fluid, mock-driven approach to verifying complex interactions in your Java applications.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

The @Delegate annotation

Explored Groovy's Abstract Syntax Tree (AST) transformations. The article specifically covered how the @Delegate annotation can be used to implement the delegation design pattern at compile-time, entirely eliminating boilerplate routing code.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

SwingBuilder and the Twitter API, Part 1

Based on the existence of the subsequent part, this initial article likely introduced the foundational setup required to build a desktop Graphical User Interface (GUI) using Groovy's SwingBuilder class.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive

SwingBuilder and the Twitter API, Part 2

Demonstrated how to write a functional, declarative Groovy GUI client capable of communicating securely with the Twitter API using HTTP Basic Authentication and Base64 encoding.

Archival Document Available
A preserved copy of this installment is available for review.

Download PDF Archive