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).
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)