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
- Baixe o instalador
rustup-init.exeem rustup.rs. - Você precisará do Visual Studio C++ Build Tools instalado.
- No terminal, execute:
🐧 Linux/macOS
- Execute o comando no terminal:
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.
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:
- Certifique-se de que
rustc --versionecargo --versionfuncionam. - Crie um novo projeto com
cargo new projeto_aula_01. - Altere a mensagem no
src/main.rs. - 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.
- Qual a principal diferença entre o gerenciamento de memória do Rust e do Java/C#?
- Para que serve o comando
cargo build? - 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)! 🧩