Program (.gsp files) Enhancement (*.gsx files) Template (*.gst files) In addition to standard class types Gosu supports enums, interfaces, structures, and annotations. Program files facilitate Gosu as a scripting language. For example, Gosu's Hello, World! is a simple one-line program:print("Hello, World!") Gosu classes are also executable a la Java:class Main { static function main(args: String[]) { print("Hello, World!") } } Data types A unique feature of Gosu is its Open Type System, which allows the language to be easily extended to provide compile-time checking and IDE awareness of information that is typically checked only at runtime in most other languages. Enhancements let you add additional functions and properties to other types, including built-in Java types such as String, List, etc. This example demonstrates adding a print() function to java.lang.String.enhancement MyStringEnhancement : String { function print() { print(this) } }Now you can tell a String to print itself:"Echo".print()The combination of closures and enhancements provide a powerful way of coding with Collections. The overhead of Java streams is unnecessary with Gosu: var list = {1, 2, 3} var result = list.where(\ elem -> elem >= 2) print(result) Uses This general-purpose programming language is used primarily in Guidewire Software's commercial products. References Further reading Video External links Official website Source code repository Programming languages Object-oriented programming languages Java programming language family JVM programming languages Software using the Apache license Programming languages created in 2002 2002 software High-level programming languages Cross-platform free software Free compilers and interpreters