Alura > Cursos de Programação > Cursos de > Conteúdos de > Primeiras aulas do curso Rust: a linguagem de programação performática e segura

Rust: a linguagem de programação performática e segura

Primeiros passos - Apresentação

E aí pessoal. Sejam muito bem-vindos a Alura. Sou o Vinicius Dias e vou guiar vocês nesse treinamento onde vamos conhecer essa linguagem de programação que é tão amada chamada Rust. Primeiro vamos entender o que é essa tal de Rust. O que é essa linguagem de programação e qual a diferença entre ela e várias outras demais linguagens que já temos no mercado. O que faz do Rust tão especial.

Depois de entender isso, vamos obviamente instalar um ambiente de desenvolvimento na nossa máquina. Então quando instalarmos começamos a entender que precisamos de um compilador, vamos executar esse código gerado pelo compilador depois. Então começamos a ter um pouco de trabalho, mas sem problema porque vamos avançando daí.

Com o ambiente configurado, começamos do básico. Vamos ver como declarar variáveis, vamos ver quais são os tipos de variáveis que podemos declarar utilizando o Rust e vamos ver que ele dá um controle interessante para nós de quantos bites vamos utilizar para cada tipo de dado. Isso é bastante legal.

Tendo entendido as variáveis, avançamos um pouco na sintaxe. Vemos sobre constantes, vemos alguns recursos específicos como o Shadowing e escopo, Scopo unsafe, esse tipo de coisa. Depois vemos um pouco sobre funções, como receber parâmetros e retornar valores. E algumas particularidades do Rust.

A partir daí vamos partir para o ponto de modificar o fluxo de execução da nossa aplicação, o famoso if primeiro. Depois vamos ver alguns loops, como executar e repetir código. Depois vamos entrar no famoso Match Statement ou Match Expression. Então vamos ver o que é esse tal de Match e como ele pode ser útil.

A partir daí vamos realmente entrar em especificidade do Rust. Vamos entender um pouco sobre o gerenciamento de memória e como o Rust faz esse tal de gerenciamento com conceitos de Ownership e Borrowing. Então isso vai ser bem interessante. É uma parte um pouco mais densa, mas muito importante.

Depois dessa parte vamos ver um pouco de Pattern Matching só para ter um gosto das possibilidades que ele traz e aí vamos pegar um pouco na parte de ecossistema. Vamos entender como gerenciar um projeto de forma mais profissional com dependências e etc., como fazer o Build sem ter que compilar arquivo por arquivo.

Depois vamos integrar com uma extensão para o nosso editor de código. Isso serve para vários editores de código. Então espero que você aproveite bastante esse treinamento. De novo, é só um treinamento introdutório essa linguagem. Então só fazer arranhar a superfície do Rust. Não vamos entrar em assuntos super avançados. Mas é uma boa introdução para começarmos o estudo nessa linguagem.

E se em algum momento do treinamento alguma coisa não ficar muito clara, não hesite. Você pode abrir uma dúvida no fórum. Tento responder pessoalmente sempre que possível. Mas quando não consigo, temos uma comunidade bem grande de moderadores, alunos e instrutores, e com certeza alguém vai conseguir te ajudar.

Mais uma vez, sejam muito bem-vindos. Espero que gostem bastante desse treinamento. Então já vejo vocês na próxima aula para começarmos a entender um pouco das vantagens e desvantagens. Na verdade, as diferenças do Rust.

Primeiros passos - Por que Rust?

E aí pessoal, bem-vindos de volta. Então antes de colocarmos a mão na massa e realmente escrever código em Rust, vamos entender porque utilizar essa linguagem de programação. Qual a diferença dela para outras linguagens que já existem no mercado, qual é o propósito dela.

Dando uma olhada no site oficial que é "rust-lang.org" vemos que Rust tem o foco em performance, confiabilidade, vamos dizer assim, Reliability não tem uma tradução tão interessante, e Productivity que é produtividade. Então como ela junta performance, confiabilidade e produtividade?

O que acontece? Rust é uma linguagem compilada. Diferente de linguagens interpretadas como o Python, Java Script, PHP, Ruby. E diferente também de linguagens que rodam em máquinas virtuais, como C#, Java e algumas outras.

