Developer Wouter van Oortmerssen released the Goose programming language, a new compiled language designed explicitly for high-performance computing. The project, discussed on Hacker News with 168 points, emphasizes minimal syntax and direct hardware mapping for maximum speed.
Language: Goose | Target: Native & WebAssembly | License: Apache 2.0
SIMD: Built-in | Paradigm: Imperative, C-like
What Goose Is and Isn't
Goose is a statically-typed, natively compiled language with a syntax deliberately reminiscent of C. Its primary design goal is performance through simplicity, stripping away features that add runtime overhead. It compiles directly to machine code or WebAssembly without a virtual machine or garbage collector.
The language is the creation of a veteran game and tools developer, signaling its intent for domains where control over hardware is critical. It is not a general-purpose language aiming for widespread adoption; it is a specialist tool for numerical computing, game engines, simulations, and compilers.
The Performance Proposition
Goose’s performance claims stem from several deliberate design choices. It offers built-in support for SIMD (Single Instruction, Multiple Data) operations at the language level, allowing developers to explicitly leverage parallel processing on modern CPUs without relying on compiler auto-vectorization.
Memory management is manual, akin to C, eliminating garbage collection pauses. The compiler performs few high-level optimizations, operating on the principle that the developer’s explicit intent—written in simple, close-to-metal code—is the most efficient path. Early examples suggest its output is competitive with hand-optimized C code for specific computational kernels.
How to Try Goose Right Now
Getting started requires building the compiler from source, as there are no pre-packaged binaries. The process is straightforward for developers familiar with command-line tools.
"Setup Steps"
git clone https://github.com/aardappel/goose.git
make in the root directory. The compiler is written in C++, requiring g++ or clang++..goose extension../goose yourfile.goose to compile and execute. Add the -o flag to generate a standalone executable.
The official language tour provides the quickest overview of syntax and capabilities.
Pros and Cons: The Trade-Offs
Advantages:
- Predictable Performance: Manual memory and explicit SIMD provide tight control over runtime behavior.
- Compilation Speed: The compiler itself is fast, favoring a quick edit-compile-run cycle.
- Minimalist Syntax: The C-like style is immediately familiar to a large pool of developers, reducing the learning curve for the basics.
- WASM Target: Ability to compile to WebAssembly opens use cases for high-performance compute in the browser.
Drawbacks:
- Immature Ecosystem: No package manager, minimal standard library, and limited tooling (debuggers, IDEs).
- Manual Memory Management: Requires diligent developer effort and introduces classic C-style risks like buffer overflows.
- Niche Appeal: The lack of high-level conveniences makes it unsuitable for most application-level software.
- Unproven at Scale: There are no large, public codebases to validate maintainability or compiler robustness.
Alternatives and Comparison
For high-performance native code, developers typically choose C, C++, Rust, or Zig. Goose positions itself as a simpler, more direct alternative to these.
| Feature | Goose | Zig | C |
|---|---|---|---|
| Memory Safety | Manual | Optional (via idioms) | Manual |
| SIMD Support | Language-level | Standard Library & Intrinsics | Compiler Intrinsics |
| Build System | Makefile | Built-in | External (Make, CMake) |
| Primary Goal | Max performance/simplicity | Robustness & clarity | Portability & control |
| Ecosystem | Minimal | Growing | Vast, mature |
Goose’s most direct comparison is to C, offering a slightly modernized syntax but a similarly bare-metal philosophy. Unlike Zig, it does not aim to improve safety; unlike Rust, it entirely avoids a borrow checker. Its built-in SIMD is a differentiating advantage over base C, requiring less platform-specific code.
Who Should (and Shouldn’t) Use Goose
Consider Goose if you are:
- A researcher or engineer building numerical or scientific computing kernels where every cycle counts.
- A game developer writing a custom engine or low-level systems and value a simple, transparent toolchain.
- A compiler enthusiast interested in language design or creating a DSL (Domain-Specific Language).
- Learning how high-performance code maps to hardware, as Goose provides fewer abstractions to mentally model.
Avoid Goose if you:
- Need to build a production service or application where safety, libraries, and team onboarding are priorities.
- Are new to programming or systems-level concepts like manual memory management.
- Require extensive third-party libraries or a rich package ecosystem.
- Need proven, long-term support and a large community for troubleshooting.
Bottom line: Goose is a compelling experiment in minimalism for experts who need performance first and are willing to trade safety and ecosystem for control.
Goose is less a replacement for modern systems languages and more a specialized chisel for developers who already think in registers and cache lines. Its success will be measured not by adoption breadth, but by its use in niche projects where its design constraints are actually liberating.

Top comments (0)