Mão na massa: primeiros passos com a linguagem de programação Rust!

Embora não queira me tornar um desenvolvedor, tenho muito interesse em aprimorar as minhas habilidades em programação, em vista da necessidade de atender a alguns requisitos infraestruturas baseadas em Redes Definidas por Software (SDN), além de me capacitar para lecionar unidades curriculares introdutórias sobre o assunto (quem sabe, até mesmo desenvolver alguns projetos pessoais). No momento, Python se tornou a minha referência no assunto, embora também acompanhe o desenvolvimento de outras linguagens de programação…

“Over the last few years, Rust has evolved from a curiosity brewed up in a Mozilla employee’s lab to a strong contender for the next generation of native applications and bare-metal solutions. Those advances come from Rust providing its own toolchain and component management system-along with certain popular features and quirks. This article is for developers new to Rust, or considering it for future projects…”

— by InfoWorld.

Uma delas é a linguagem Rust, a qual ganhou um grande destaque nestes últimos meses, ao ser integrada ao kernel Linux sob a “benção” do próprio Linus Torvalds (que por sua vez, é bastante conhecido pelo seu “apego” a linguagem C). Ela se destaca por enfatizar a escrita de códigos seguros, graças a sua maneira de lidar com a alocação da memória RAM (sem o uso de coletores de lixo e de ponteiros). Por fim, ela entrega uma excelente performance em aplicações de baixo nível, quanto praticidade em projetos de alto nível.

Serdar Yegulalp (editor da InfoWorld) promove uma bela introdução para esta linguagem de programação, destacando aspectos como básicos como a compreensão de suas ferramentas e as edições de lançamento, que por sua vez são subdivididas em três categorias: stable (estável), beta (testes) e nightly (experimental). Mais a frente, ele demonstra como realizar a sua instalação e configuração no sistema operacional, utilizando a ferramenta rustup, cargo e rusct para a instalação, o gerenciamento de pacotes e a compilação de programas, respectivamente.

A seguir, a configuração da IDE de desenvolvimento entra em cena e apesar desta linguagem ser relativamente nova (desenvolvida a partir de 2009, pela Mozilla Foundation), ele reforça o suporte provido por várias destas ferramentas, com destaque para o Microsoft Visual Studio Code. Outras ferramentas populares como o Eclipse também pode ser utilizada, através do downloads de pacotes feitos para ela ou da utilização de plugins para o Eclipse Photon. Por fim, ferramentas como o VIM e o EMACS possuem tanto plugins quanto modos específicos para o seu suporte, bastando apenas ativá-los para usá-los.

A partir daí, o desenvolvedor poderá criar novos projetos, utilizando para isto a sua ferramenta nativa para a gestão de pacotes Cargo. Alguns arquivos importantes são criados, como o Cargo.toml (com informações básicas do projeto) e o Cargo.lock (com uma lista de dependências geradas de forma automática), além de um sub-diretório src que será o responsável por armazenar o código-fonte. Embora seja possível criar esta estrutura de diretórios manualmente (o projeto exige que ela seja consistente, com código e metadados de projeto armazenados dentro deles de forma bem definida), o ideal será fazer isto através de suas ferramentas.

Curiosos? Eu não! Pois confesso que ainda estou “enrolado” com Python… &;-D