The design rationale
Why Makoto exists, and why each big decision was made.
The canonical docs (
language-design.md,language-grammar.md,official_libraries.md,extensions.md,tooling.md) say what Makoto is. This set says why: why the language exists and why each big decision was made. It is not a tutorial nor an API reference. It is the essay of the reasoning, mined from the design sessions (the real back-and-forth, the rejected alternatives, the pains, the accepted frictions).
Makoto redefines things that other languages take for granted: memory, async, errors, absence, concurrency, strings. Each file below takes one of these concepts and shows the rewrite. What it is in the general world, how Makoto positions itself, the argument, why not the alternatives, the concrete pain, and the mental model the programmer carries.
The documents
Section titled “The documents”| # | Document | The redefinition |
|---|---|---|
| 00 | Why Makoto | the thesis: Rust leaks, Go fuses, Makoto separates |
| 01 | Philosophy | the root models: opt-in, non-poisoning, boundaries, tiers |
| 02 | Memory | colorless: the object carries its strategy, no lifetimes |
| 03 | Async and IO | colorless: the process suspends, no async/await |
| 04 | Concurrency | shared-nothing: actors + channels + supervision |
| 05 | Errors | an error is a value: Result + error-sets; no ?, no exception |
| 06 | Absence | no null, no zero-value; absence is typed |
| 07 | Types | arbitrary width, decl unifies, structural satisfaction |
| 08 | Comptime and reflection | metaprogramming is a library, not magic |
| 09 | Strings | explicit unit; comparing is a method because “equal” is ambiguous |
| 10 | FFI | @cimport reads the header; all C shouts under c. |
| 11 | Ecosystem and tiers | stability comes from the architecture, and who owns the promise |
| 12 | Honest names | the name tells the truth about the consequence |
| 13 | Verification | guarantees as a ladder you climb one obligation at a time, never a mode you enter |
The thread that sews it all together
Section titled “The thread that sews it all together”One sentence reappears in every decision: “you only pay for what you summon” (the opt-in test). And one image governs the entire architecture. The language is made of subsystems that compose because they never stain each other: async does not color the type, memory does not leak strategy, FFI does not pollute the namespace. The name Makoto (誠, “sincerity/truth”) is not decoration. It is the thesis incarnate, the refusal to hide the cost of anything. That is why the doc is honest about what each choice costs (each file names the accepted friction), the same way §1 of the design doc is.