Conceitos
As ideias sobre as quais a Makoto é construída, cada uma explicada até o fundo.
Uma linguagem de sistemas é um conjunto de subsistemas: execução, tipos, memória, concorrência, erros. A aposta da Makoto é que eles compõem porque nunca mancham uns aos outros. Cada página abaixo pega um subsistema e vai até o fundo: o que ele é, por que tem esse formato e quanto custa.
Cada conceito também tem um ensaio no racional que defende a decisão, nomeia as alternativas que perderam e lista o atrito que a Makoto aceitou de propósito.
VerificaçãoGarantias como uma escada: ownership, refinamentos, sessões, provas. Desenhado, ainda não implementado.
MemóriaMemória sem cor: a estratégia viaja com o objeto, nunca com a função que o toca.
ProcessosHeaps isolados, falhas contidas, dois schedulers atrás de uma API.
ChannelsChannels tipados, select como um match sem sujeito, prazos por escrito.
SupervisãoLet it crash: links, monitors, limites de restart, e uma árvore desenhada pelo aninhamento dos spawns.
ErrosErros são valores: Result mais error-sets fechados. Sem exceções, sem operador ?.
IO sem corSem async, sem await: quem suspende é o processo, nunca a função.
ComptimeTipos são valores de compilação, e reflexão é uma chamada de biblioteca.
TiposUm decl para struct, enum e interface. Sum types e generics, sem lifetimes.