A Small, Friendly Programming Language
Designed for Learning and Clarity

Luma is a small, expressive language with optional types, rich collections and a readable syntax that compiles to fast, standalone Go programs.

Current version: 0.1.0 (Experimental)

Easy to read

Luma code is designed to be understandable at a glance, even if you are new to programming. The syntax stays close to natural language and avoids heavy punctuation, so coming back to examples later still feels clear and approachable.

Gentle introduction to types

Luma’s type system is meant to teach good habits without overwhelming you. Optional ? types make missing values explicit, and the rules are simple enough that you can build an intuition you can later carry over to other languages.

Collections that match how you think

Lists, maps and sets work the way you naturally think about groups of things: you add items, look them up, walk over them and filter them. This helps you focus on the idea you are modeling, not on wrestling with the language.

Real programs, not just toy examples

Luma code compiles to Go, so the small script you wrote to learn a concept can grow into a real command-line tool or service. You keep the friendly language while still getting fast binaries and straightforward deployment.

Small language, big clarity

The core of Luma is intentionally small, so the main ideas fit in your head at once. There are fewer ways to express the same thing, which makes codebases more consistent and makes it easier to teach, review and maintain code together.

Helps you avoid common mistakes

The language nudges you toward safer patterns by making potential problems visible. Missing values are explicit instead of hidden behind magic defaults, and errors are phrased to explain what went wrong in everyday terms.

A stepping stone to other languages

Concepts you meet in Luma - values, types, functions and control flow - map directly to Go and many other modern languages. Once you are comfortable with Luma, reading and understanding Go code feels much less intimidating.

Friendly for teaching and mentoring

Luma is designed to get out of the way when you are explaining ideas. Examples stay short enough to fit on a slide or a single screen, and you spend less time on setup and more time actually talking about how the code behaves.

Backed by focused documentation

The documentation is organized around practical questions: how to use a feature, what to watch out for, and how it looks in real code. You can quickly copy an example, tweak it and experiment without digging through long reference pages.


Who is Luma for?

Luma is intentionally small and approachable, so it fits naturally into a few roles.

Learners and students

  • Start with short, readable examples instead of complex projects.
  • Learn about values, types and functions in a straightforward way.
  • Build small programs that actually run and do something useful.

Teachers and mentors

  • Focus lessons on core ideas instead of environment setup.
  • Keep examples compact enough for slides and live-coding sessions.
  • Spend less time on project configuration and more time on questions.

Tinkerers and tool builders

  • Sketch ideas quickly with a clear, high-level syntax.
  • Keep the option to evolve experiments into more serious tools.
  • Use Luma as a friendly front-end while relying on Go for execution.

If you recognise yourself in any of these groups - or you simply like small, well-defined languages - Luma is meant to feel like a comfortable place to think in code.