Então o Rust é mais semelhante a C, C++ e outras linguagens que são realmente compiladas para código de máquina. Então quando escrevemos Rust, escrevemos um código, esse código passa por um compilador e temos um binário como saída para executar esse binário. Um arquivo realmente executável.

Então temos uma pequena diferença entre algumas linguagens mais famosas, vamos dizer assim. Então o Rust nesse ponto se assemelha ao C++, ao C. No ponto de confiabilidade, temos alguns pontos. Primeiro um sistema de tipos bastante rico, bastante eficiente, bastante amplo. Então o Rust já fornece para nós diversos tipos para trabalharmos. Inclusive, poupando memória quando necessário ou utilizando mais memória caso queiramos.

Então o Rust é bem flexível nesse ponto e permite que tenhamos esse controle. Além disso ele também tem alguns pontos onde ele ajuda bastante na gestão de memória. E esse é um outro ponto que também entra na produtividade. Então vamos pensar em linguagens mais para o lado de máquinas virtuais ou linguagens interpretadas.

Quando você aloca uma variável, quando aloca um valor em memória você cria uma variável, abre um arquivo ou algo assim, quando aquela função ou método, quando aquele pedaço de código encerra, esse recurso é liberado normalmente. Então se você cria um objeto e esse objeto não existe mais naquele escopo, a memória já é liberada.

Já em linguagens como C++ ou C, existem formas de você, por exemplo, criar um objeto ou alocar uma memória e essa memória ficar lá alocada para sempre caso você esqueça de liberar. Então existem alguns cenários onde você precisa explicitamente liberar a memória.

Então o Rust trabalha com a locação de memória. Ele te permite alocar memória de uma forma mais controlada, mas ele também te dá essa segurança que previne vazamento de memória. Ele fecha recursos automaticamente quando faz sentido e te avisa que você esqueceu de fechar quando ele não pode fechar, quando não faz sentido ele fechar automaticamente.

Então nesse ponto ele é bastante interessante para que não nos preocupemos tanto quanto precisa se preocupar em C++, por exemplo, para gerenciar memória, evitar vazamentos de memória e esse tipo de coisa. E de novo, pensando na produtividade, além desse ponto, existe um compilador de Rust que é muito interessante, ele é muito elogiado porque as mensagens de erro tendem a ser um pouco mais amigáveis do que, por exemplo, o GCC ou o G++ que são os compiladores mais famosos de C e de C++.

Mas também existe um ecossistema interessante. Por exemplo, uma Build Tool, um ecossistema de bibliotecas que você consegue trazer com um gerenciador de bibliotecas. E não se preocupa se estou falando grego, vamos conversar mais sobre isso tudo durante esse treinamento. Mas o ponto é, o foco do Rust é ser uma linguagem compilada com muita performance. Ou seja, nesse ponto ele se assemelha ao C++, por exemplo.

Mas também te dá segurança e confiabilidade na linguagem. Então nesse ponto ele se assemelha a linguagens interpretadas ou que rodam em máquinas virtuais. E ele também te dá produtividade de novo se assemelhando a essas linguagens que não são realmente compiladas.

Não que você não possa ser produtivo com o C++. Longe disso. Muitas ferramentas gigantes são criadas em C++. Só que a ideia do Rust é pegar as vantagens de um mundo, as vantagens e outro mundo e unir. Então o Rust hoje em dia é muito utilizado, por exemplo, para a criação de ferramentas que demandam performances. Boa parte do Firefox é escrito em Rust.

Já existem projetos para que o próprio Windows tenha partes do seu kernel, do núcleo do sistema operacional escrito em Rust. Então Rust é uma linguagem que te permite escrever código mais baixo nível. Mas você também possui bibliotecas que te permitem criar, por exemplo, ferramentas Web.

Existe alguns conteúdos sobre isso na internet. Tem um Podcast no “Hipsters Ponto Tech” onde fala um pouco de casos de uso do Rust. Então vale a pena você dar uma olhada para entender um pouco melhor onde o Rust pode ser usado. Mas para finalizar esse vídeo e encerrar porque já estou me alongando. Rust é uma linguagem compilada com foco em performance, mas sem perder a produtividade, sem te dificultar muito a vida como algumas pessoas acreditam que, por exemplo, o C++ faça.

Então agora que já entendemos um pouco do propósito, vamos partir em instalar o Rust na nossa máquina para conseguirmos finalmente escrever algum código utilizando essa nova linguagem.

