Pular para o conteúdo

O livro

Makoto by example: o livro

O material progressivo: cada capítulo se apoia no anterior.

book.md · 1.563 linhas · 38 min de leitura

Makoto (誠, “sinceridade/verdade”) é uma linguagem de sistemas compilada. Reúne resiliência estilo BEAM (processos isolados, supervisão, let it crash), concorrência estilo Go (channels), tipos estilo Rust sem lifetimes e comptime/IO-colorless/allocators/FFI-C estilo Zig, tudo isso sem null, sem unit e sem function coloring.

Este é o material de ensino progressivo: cada capítulo constrói sobre o anterior, e todo conceito vem com um trecho curto e rodável. CLI: mk (alias de makoto). Fonte: .mko (core) e .mkoui (UI). Rode os exemplos com mk run arquivo.mko.

# Capítulo O que você aprende
00 Olá, Makoto o pitch, instalar, mk run, hello world
01 Valores e tipos let/var/const, iN/uN/float/bool/string, Optional (sem null), sem zero-value
02 Funções e fluxo fn, saídas explícitas (return/?:/=>), match, loop
03 Tipos compostos decl (struct/enum/interface), pattern matching, variant-set
04 Erros Result, error-sets, catch, sem ?, noreturn
05 Coleções e strings List/Map/Set, camada funcional, strings e interpolação
06 Processos e channels spawn, channels, match/select, timeout, atores
07 Resiliência supervisores, links, monitors, @supervisor, let-it-crash
08 Memória colorless, GC default, @mm, @transfer/@promote, OOM
09 Channels de rede Channel[T] sobre net, Serializable, o RPC nativo
10 Comptime e reflexão comptime, reflect(T), generics, contratos
11 Interfaces satisfação estrutural, as interfaces pequenas
12 Módulos e ecossistema bin/lib (mk.mod/mk.project), use, os tiers, libs oficiais, o CLI mk
13 FFI e baixo nível @cimport (C), inline asm, o namespace c
14 Extensão de UI .mkoui, @state/@component, ilhas, @server/@client
15 Tooling na prática mk build/run/test/fmt, observer/profiler/debugger, package manager
16 Garantias a camada de verificação: ownership, refinamentos, sessões, provas

Leia em ordem na primeira passada: a progressão é proposital (erros antes de coleções, processos antes de resiliência, comptime antes de interfaces genéricas). Depois use como referência por tema.

Tudo aqui usa só construtos que existem na linguagem (fonte da verdade: language-design.md + language-grammar.md + official_libraries.md + extensions.md + tooling.md). Nada de sintaxe inventada.