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)