Primeiros passos - Instalando o Rust

[00:00] Pessoal, bem-vindos de volta. Então vamos instalar o Rust para que possamos realmente escrever código e executar alguma coisa que fizermos com o Rust. Como comentei no vídeo anterior, o Rust é uma linguagem compilada. Então vamos precisar do compilador de Rust.

Então vamos escrever um código, passar pelo compilador e isso vai trazer um executável para nós. E esse executável rodamos em qualquer lugar. Claro, dentro daquele sistema operacional. Se compilei no Windows, vou rodar no Windows. Se compilei no Linux, vou rodar no Linux e assim em diante.

Mas vamos lá. Vou clicar em “Getting started”. Aqui é bastante interessante porque a documentação do Rust como um todo é bastante amigável. Tanto essa parte de Getting started quanto essa parte de Learn. É mais um tutorial do que uma documentação difícil de ler e extensa.

Então é bastante interessante. E aqui ele já identifica que estou utilizando o Windows. Como ele identificou que estou utilizando o Windows, ele me deu algumas opções para instalar. Uma é baixando o instalador e o inicializador do Rust e a outra é utilizando WSL.

Para não precisar mostrar como habilitar WSL e explicar sobre WSL, vou utilizar essa primeira opção. E para utilizar essa primeira opção, ou antes, ou depois, não importa, de instalar o Rust em si, precisamos de algumas ferramentas de Build que o Visual Studio fornece. São gratuitas e é com elas que no ambiente Windows vamos conseguir fazer compilações e etc.

Então você pode acessar esse link. Ele leva um tempo para carregar. E você vai clicar em "Baixar Ferramentas de Compilação". Isso vai trazer um exe, você vai iniciar essa instalação e ele vai te abrir uma caixa. Já tenho ele instalado aqui, por isso não estou refazendo. Ele vai te abrir uma caixa perguntando quais coisas você quer instalar. Tem várias opções de .NET, de C#, C++.

Você vai marcar a opção de C++ e instalar. É uma instalação bastante demorada, por isso não trouxe. Ele vai baixar bastante coisa. No meu computador foram cerca de 7GB. Então depois que instalamos isso tudo, podemos voltar para a página do Rust e aí sim baixar o instalador.

Já tenho, mas vou baixar mais um só para fazer todo o processo com vocês. Então, clicou no instalador do Rust, ele vai abrir um terminal, deixa eu trazer a janela do terminal que ele acabou de abrir, e vai informar. Primeiro ele verifica se você tem alguma dependência que precisa instalar.

E se precisar, ele tenta instalar tudo aqui. Como não é o meu caso, tenho tudo já instalado, ele vai me oferecer as opções de continuar a instalação no modo padrão, ou seja, com tudo o que já está configurado aqui. Se quero customizar a instalação, ou seja, se quero modificar alguma coisa na instalação ou se quero modificar o local onde vai ser instalado e etc.

Não quero mudar nada. Então vou deixar o padrão e instalar. O Rust agora está instalado. Então posso fechar esse terminal e abrir uma nova tela. Então se você estiver no Windows, no Linux ou no Mac, você vai abrir um terminal. No Windows você pode abrir o prompt de comando, o PowerShell, o Git Bash, um terminal do seu WSL, onde você preferir trabalhar, onde você está habituado a trabalhar.

Então eu, como não estou habituado a trabalhar com Windows, vou abrir um PowerShell. Com o PowerShell aberto podemos digitar "rustup" para ver o que temos. Ele já mostra para nós algumas possibilidades de comandos. Por exemplo, posso tentar atualizar o meu ambiente do Rust. Mas vamos somente ver a nossa versão. Então "rustup -V". E estou com o "rustup 1.24" e o "rustc" que é o compilador que está na versão "1.58".

Se você estiver com uma versão mais nova não precisa se preocupar porque nesse treinamento vamos falar sobre a base, sobre os fundamentos da linguagem. E isso muito provavelmente não vai mudar. Não vamos entrar em detalhes de especificidade de versão. Então pode ficar tranquilo e instalar padrão. Não precisa focar nessa versão.

