Pular para conteúdo

Aula 01 - Introdução ao Rust e Setup do Ambiente 🦀

Objetivo

Objetivo: Compreender as motivações por trás da criação da linguagem Rust, compará-la com outras linguagens de sistema e configurar o ambiente de desenvolvimento.


1. O que é Rust? 🛡️

Rust é uma linguagem de programação multiparadigma, focada em segurança de memória, performance e concorrência segura. Criada por Graydon Hoare na Mozilla Research, ela foi projetada para resolver os problemas crônicos de gerenciamento de memória em C e C++.

Por que Rust?

  • Segurança de Memória: O compilador garante que você não terá erros como segfaults ou buffer overflows.
  • Performance: Velocidade comparável a C e C++, sem a sobrecarga de um Garbage Collector (GC).
  • Concorrência: O sistema de tipos previne data races em tempo de compilação.

2. Comparativo: Rust vs Outras Linguagens ⚖️

Característica 🦀 Rust 🏛️ C/C++ 🐹 Go 🐍 Python
Abstração Alta Baixa/Média Média Altíssima
Gerenciamento de Memória Ownership (Seguro) Manual (Inseguro) Garbage Collector Garbage Collector
Performance Máxima Máxima Alta Baixa
Segurança de Tipos Fortíssima Média Forte Dinâmica

Evolução das Linguagens de Sistema

graph LR
    A["C (1972)"] --> B["C++ (1985)"]
    B --> C["Rust (2010)"]
    D["Java (1995)"] -.-> C
    E["Ada"] -.-> C
    style C fill:#f96,stroke:#333,stroke-width:4px

3. Setup do Ambiente 🛠️

O Rust utiliza uma ferramenta chamada rustup para gerenciar versões da linguagem e ferramentas associadas.

Passos para Instalação

🪟 Windows

  1. Baixe o instalador rustup-init.exe em rustup.rs.
  2. Você precisará do Visual Studio C++ Build Tools instalado.
  3. No terminal, execute:
    $ rustup-init
    # Siga as instruções no prompt (selecione a opção padrão 1)
    

🐧 Linux/macOS

  1. Execute o comando no terminal:
    $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

4. O Ecossistema Rust 📦

Três ferramentas principais que você usará diariamente: 1. rustc: O compilador de Rust. 2. cargo: O gerenciador de pacotes e build system (O "canivete suíço"). 3. rustup: Instalador e gerenciador de versões.


5. Primeiro Programa: Olá, Mundo! 🚀

Vamos criar nosso primeiro código Rust manualmente para entender a base.

fn main() {
    println!("Olá, Rust! 🦀");
}

Usando o Cargo (Caminho Profissional)

$ cargo new hello_rust
$ cd hello_rust
$ cargo run
   Compiling hello_rust v0.1.0
    Finished dev [unoptimized + debuginfo] target(s) in 0.5s
     Running `target/debug/hello_rust`
Olá, mundo!

6. Mini-Projeto: Dashboard de Versão 📊

Sua missão é validar sua instalação e criar seu primeiro repositório:

  1. Certifique-se de que rustc --version e cargo --version funcionam.
  2. Crie um novo projeto com cargo new projeto_aula_01.
  3. Altere a mensagem no src/main.rs.
  4. Execute com cargo run.

7. Exercício de Fixação 🧠

Conceitos Chave

Rust não possui Garbage Collector. Isso significa que ele não precisa "pausar" seu programa para limpar a memória.

  1. Qual a principal diferença entre o gerenciamento de memória do Rust e do Java/C#?
  2. Para que serve o comando cargo build?
  3. O que acontece se você tentar compilar um código Rust que possui uma falha de segurança de memória?

Próxima Aula: Vamos explorar os Fundamentos da Linguagem (Variáveis e Tipos)! 🧩