Matchbox 0.2

Project Vision

Matchbox is designed to be a language with a clear identity: small enough to understand, fast enough to trust, portable enough to use anywhere, and complete enough that everyday programs do not immediately depend on a collection of external tools. The long-term vision is simple: everything important should be in the box.

That does not mean Matchbox should grow for its own sake. The goal is a compact language and runtime whose major components including syntax, tooling, debugging, storage, networking, graphics, and execution are designed to work together. New users should be able to learn the language through a clear, steady progression, while experienced developers should be able to understand the runtime model well enough to reason about performance, memory, and generated code.

Language Identity

Matchbox should be easy to read, easy to learn, and easy to write without feeling limited to toy programs. Syntax should be expressive where expression helps clarity, but plain enough that a reader can understand unfamiliar code without decoding ceremony. Type hints should be optional whenever the compiler can keep programs understandable and safe without requiring extra annotations.

The language should have a strong standard shape. Pattern matching, regular expressions, vectors, matrices, storage, web services, debugging, mathematics, artificial intelligence (AI), computer science, and game development tools should feel like Matchbox features rather than unrelated packages held together by convention.

Runtime Goals

Matchbox is built around a clean runtime model. Today, that model is a bytecode compiler and stack-based virtual machine. The VM gives the language a portable execution target, a predictable place for debugging support, and a concrete way to explain how values, calls, constants, and instructions work.

Long term, the VM should remain part of the language's identity even if Matchbox also gains native code or object file output. Bytecode is useful for portability, introspection, fast iteration, and teaching. Native output is useful for deployment, systems programming, and performance-sensitive programs. The two goals can support each other when the runtime model stays clean.

Performance and Portability

Matchbox should be lightning fast, portable, and lightweight. The implementation should avoid unnecessary layers, keep memory behavior understandable, and make efficient execution the normal path rather than a special mode. A Matchbox program should be able to start quickly, run predictably, and carry a small runtime footprint.

Portability matters because the language should not be tied to one host environment. The same core language should make sense for command-line tools, embedded utilities, services, games, and future systems-level work.

Safety and Memory

Matchbox should support systems programming without making memory behavior mysterious. The long-term target is memory safety with optimal memory management: safe defaults, clear ownership or lifetime rules, and enough control for low-level work when the programmer needs it.

Integer size, overflow behavior, storage layout, values, stack frames, and runtime objects should be documented rather than hidden. A developer should be able to understand not only what a program does, but how Matchbox represents and executes it.

Tooling and Debugging

Strong tooling is part of the language, not an afterthought. Matchbox should grow toward built-in debugging, useful diagnostics, bytecode inspection, formatting, editor support, and tools that explain what the compiler and VM are doing.

The best version of Matchbox should feel friendly at the beginning and transparent at depth. A beginner should get helpful errors and a simple learning curve. A more advanced user should be able to inspect tokens, AST behavior, bytecode, values, call frames, and storage without leaving the ecosystem.

Batteries in the Box

The long-term standard library and runtime should cover practical work directly. The goals include a built-in regular expression engine, strong pattern matching, a built-in web server, typed storage systems, mathematics and computer science foundations, support for artificial intelligence (AI) workflows, and game development foundations such as vectors, matrices, and OpenGL support. A future window manager is also possible if it fits the language's systems direction.

The unifying idea is not to add every feature imaginable. It is to make Matchbox feel coherent and capable out of the box: a language where the core tools for building, inspecting, storing, serving, and rendering are designed to work together.