Java developers benefit from using Groovy, but so can you who don't already know Java. 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 can use 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.
Much of the documentation on this website at Codehaus is for those who already know Java. These pages are for you who don't, so you can learn enough of the Groovy basics to easily use the other documentation on this website. They introduce Groovy's core classes and syntax together. All code examples have been tested using Groovy 1.0 or later inside a script. It's aimed at you who have already programmed before, just not in Java, maybe in PHP, Perl, or Visual Basic. Do note that although this documentation is correct and detailed, it's still a little raw because it's still being written.
1. Numeric Processing
Integer Math - choose from many types of integers
BigDecimal Math - for high-precision decimal math
Floating Point Math - for high-speed decimal math
Dates and Times - enabling complex date manipulations
2. 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
3. Text Processing
Characters - access the full power of Unicode
Strings and StringBuffers - easily handle strings of characters
String Pattern Matching - find patterns within strings
4. Input and Output
Files - manipulate the file system easily
Streams, Readers, and Writers - access data as a flow of information
5. Control Structures
Blocks, Closures, and Functions - compose your program from many building blocks
Expandos, Classes, and Categories - encapsulate your program's complexity
Program Control - various ways to structure your logic
6. Data Typing
Static Typing and Interfaces - put compile-time restrictions in your program
Inheritance - use your classes and methods for many purposes
7. Meta-Programming
Class Reflection - examine and manipulate objects dynamically
Using Interceptors with the ProxyMetaClass - intercept your method calls
Other Topics Coming
Packages
Exceptions
Multi-Threading
Networking
Internationalization
Annotations
Enums
Builders
Class Loading
Permissions
Formatting
Queues and Deques