Segurança de memória sem garbage collector
Pergunta
Como Rust garante segurança de memória sem um garbage collector, e o que isso implica em previsibilidade de latência?
Resposta esperada
Rust libera memória de forma determinística: quando o dono de um valor sai de escopo, o `drop` acontece ali, naquele ponto — o compilador insere as liberações em tempo de compilação a partir das regras de ownership/borrow. Não há uma thread de GC varrendo o heap em momentos imprevisíveis, então não há pausas de GC: a latência é previsível, o que importa pra sistemas de tempo real, jogos, trading, drivers. Pra ciclos de referência (grafos), Rust oferece `Rc`/`Arc` (contagem de referência) e `Weak` pra quebrar ciclos — contagem de referência ainda é determinística, só com custo por clone/drop. O trade-off: a garantia vem de restrições no que você pode escrever, verificadas no compilador, em vez de um runtime que resolve na marra.
Por que perguntam isso
Pergunta sênior. Contraste direto com a pergunta de pausa de GC do Java. Sinal bom: 'drop determinístico no fim do escopo' e o caso de latência previsível.