Agora com o ambiente instalado e ativado e acho válido citar, deixa eu voltar para a página do Rust. Como disse, ele identificou que estou no Windows, então me ofereceu essas opções. Quando ele identificar que você está no Linux ou no Mac ele já vai te dar a forma mais prática de instalar, vamos dizer assim.

Ele vai te dar um comando para o Linux, vai te dar o comando do Homebrew para o Mac. Então é só rodar esse comando e ser feliz. Aqui no Windows que é um pouco mais chato, precisando instalar essas Build Tools do Visual C++ e depois rodar o instalador em si. Mas, de novo, caso você utilize o WSL, também seria só um comando.

Mas, mais uma vez para não precisar configurar essas coisas, fui pelo caminho mais longo. Vamos lá. Agora que temos o Rust instalado, vou escrever algum código, o famoso "Hello World". Então quero escrever um código que exiba alguma coisa que execute esse código em Rust e quero compilar aqui. Então deixa eu limpar a tela. "Ctrl + L" para limpar a tela caso não saiba.

Vou criar com o Notepad mesmo, ou seja, com o bloco de notas um arquivo chamado "main.rs". Pode chamar esse arquivo de qualquer coisa. Mas a extensão é interessante manter porque esse "rs" é o padrão do Rust. Então vou tentar abrir. Esse arquivo não existe, então estou criando um novo.

Primeiro detalhe de Rust, tudo começa na função "main". Então se você já sabe C ou C++ ou Java ou C#, isso já é meio que normal. Você já está habituado com isso começar com uma função "main". Para criarmos uma função em Rust é a palavra "fn" e depois o nome da função. Essa função não recebe nenhum parâmetro. Não preciso informar o retorno. Falamos mais sobre isso mais para frente. Então já posso escrever os meus códigos aqui.

Deixa eu fechar antes que esqueça. E aqui dentro posso chamar várias funções. A função que exibe na tela é o "println" com exclamação. Essa função vai exibir um "Ola mundo!". Só não estou colocando o acento porque, como disse, não estou habituado com Windows, não sei se dá problema ou se tenho que configurar algo. Então para não nos prendermos nesses detalhes, o meu "Ola mundo!" é sem acento, ponto e vírgula e salvei. "Ctrl + S" para salvar.

Vou voltar para o terminal. Então se eu digitar dir ou ls, vou ver que dentro dessa pasta atual que foi onde eu criei o arquivo, você pode criar onde quiser, temos o arquivo "main.rs". Então o que quero fazer? Pegar esse código fonte e compilar. O compilador em Rust é chamado de rustc. Quando executo o "rustc" passando esse arquivo por parâmetro, o que ele vai fazer? Ele executa e não me mostra nada. Será que deu certo? Será que não deu?

Quando exibo os arquivos dessa pasta de novo, tenho um "main.exe". Ou seja, ele pegou o mesmo arquivo e gerou um executável. Então poderia ir lá na pasta e dar dois cliques nele. Só que o que isso ia fazer? Ia abrir um terminal, exibir aquela tela e fechar o terminal. Muito mais rápido do que o olho humano conseguiria ver. Então já vou executar ele pelo terminal digitando o main.exe.

Caso você não esteja habituado com terminais, quando começo a digitar algo e o terminal consegue me ajudar, posso dar "TAB" porque ele vai completar para mim. Então digitei o main.exe e quando dou "Enter" está lá o "Ola mundo!". Então agora já temos o ambiente configurado para começar a escrever código Rust. Já compilamos o primeiro código, então já começamos a brincar.

Você vê que não estou utilizando nenhum editor de código. Caso você já tenha algum instalado, pode utilizar qualquer um porque vamos falar sobre ambientes lá no futuro. Por enquanto vou continuar utilizando o Notepad. Às vezes vejo se edito alguma coisa pelo terminal mesmo. Se em algum momento me irritar, abro um editor de código.

Mas o ponto é, tudo o que precisarmos de ferramenta, está no nosso terminal. Então pode utilizar o que você está habituado por enquanto. Então vamos para o próximo capítulo. Finalmente começar a realmente entender um pouco mais sobre a sintaxe do Rust.

Sobre o curso Rust: a linguagem de programação performática e segura

O curso Rust: a linguagem de programação performática e segura possui 135 minutos de vídeos, em um total de 45 atividades. Gostou? Conheça nossos outros cursos de em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri powered by ChatGPT

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas