With Racket, you quickly prototype animations and complex GUIs. To organize things, you can mix and match classes, modules or components. Once your script turns into a large collection of modules, equip your Racket modules with explicit type declarations as needed. Racket comes in so many flavors because Racket is much more than a standard scripting language or a plain programming language. Racket supports language extensibility to an unequaled degree. In Racket, creating a new language is as easy as writing a new library.
What is new in this release:
New in this release: Submodules are nested module declarations that can be used independently from the enclosing module; futures visualizer is a graphical profiling tool for parallel programs using futures; optimization coach reports information about Racket's inlining optimizations; new libraries: json, images/flomap, racket/generic; racket/string is extended with simplified functions; the class form supports abstract methods; contracts support interfaces, generics, prompts, continuation-marks, and structs; new multi-line format for error messages; new `ffi/com' library replaces MysterX; completion code for zsh.