Gosu ist eine statisch typisierte, objektorientierte Sprache für die Java Virtual Machine (JVM). Sie entstand 2002 intern bei Guidewire Software für Versicherungsanwendungen und wurde 2010 als Open Source veröffentlicht. Gosu kombiniert Java-, C#- und ECMAScript-Ideen und ist vor allem im Versicherungsumfeld (P&C) verbreitet.

Dateien und Werkzeuge

  • .gs – Gosu-Quelldatei; eine Klasse pro Datei, Name der Datei = Name der Klasse
  • .gst – Gosu-Template-Datei (HTML-artige Templates mit Gosu-Ausdrücken)
  • gosuc – Gosu-Compiler (Kommandozeile, kompiliert .gs nach Java-Bytecode)
  • gosu – Interpreter/REPL für schnelle Experimente

Syntax-Grundlagen

package example
uses java.util.List

class Hallo {
  function gruesse(name : String) : String {
    var text : String = "Hallo " + name
    return text
  }
}
  • uses – Import-Deklaration (statt import)
  • var – lokale Variable, var x = 5 mit Typinferenz
  • function f(p : Typ) : Rueckgabe – Methoden-Definition
  • String-Templates: "Hallo ${name}" als First-Class-Sprachfeature

Praxis-Tipps

  • Gosu bietet auch funktionale Elemente (Lambdas, Block-Expressions) und erweiterbare Typen (Enhancements) für bestehende Java-Klassen
  • Dr. Dobb's Journal nominierte Gosu 2011 zur „Language of the Month“

Verwandte JVM-Sprachen: Java-Befehle, Kotlin-Befehle, Groovy-Befehle, C#-Befehle. Weitere JVM-Nachbarn: Xtend-Befehle und X10-Befehle.