Rust para JS-eiros
Rust é uma linguagem de programação de sistemas o que está rapidamente roubando o coração dos desenvolvedores devido as otimas abstrações, velocidade e segurança.
Porque aprender rust?
Rust tem vindo a se tornar uma linguagem otima pra varios tipos de aplicações, como CLIs, aplicações Web, mobile. Se voce programa em js muito provavelmente deve ser um desenvolvedor web, então, existe um site que diz se o rust é web https://arewewebyet.org
Existem frameworks como rocket, actix e warp pra backend, existe yew que funciona em webassembly e usa um sistema parecido com react.
Gostei 🚀, eu quero testar, como eu instalo?
Primeira coisa: rust e uma linguagem compilada, isso significa que so precisa instalar o compilador na maquina do desenvolvedor, o binario gerado pelo compilador roda em qualquer maquina com a mesma arquitetura de cpu e sistema operacional que você.
Isso dito, vamos lá!
Existe um instalador chamado rustup, e muito facil de utilizar, e so seguir as instruções em https://rustup.rs. se estiver usando linux e mac vai pedir pra rodar um comando, e se tiver no windows vai ser um executavel. Em qualquer dos dois casos vai funcionar igual.
E agora você tem o compilador rust e o cargo na sua maquina 🎉.
Hello world 🌎
Vamos nos livrar da maldição do hello world! Vamos usar o gerenciador de pacotes e build system cargo, ele e responsavel por gerenciar o seu projeto e as dependências.
Para criar o projeto vamos usar cargo new hello_world
, isso irá criar uma nova crate binária dentro de uma nova pasta chamada hello_world
.
Vamos olhar um pouco a estrutura:
src
|____ main.rs
Cargo.toml
O cargo ja deixou um programinha simples de hello world dentro de src/main.rs, e criou um cargo.toml, que seria como um package.json no node. Vamos abrir o main.rs:
fn main() {
println!("Hello, World!")
}
Como da pra perceber usamos fn pra declarar funções no rust, e todo programa em rust começa na função main, dentro temos uma coisa que parece uma função, mas não é, quando tem um ! na frente, significa que é um macro, ele gera código, e assim que varios frameworks reduzem boilerplate, pense como um transpiler. no caso do println, ele gera codigo que printa hello world na tela.
Agora usamos o comando cargo run
, que vai compilar o nosso codigo e rodar, e temos um belissimo hello world na tela!
Hello, World!
Além do hello world
Recomendo ler o livro oficial do rust, e o melhor lugar para começar: https://doc.rust-lang.org/book