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 almost all of its features in a 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 statically checked contracts.
  • 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.

Most of those goals are already implemented at least in a proof of concept form. More details can be found in the features descriptions below. 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 - basic syntax constructs, declarations, functions

Type system - generalities about the type system

Tuples

Meta programming

Function overloading

Templates

Contracts - statically checked contracts

Internals