Rust para iniciantes – comece com a linguagem de programação mais apreciada
Rust foi eleita a linguagem de programação mais amada do Stack Overflow por cinco anos consecutivos. Este artigo explicará por que o Rust é incrível.
A Rust é um linguagem de programação de sistemas que você pode usar para escrever aplicativos com alto desempenho. Rust é usado por algumas das principais empresas de tecnologia como Dropbox e Cloudflare para fornecer velocidade e simultaneidade a seus clientes.
Nos últimos cinco anos consecutivos, Rust foi eleita a linguagem de programação mais amada.
Mas é provável que você não tenha trabalhado com Rust. Ou pior, você pode não ter ouvido falar disso antes. Então, vamos aprender mais sobre isso.
Por que Rust?
Vejamos por que um desenvolvedor escolheria Rust.
Linguagens de programação típicas como Python e C ++ abstraem muitos detalhes dos desenvolvedores.
Se você for um desenvolvedor júnior que trabalha em um aplicativo da web simples, isso pode não ser um problema. Você só quer encontrar uma solução para um problema.
Para aplicativos de grande escala que milhões de usuários usarão diariamente, a abordagem de ‘solução de problemas’ não funcionará. Mais usuários consomem mais recursos do sistema. E mais recursos significam contas maiores para sua empresa.
É aqui que a rust brilha. Rust combina facilidade de programação com acesso às configurações do sistema principal. Rust é construído com segurança de memória, simultaneidade e proteção desde o início.
Rust é uma “linguagem de programação de sistemas que se concentra na velocidade, segurança da memória e paralelismo”.
Rust também é considerada uma ótima alternativa para C ++. Rust oferece alto desempenho além de ajudar você elimine bugs comuns causados por linguagens como C ++.
Agora que você sabe o que o Rust pode fazer por você, vamos examinar o Rust em detalhes.
Origens
Rust é uma linguagem de programação de código aberto. Foi apresentado ao mundo pela primeira vez em 2010 por Graydon Hoare, enquanto ele trabalhava na Mozilla. Pouco depois, a Mozilla começou a patrocinar este projeto e ainda é um contribuidor principal do Rust.
A rust começou a ganhar popularidade com o passar dos anos. Até a Microsoft usa o Rust para criar componentes de software essenciais e seguros.
Características principais
Vejamos alguns recursos principais que fazem o Rust se destacar de outras linguagens de programação.
Atuação
Rust foi construído para ser de alto desempenho desde o início. Rust oferece controle refinado de gerenciamento de memória e tem uma biblioteca padrão mínima.
Se você olhar para alguns dos métricas compartilhadas pela Figma, eles tiveram melhorias incríveis no desempenho quando mudaram para o Rust.
O baixo consumo de memória do Rust também o torna a escolha ideal para programação de sistemas embarcados. Você pode usar o Rust para escrever software para dispositivos IoT, como hubs de automação residencial, sistemas de segurança inteligentes e assim por diante.
Segurança
Um dos principais motivos pelos quais a Microsoft decidiu torcer para o Rust é sua segurança.
A maioria das vulnerabilidades no software da Microsoft era devido ao gerenciamento de memória deficiente em C e C ++. Isso leva a explorações simples, mas poderosas, como o Exploração de estouro de buffer que havia aleijado o Windows por anos.
Portanto, a Microsoft decidiu procurar a melhor alternativa ao C ++. E eles encontraram Rust.
O uso do Rust elimina toda uma classe de vulnerabilidades de segurança dos aplicativos de software. Isso ajuda as empresas a criar aplicativos com melhor desempenho e maior segurança.
Simultaneidade
Simultaneidade é quando duas ou mais tarefas são iniciadas, executadas e concluídas em tempo de sobreposição. As operações de banco de dados são um ótimo exemplo para explicar a simultaneidade.
Quando milhares de usuários estão usando seu aplicativo ao mesmo tempo para executar ações diferentes, seu banco de dados os trata simultaneamente. A simultaneidade é um conceito chave quando se trata de escalonar aplicativos.
Simultaneidade e paralelismo também fazem parte do Rust. O Rust resolve a maioria dos problemas de simultaneidade durante o tempo de compilação, usando o conceito de Propriedades. Saiba como o Rust lida com a simultaneidade aqui.
Trabalhando com Rust
Agora que você entende os principais recursos do Rust, vamos escrever algumas linhas de código. Você pode encontre instruções de instalação aqui se você quiser experimentar o Rust em seu computador.
Vamos começar com um simples “Hello World!” função.
// Main function
fn main() {
println!("Hello World!");
}
Sim. É basicamente isso. Vamos tentar somar dois números.
// Main function
fn main() {
let a = 100;
let b = 200;
println!("Result is {}",a+b);
}
Novamente, bastante normal. Agora, vamos examinar uma operação de array.
// Main function
fn main(){
let arr:[i32;4] = [1,2,3,4];
println!("array size is {}",arr.len());
}
Se você olhar a linha 3, usamos :[i32;4]
. Aqui, dizemos a Rust que estamos declarando uma matriz de comprimento 4 com inteiros de 32 bits.
Declarar tipos de dados em detalhes é um fator chave para melhorar o desempenho de um programa. Você está ajudando o compilador a economizar tempo ao declarar explicitamente que tipo de dados você está prestes a atribuir a uma variável.
Permitir que o compilador descubra o tipo de dados é um dos principais motivos pelos quais você enfrenta problemas de desempenho ao dimensionar seu aplicativo.
Além disso, Rust é uma linguagem estaticamente tipada, o que significa que deve conhecer os tipos de todas as variáveis em tempo de compilação.
Embora Rust seja sintaticamente semelhante a C e C ++, não se deixe enganar por sua simplicidade. A rust vem com uma curva de aprendizado íngreme. Mas vale totalmente a pena, uma vez que você tenha uma boa compreensão do básico.
Quem usa Rust?
Agora que você tem uma boa noção do que é Rust, vamos ver quem usa Rust.
Microsoft
Outrora um feroz adversário do código aberto, a Microsoft é agora uma ávida contribuidora para vários projetos de código aberto. Seu projeto principal .net é uma das estruturas de código aberto mais populares usadas pelos desenvolvedores hoje.
A Microsoft escolheu o Rust para aplicativos essenciais de segurança e desempenho. Rust também é amplamente usado no Azure, especialmente em seu Plataforma IoT Edge para executar aplicativos de IA em dispositivos IoT.
Dropbox
O Dropbox usa Rust para melhorar a eficiência do data center. Rust agora está capacitando os principais serviços do Dropbox, atendendo a mais de 500 milhões de usuários.
Dropbox recentemente escreveu um artigo detalhado sobre como eles reescreveram seu mecanismo principal.
Nas próprias palavras do Dropbox,
Rust tem sido um multiplicador de força para nossa equipe, e apostar nele foi uma das melhores decisões que tomamos.
Rust também foi um fator contribuinte que ajudou o Dropbox a mover sua infraestrutura da AWS para seus próprios data centers.
Figma
Figma é uma ferramenta de design e prototipagem baseada em nuvem que você pode usar em seu navegador. É uma excelente ferramenta para projetar, prototipar e exportar seus projetos em código. Saiba mais sobre o Figma aqui.
A simultaneidade é crucial para uma ferramenta colaborativa em que muitos usuários trabalharão em um único design por vez. Figma usou o Rust para escrever um servidor de alto desempenho que os ajudou a dimensionar seu produto e alcançar o desempenho que estavam procurando.
Aqui está o artigo que Figma escreveu sobre sua experiência com Rust.
TL; DR
Rust é uma linguagem de programação de sistemas que foi votada como Linguagens de programação mais amadas do StackOverflow, quatro anos consecutivos.
A rust dá a você controle sobre detalhes de baixo nível e fornece melhorias notáveis em velocidade e estabilidade.
Ele ajudou empresas como Dropbox, Figma e Microsoft a criar aplicativos melhores para seus clientes.
A linguagem está sendo cada vez mais adotada por empresas que buscam dimensionar seus aplicativos com maior desempenho e simultaneidade.
Quem tem interesse em publicações como esta tenho um pequeno blog que quero voltar a posta em breve, ele fica como um "puxadinho" no site do meu portfólio: https://noetzold.tech/1137-2