Benefícios do Rust

Alguns pontos exclusivos do Rust:

  • Segurança de memória em tempo de compilação - classes inteiras de bugs de memória são prevenidas em tempo de compilação

    • Sem variáveis não inicializadas.
    • Sem double-frees.
    • Sem use-after-free.
    • Sem ponteiros NULL.
    • Sem mutexes bloqueados esquecidos.
    • Sem concorrência de dados entre threads.
    • Sem invalidação de iteradores.
  • Sem comportamento indefinido em tempo de execução - o que uma instrução Rust executa nunca é deixado indefinido

    • O acesso a matrizes tem limites verificados.
    • Estouro de números inteiros é definido (“pânico” ou wrap-around).
  • Recursos de linguagem modernos - tão expressivos e ergonômicos quanto linguagens de alto nível

    • Enums e correspondência de padrões.
    • Genéricos (Generics).
    • FFI sem overhead.
    • Abstrações de custo zero.
    • Excelentes mensagens de erro do compilador.
    • Gerenciador de dependências integrado.
    • Suporte integrado para testes.
    • Excelente suporte ao protocolo de servidor de linguagem (LSP).
This slide should take about 3 minutes.

Não gaste muito tempo aqui. Todos esses pontos serão abordados em maior profundidade mais tarde.

Certifique-se de perguntar à classe com quais linguagens de programação eles têm experiência. Dependendo da resposta você pode destacar diferentes características do Rust:

  • Experiência com C ou C++: Rust elimina toda uma classe de erros em tempo de execução através do verificador de empréstimos (borrow checker). Você obtém desempenho como em C e C++, mas sem os problemas de insegurança de memória. Além disso, você tem uma linguagem com funcionalidades modernas como correspondência de padrões e gerenciamento de dependência integrado.

  • Experiência com Java, Go, Python, JavaScript…: Você tem a mesma segurança de memória como nessas linguagens, além de uma semelhança com linguagens de alto nível. Além disso você obtém desempenho rápido e previsível como C e C++ (sem coletor de lixo ou “garbage collector”) bem como acesso a hardware de baixo nível (caso você precise)