Java developers benefit from using Groovy: much of the documentation on this website at Codehaus is for them.
But you who don't already know Java can also benefit from using Groovy: these pages are for you. If you want to access the power of the Java Virtual Machine and Development Kit libraries when programming, but don't want to learn the Java Language, you canuse Groovy instead. Or maybe you do want to learn Java, but do so the easy way: you can learn Groovy first. You'll be productive sooner, and can go on to learn more about Java at your own pace.
This documentation introduces Groovy's syntax and core classes, but is still being written. For now, it's correct and detailed, though a little raw. All code examples have been tested using Groovy 1.0 or later inside a script. It's aimed at those who have already programmed, just not in Java, maybe in Ruby, Python, Perl, or Visual Basic.
Numerical Processing
Groovy Integer Math - choose from many types of integers
Groovy BigDecimal Math - for high-precision decimal math
Groovy Floating Point Math - for high-speed decimal math
Collections
Lists and Sets - group various items into a collection
Object Arrays - fixed-size arrays for faster collections
Maps and Sorted Maps - assign collected values to keys
Text Processing
Characters in Groovy - access the full power of Unicode
Strings and StringBuffers - easily handle strings of characters
[String Pattern Matching|http://groovy.codehaus.org/String+Pattern+Matching] - find patterns within strings (NEW ON 18 JULY 2007)
Input and Output
Files in Groovy - access the file system easily
Streams, Readers, and Writers - access data as a flow of information
Networking in Groovy - COMING SOON
Control Structures
Blocks, Closures, and Functions - compose your program from a wide variety of building blocks
Expandos, Classes, and Categories - encapsulate your program's complexity
Program Control - many various ways to structure your logic (NEW ON 13 JULY 2007)
Data Typing
Static Typing and Interfacesput compile-time restrictions in your program - (NEW ON 13 JULY 2007)
Inheritance- reuse your classes and methods for many purposes
Class Reflection - examine and manipulate objects that aren't known at compile time
Other Topics Coming
formatting
dates and times
enums
Queues/Deques
exceptions
permissions
annotations
multi-threading
tree processing, builders
packages
evaluate, class loading
remote invocations
internationalization
Miscellaneous
Using Interceptors with the ProxyMetaClass - valid for 1.0-RC1 and earlier only