Rust: a linguagem de programação que está conquistando o mercado
Linux

Rust: a linguagem de programação que está conquistando o mercado

O Rust chegou ao kernel do Linux e tem ganhado cada vez mais espaço em grandes projetos de software livre. Vejamos alguns detalhes da história dessa linguagem de programação que há anos é apontada como a preferida pelos desenvolvedores.

A linguagem Rust e o kernel Linux

A maioria de vocês deve saber que uma linguagem de programação é uma forma de escrever o código dos softwares e que Linux é um kernel, a parte central de todo sistema operacional ou distribuição que gerencia a comunicação com cada parte do hardware dos dispositivos.

O próprio Linux é escrito em várias linguagens:

Linguagem% de participação no código
C98,5%
Assembly0,8%
Shell0,3%
Makefile0,2%
Python0,1%
Perl0.1%
Rust<0.1%
Linguagens do kernel Linux

O principal desenvolvedor do Linux é Linus Torvalds, mas, há mais de 13 mil contribuintes ao código. Como você vê na tabela, ele é basicamente escrito na linguagem C, que surgiu no início dos anos 70.

Com o avanço da tecnologia, um dos pontos fracos da linguagem C foi ficando evidente: o modo como é feito o gerenciamento da memória (RAM) que, consequentemente, abriu brechas para potenciais falhas de segurança.

Por que abrir espaço para o Rust no kernel?

A linguagem C, 50 anos após ter sido lançada, não contém em si o poder de evitar vulnerabilidades na gestão da memória e, por estar presente em muitíssimos servidores, é alvo de organizações criminosas que desejam invadir e roubar dados de empresas por todo o mundo.

Segundo Mark Russinovich, Chief Tecnology Officer (CTO) do Azure na Microsoft, afirmou que cerca de 70% das falhas de segurança que geram alertas (os conhecidos CVE) são ocasionadas pelo mau gerenciamento de memória e o Rust faria com que a maioria delas (70%) simplesmente deixasse de existir.

Ele promete ser uma solução para acomodar novas tecnologias e segurança dentro do kernel, da mesma forma como foi feita uma tentativa anos atrás de incorporar o C++, que acabou não prosperando. Ele é extremamente rápido, integra-se facilmente a outras linguagens, e gerencia eficientemente a memória (sem runtime nem garbage collector) melhorando o desempenho de serviços críticos.

A popularidade do Rust

O Rust começou a ser desenvolvido por um funcionário da Mozilla, Graydon Hoare, e a empresa começou a apoiar o projeto em 2009. Projetado para ser seguro, versátil, prático e confiável, a primeira versão estável do Rust foi lançada em 2015.

Todos os anos, o site Stack Overflow faz uma pesquisa para saber quais são as linguagens mais utilizadas pelos desenvolvedores. Pelo sétimo ano consecutivo, ele aparece como o “queridinho” de 87% dos mais de 70 mil desenvolvedores que responderam à seguinte pergunta:

“Em quais linguagens de programação, script e marcação você fez um extenso trabalho de desenvolvimento no ano passado e em quais deseja trabalhar no próximo ano?”

Fonte: 2022 Developer Survey — Stack Overflow
Fonte: 2022 Developer Survey — Stack Overflow

Apenas cerca de 40% dos desenvolvedores preferem programar em C, considerada por muitos como uma linguagem complexa, ainda que muito eficiente em cenários específicos. O Rust, por outro lado, é uma linguagem que se adapta a muitos propósitos e atrai a atenção de mais desenvolvedores, também pelo volume de oportunidades profissionais que se abrem para quem sabe programar em Rust.

Projetos desenvolvidos com o Rust

Não basta uma linguagem ser poderosa, é preciso que ela seja utilizada; além do kernel Linux, ele faz parte de um número crescente de projetos, como mostra o estudo da RedMonk, que cruza a popularidade de uma linguagem no Stack Overflow com o número de projetos onde ela se faz presente no GitHub.

Fonte: RedMonk Programming Language Ranking — January 2022
Fonte: RedMonk Programming Language Ranking — January 2022

Alguns dos projetos mais populares desenvolvidos em Rust são:

Renderização

  • Gecko: o motor de renderização do Firefox (e também o Servo, ainda sendo testado);
  • librsvg: motor de renderização de arquivos svg no GNOME e no MediaWiki;
  • Prime Video: o serviço de streaming de vídeo sob demanda utiliza ferramentas em Rust via WebAssembly;

Rede

  • cURL: utiliza a ferramenta hyper;
  • Discord: utiliza Rust em ferramentas nos seus servidores e nos aplicativos;
  • Figma: o editor de desenhos vetoriais para prototipagem de interfaces gráficas já foi apresentado no nosso blog e usa o Rust no seu servidor multiplayer;
  • Fractal: mensageiro baseado no protocolo Matrix;
  • Magic Pocket: o sistema de armazenamento do Dropbox está escrito em Rust;
  • npm Registry: o serviço de hospedagem (e instalação) de dependências para JavaScript e Node.js;
  • OpenDNS: o serviço de DNS usa várias ferramentas em Rust;
  • Pingora: o novo proxy da Cloudflare é escrito em Rust e substitui o nginx;
  • Tor: a rede anônima utiliza Rust em alguns componentes.

Sistemas operacionais e componentes

Além do Android e do Linux, que oferecem suporte experimental para desenvolvimento de drivers e módulos secundários, ele já aparece em alguns componentes de diversos sistemas operacionais como o Windows, o Google Fuchsia, o Redox, além do sistema de arquivos Stratis, utilizado pelo Fedora e RHEL.

O COSMIC, a interface gráfica utilizada pelo Pop!_OS, está sendo reescrito em Rust a partir do zero pela System76 e utilizará o Iced como toolkit, um kit de ferramentas para a geração da interface gráfica que substituirá o atual GTK.

Outros aplicativos e ferramentas

  • 1Password: gerenciador de senhas;
  • Cargo: gerenciador de pacotes da linguagem Rust que baixa as dependências, compila e instala ferramentas e aplicativos; também utilizado para criar pacotes de instalação nos formatos app, deb, msi, rpm e apk.
  • ripgrep: ferramenta de linha de comando que substitui o grep e utilizada pelo Visual Studio Code;
  • Starship: prompt de customização para vários shell;
  • Topgrade: ferramenta que detecta o que está instalado no seu sistema e executa automaticamente todas as rotinas para atualizar tudo, incluindo os pacotes de sistema, os Flatpaks, os aplicativos em Rust e Python, os contêineres e até o firmware do seu computador.

Você usa ou desenvolve alguma ferramenta em Rust? Não deixe de apoiar esse importante projeto e receba semanalmente notícias sobre tecnologia e open source através da nossa newsletter.

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!
64 postagens

Sobre o autor
Para mim, as melhores coisas da vida são gratuitas e não tem preço. Sou apaixonado por compartilhar conhecimento e experiências sobre tecnologia e software livre.
Artigos
    Postagens relacionadas
    VídeoLinux

    Qual o melhor Linux?

    VídeoLinux

    Por que tanta gente considera o Linux seguro?

    VídeoLinux

    Por que quem joga pelo PC não troca logo o Windows pelo Linux?