🦀 Rust: Escrever código perfeito é possível!
O que é Rust? 🦀
Rust é uma linguagem de programação multiparadigma de alto-nível desenvolvida pela Mozilla. É compilada e estáticamente tipada.
A linguagem foi criada com alguns objetivos em mente:
- Segurança 👮
- Performance ⚡
- Simplicidade 📝
É uma linguagem de programação que conquistou meu coração nos últimos meses, e quero mostrar aqui de forma resumida e rápida o porquê do design da linguagem ser tão único e viciante de usar!
Como Rust torna meu programa seguro?
O design do Rust foi planejado de forma com que praticamente nenhum erro aconteça durante a execução do seu programa, já que a grande maioria dos erros são descobertos em tempo de compilação!
E o que isso quer dizer?
Resumindo: os problemas do seu código não vão crashar seu app às 3 da manhã devido a um bug imprevisível e indefinido causado por um undefined
!
Aqui vai um exemplo de uma das várias coisas que somente Rust pode nos proporcionar:
Em JavaScript, coisas assim podem e vão acontecer!
Rust não tem undefined
nem null
, o que torna impossível coisas assim de acontecerem. O compilador nem chega à compilar o código caso detecte algum erro, além de prover ao programador mensagens de erro amigáveis e fáceis de entender.
Mas se Rust não tem undefined/null, como podemos representar o "nada"?
Em Rust, existe uma coisa chamado Option!
Options são muito convenientes quando você pode ou não ter algum valor. E sua sintaxe é ainda mais simples. Options são enums, e podem ser definidas como:
Observe também que Option é genérica: Podendo conter (ou não) qualquer tipo de variável que você desejar!
Some(T)
contém o valor da variável caso exista. Mas nem sempre é possível obter um valor, então Option também possui a variante None
! None não é undefined, nem null, é simplesmente nada.
Perceba também que não existe uma keyword extra como null
ou undefined
na sintaxe de Rust para incluir valores nulos! Option é uma enum padrão de Rust, mas mesmo caso ela não existisse, você mesmo poderia ter criado ela com pouquíssimas linhas de código! Você mesmo pode criar sua forma segura de programar. Você não acha isso incrível? 🦀
Agora vamos para um exemplo de Options na prática:
Nesse exemplo, eu omiti o tipo das variáveis para simplificar, mas o compilador coloca o tipo automaticamente se você deixar o tipo implícito. Mas você pode também explicitar o tipo de uma option assim:
let algum_numero: Option<i32> = Some(30);
// i32 em Rust é o tipo para números inteiros em 32-bits
Options estão em todo canto! Ao invés de ficar em dúvida se uma função pode ou não retornar null
ou undefined
, se você ver que ela retorna Option
, você já sabe que nem sempre ela pode ter algum valor!
Rust é tão rápido quanto C/C++!
Rust é uma linguagem com "Zero-Cost-Abstraction". Isso significa que o seu código Rust super-seguro com Options (e outras funções da linguagem) consegue ser simples, fácil de entender e ao mesmo tempo super rápido!
Quando você executa seu código, o compilador verifica seu código inteiro e faz grande parte do trabalho pra você. Se algo der errado, ele para de compilar e mostra onde está o erro e como você pode resolvê-lo. Caso tudo esteja funcionando perfeitamente e de forma segura, o compilador simplesmente deleta as Options e abstrações do seu código e converte pra puro código de máquina otimizado, mantendo todas as funcionalidades intactas.
Ou seja, o seu código pode ao mesmo tempo ser simples para o desenvolvedor e super rápido e seguro para o consumidor, graças ao compilador inteligente da linguagem!
Conclusão
Rust é uma linguagem de programação que não gosta de seguir padrões. Ao invés de fazer coisas do jeito popular e familiar, ela prefere fazer as coisas do melhor jeito possível! 💡
Você não precisa sacrificar performance por segurança, ou segurança por um código limpo. Em Rust, você pode ter performance, segurança e um código fácil de ler, tudo ao mesmo tempo!
Nessa postagem eu quis mostrar apenas uma das diversas de escolhas de design do Rust. Existe também Result
, para tratar erros e falhas de forma segura. Se você quiser ler mais sobre as funcionalidades da linguagem, eu recomendo o Rust Book Oficial! 📚
⭐ Pra finalizar, uma frase que eu amo do canal No Boilerplate:
(inclusive, eu recomendo ele se você entender Inglês e quiser ver mais coisas sobre Rust)
"Os últimos 40 anos foram escritos em C/C++. Os próximos 40 anos serão escritos em Rust."
Muito obrigado por ler até aqui!