goose Documentation
goose is a minimal programming language built on top of the Go programming language. It is designed for simplicity and ease of use.
goose is dynamically typed, which means that you don't have to specify the type of a variable when you declare it. The type of a variable is determined at runtime based on the value that is assigned to it. This makes goose a very flexible language, but it also means that you have to be careful when working with variables to avoid type errors.
goose is an interpreted language, which means that code is executed line by line without prior compilation. There are no special optimizations or pre-processing. While this makes goose slower than compiled languages at scale, for small to medium-sized projects, its speed is more than enough thanks to fast startup times and low memory usage.
Get started
To start writing goose code, you need to install the goose binary. See the
getting started
guide for more information.
For a quick overview of the language,
take the
goose language tour.
Language Basics
-
Language Tour
New to goose? Start here to learn the basics.
-
goose for Go Developers
An introduction to goose for Go developers.
-
goose for JavaScript Developers
An introduction to goose for JavaScript developers.
-
Idioms
Common patterns and idioms in goose.
-
Style & Convention
Best practices for writing clean and idiomatic code.
-
FAQ
Frequently asked questions about goose.
-
Types
A guide to the built-in types in goose.
-
Variables
Learn variables, lexical scoping, and closures.
-
Control Flow
Loops, conditionals, error handling, and more.
-
Functions
Learn about functions, closures, and recursion.
-
Custom Types
Learn how to define and use custom types in goose.
-
Modules & Packages
Export your code and import other modules into your program.
-
Introspection
Learn how to inspect and manipulate code at runtime.