Para manter a tradição nosso primeiro programa em Rust ira ser um Hello world, mas irei aproveitar a oportunidade para introduzir alguns conceitos.
Para começar, com ajuda do vscode vamos criar um novo arquivo chamado hello_world.rs, que poderá ser salvo em qualquer diretório (no meu caso criei o arquivo em ~/workspace/rust).
Coloque no arquivo o seguinte código:
fn main() {
println!("Hello World!");
}
em seguida salve o arquivo.
esse é todo o código de que precisamos para o nosso hello world, antes de explicar em maiores detalhes o que cada parte do código acima significa vamos para o terminal/prompt para executarmos o nosso programa e ver se realmente esta tudo certo!
No Linux/Mac abra o seu terminal/prompt e use o comando 'cd' para ir até o diretório onde você salvou o arquivo, uma vez la digite o seguinte comando:

como vocês devem ter reparado aparentemente nada acontece não vemos nenhuma mensagem no nosso terminal, nenhum 'Hello world!'

Isso ocorre porque o comando acima invoca o compilador do rust o qual ira ler o código fonte e transformá-lo em um binário executável, se usarmos o comando ls (dir no windows) poderemos ver o executável que foi criado:

P.S.: No Windows o arquivo tera uma extensão .exe
tudo e que temos de fazer agora é executar esse executável (perdão pelo trocadilho mas eu não resisti

) da seguinte forma:

P.S.: No Windows o comando será .\main.exe
Diferente de Bash ou Python que são linguagens interpretadas Rust é uma linguagem compilada portanto em linhas gerais e de forma extremamente resumida, temos de compilar o código fonte com o compilador rust, que por baixo dos panos vai transformar nosso código em uma linguagem que o computador pode entender e com isso vai gerar o nosso binário executável, uma vez de posse do binário podemos usá-lo em um qualquer computador mesmo que o referido computador não possua o Rust instalado, compiladores modernos como o do Rust também podem fazer otimizações no código em tempo de compilação o que entre outras coisas torna os programas compilados bem mais eficientes/rápidos do que um programa feito em uma linguagem interpretada, sendo que programas em Rust são da ordem de centenas de vezes mais rápidos do que programas em Python.
Dito isto queria deixar claro que a 'explicação' no ultimo paragrafo foi uma forma extremamente simplista que encontrei de explicar a diferença entre linguagens compiladas e interpretadas, porém o tema é bem técnico e renderia posts e mais posts, se quiserem depois posso fazer um post só sobre o assunto para tentar elucidar melhor o tema.
Vamos agora a anatomia do nosso pequeno hello world:
fn main() {
println!("Hello world!");
}
[1] Antes de mais nada devemos dizer que o o que temos no código acima é uma função chamada 'main'
[2] fn é a palavra chave usada para definir uma função
[3] main é o nome da função
[4] os parênteses são onde colocamos os argumentos da nossa função, nesse caso nossa função não recebe nenhum argumento portanto apenas abrimos e fechamos os parênteses sem colocar nada dentro
[5] as chaves delimitam o inicio e o fim de um bloco de código nesse caso o inicio e o fim da função
[6] println! é uma macro que recebe uma string como argumento e a imprime na saída padrão (sobre macros iremos nos aprofundar nesse tema no ORUTUF, mas encare como uma espécie de função no momento)
[7] o ';' que deve ser usado ao final de uma linha
[8] por fim temos de ter em mente que todo executável feito em Rust deve possuir uma função chamada 'main' a qual sera a primeira ser executada, servindo como um ponto de entrada dos nossos programas.
Sei que esse tópico foi bem básico mas agora ja temos pelo menos um gostinho e ja entendemos a estrutura básica de uma função em Rust, sendo que funções são a espinha dorsal de qualquer programa feito em Rust.
Nos próximos tópicos pretendo abordar variáveis, mais sobre funções, loops, controles de fluxo, tipos de dados, o eco sistema de ferramentas(cargo, rustfmt e etc), plugins do vscode para Rust e muito mais.
Abaixo postem as duvidas, criticas e sugestões se tiverem!