Goose  Overview

Goose is a programming language in development that aims at being (yet another) c++ alternative.

You can browse the code here.

Goals

  • to be simpler than c++ while keeping most of its useful features in some form or another.
  • to provide a meta programming solution based on compilation time execution of arbitrary code.
  • to be very extensible and support custom operators, custom statements, and custom DSLs.
  • to have compilation-time verified function contracts and type predicates.
  • to provide a more powerful type system.
  • to allow features to be enabled or disabled in order to be able to use only a very safe, high level subset of the language, or a very low level, unsafe subset depending on needs. Ideally, the high level subset should feel like a typed scripting language.

Many of those goals are already implemented at least in a proof of concept form. Some things are not documented at all yet, such as classes, modules, or memory management. This is because no implementation work has been started on these things yet, and because their design only exists as more or less vague ideas so far.

Features

Syntax

Type system

Tuples

Meta programming

Function overloading

Templates

Program verification