What is Luma

Luma is a modern, minimalistic programming language designed to bring clarity and precision to everyday programming — while compiling cleanly and efficiently into Go.

At its core, Luma is about balance:

  • Statically typed but friendly to beginners.
  • Concise but never cryptic.
  • Safe but not overengineered.
  • Flexible but thoughtfully constrained.

Whether you’re building tools, services, or educational projects, Luma offers a clear and expressive way to write code without the ceremony of traditional languages or the loose ends of scripting ones.

Why does Luma exist?

Luma was born from the desire to create a language that:

  • Feels intuitive like Python, but doesn’t sacrifice type safety.
  • Has first-class types like Rust or Kotlin, but without the mental overhead.
  • Targets Go as its backend, allowing it to tap into a mature, battle-tested runtime.
  • Eliminates boilerplate, reducing distractions in code.
  • Supports clarity-first syntax, even in advanced constructs like iteration, optional types, or conversion.

It’s not about replacing existing languages — it’s about offering a fresh middle ground.

What makes Luma special?

  • Optional Types (?int, ?str) for safe defaults and clear intent.
  • Clean Type Inference while remaining statically typed.
  • Method-like Calls (e.g., name.to_int(0)) with expressive fallback handling.
  • Uniform Syntax for Collections: lists, maps, sets all feel natural.
  • Inline iteration with .walk(index, value)->{ ... } or ->print(x).
  • Extensible Built-ins that respect types (.type(), .is_type(), .to_byte(), etc.)
  • Compiles to Go, giving you native speed and deployment freedom.

Simple Example

name: str = "42"
age: int = name.to_int(0)

print("Age is ${age}")

This will compile into Go, and then into a binary - cleanly and with strong typing throughout.

What can you build with Luma?

Luma is great for:

  • Small command-line tools
  • Learning and teaching programming concepts
  • Type-safe utilities
  • Transforming structured data (JSON, files)
  • Experimenting with DSLs or Go codegen

As the language matures, more targets (like WASM or microservices) can be considered.

Last updated on