Skip to content

Design Goals

Matt Hall edited this page Jul 8, 2022 · 2 revisions

Introduction

This document outlines the design goals of the language. It's important to understand that the current state of the language may not match these design goals, and these goals may change over time.

Goals

  • Inspire programmer confidence - the developer should feel fluent and powerful.
  • Watertight logic - every possible case should be handled and acted upon.
  • Fast iteration - support rapid iteration times through a REPL and quick compile times.
  • Write less code - more code provides more surface area for bugs. The language should be succinct and readable.
  • Integrated Ecosystem - built in tools including a package manager, code formatter, test runner, and documentation system.

Non-goals

  • Performance.
    • The JIT-compiled JVM backend will provide sufficient performance for this experiment.
  • Systems-level programming.
    • While a native code or WASM backend may be a future target, C/C++/Rust/Zig-esque programming is out of the scope of this project.
Clone this wiki locally