Recursos Modernos
O Rust Ă© construĂdo com toda a experiĂȘncia adquirida nas Ășltimas dĂ©cadas.
CaracterĂsticas da Linguagem
- Enums e correspondĂȘncia de padrĂ”es.
- Generics.
- FFI sem overhead.
- AbstraçÔes de custo zero.
Ferramentas
- Excelentes mensagens de erro do compilador.
- Gerenciador de dependĂȘncias integrado.
- Suporte integrado para testes.
- Excelente suporte ao protocolo de servidor de linguagem (LSP).
Pontos chave:
-
AbstraçÔes de custo zero, semelhantes ao C++, significa que vocĂȘ nĂŁo precisa âpagarâ por construçÔes de programação de alto nĂvel com memĂłria ou CPU. Por exemplo, escrever um loop usando
for
deve resultar aproximadamente no mesmo nĂvel de instruçÔes de baixo nĂvel quanto usar a construção.iter().fold()
. -
Pode valer a pena mencionar que Rust enums sĂŁo âTipos de Dados AlgĂ©bricosâ (âAlgebraic Data Typesâ), tambĂ©m conhecidos como âtipos de somaâ, que permitem que o sistema de tipos expresse coisas como
Option<T>
eResult<T, E>
. -
Lembre as pessoas de lerem os erros â muitos desenvolvedores se acostumaram ignore as longas mensagens do compilador. O compilador Rust Ă© significativamente mais âverbalâ do que outros compiladores. Muitas vezes, ele lhe fornecerĂĄ sugestĂ”es prĂĄticas, prontas para copiar e colar em seu cĂłdigo.
-
A biblioteca padrĂŁo do Rust (Rust standard library) Ă© pequena comparada a linguagens como Java, Python e Go. Rust nĂŁo vem com vĂĄrias coisas que vocĂȘ pode considerar padrĂŁo e essencial:
- um gerador de nĂșmeros aleatĂłrios, mas veja rand.
- suporte para SSL ou TLS, mas consulte rusttls.
- suporte para JSON, mas consulte serde_json. O raciocĂnio por trĂĄs disso Ă© que funcionalidade na biblioteca padrĂŁo nĂŁo pode ser descartada, portanto ela tem que ser muito estĂĄvel. Para os exemplos acima, a comunidade do Rust ainda estĂĄ trabalhando para encontrar a melhor solução â e talvez nĂŁo exista uma Ășnica âmelhor soluçãoâ para algumas dessas coisas. Rust vem com um gerenciador de pacotes embutido na forma de Cargo e isso torna trivial baixar e compilar crates de terceiros. Uma consequĂȘncia disso Ă© que a biblioteca padrĂŁo pode ser menor.
Descobrir bons crates de terceiros pode ser um problema. Sites como https://lib.rs/ ajudam com isso, permitindo que vocĂȘ compare mĂ©tricas de crates para encontrar um bom e confiĂĄvel.
-
rust-analyzer é uma implementação LSP bem suportada usada pelas principais IDEs e editores de texto.