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)