Gosu — статически-типизированный язык программирования, который запускается на виртуальной машине Java. Этот язык используется в нескольких проектах с открытым исходным кодом SparkGS и Ragnar DB, и широко используется в страховой отрасли в коммерческих продуктах Guidewire Software. Язык вобрал в себя возможности языков Java, C# и ECMAScript. Уникальной особенностью языка, является открытая система типов, которая позволяет легко обеспечить проверку во время компиляции или в IDE. Также язык позволяет создавать как программы общего назначения (файлы .gst), так и скрипты (.gsp-файлы) и выполнять их непосредственно из источника без предварительной компиляции.
Синтаксис Gosu имеет C-style синтаксис.
Простейшая программа Hello World на Gosu. class Main { static function main(args: String[]) { print("Hello, World!") // или проще "Hello, World!".print()
// второй вариант работает, только если добавлен enhancement MyStringEnhancement : String { function print() { print(this) } }
Пользуясь методами и лямбдами очень легко работать с контейнерными объектами. var list = {1, 2, 3} var result = list.where(\elem -> elem >= 2) print(result)
Классы Gosu могут иметь функции, поля, свойства и внутренние классы в качестве членов. Номинальное наследование и композиция с помощью делегирования встроены в систему типов, а также структурную типизацию. В дополнение к стандартным типам классов Gosu поддерживает перечисления, интерфейсы, структуры и аннотации.