Gosu

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Gosu
Автор Guidewire Software
Разработчик Guidewire and open source contributors
Выпуск 1.14.27 (28 июля 2022; 2 года назад (2022-07-28))
Система типов Статическая
Повлиял на Kotlin
Лицензия Apache License
Сайт gosu-lang.github.io
Платформа Выполняется на Java Virtual Machine, статически и динамически компилируется в Java байткод.
ОС поддержка JVM

Gosu — это cтатически-типизированный язык программирования, который запускается на виртуальной машине 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 поддерживает перечисления, интерфейсы, структуры и аннотации.