Sim, a Linguagem Rust pode ser usada em Data Science e Machine Learning, embora não seja a linguagem mais comum para essa finalidade. Tradicionalmente, Python e R são as linguagens mais populares devido à sua facilidade de uso e à ampla disponibilidade de bibliotecas e ferramentas específicas.

No entanto, Rust vem ganhado popularidade devido à sua eficiência, desempenho e segurança. E ganhou ainda mais notoriedade quando a Microsoft anunciou que parte do kernel do Windows está sendo reescrita em Rust. Leia a matéria sobre isso aqui.

Vamos compreender o que é a linguagem e o que pode vir por aí em Ciência de Dados e Machine Learning.

O Que é Rust?

Rust é uma linguagem de programação desenvolvida pela Mozilla Research, com o objetivo de fornecer segurança, desempenho e paralelismo. A primeira versão estável da linguagem, Rust 1.0, foi lançada em 2015. Rust foi projetada para ser uma linguagem de programação segura e moderna, que evita erros comuns de programação, como acessos à memória inválidos, corrupção de memória e vazamentos de memória.

Algumas das características notáveis da Linguagem Rust incluem:

Gerenciamento de memória seguro: Rust usa um sistema para gerenciar a memória de forma segura e prevenir erros comuns, como acessos à memória inválidos e corrupção de memória, sem a necessidade de um coletor de lixo.

Desempenho: Rust é compilado diretamente para código de máquina, sem necessidade de uma máquina virtual, o que proporciona alto desempenho semelhante ao de linguagens como C e C++.

Concorrência e paralelismo: Rust possui suporte nativo para concorrência e paralelismo, facilitando o desenvolvimento de programas que tiram proveito de múltiplos núcleos de processador e sistemas distribuídos.

Interoperabilidade com outras linguagens: Rust pode ser facilmente integrada com código C e C++ e pode ser usada como uma alternativa mais segura e moderna para essas linguagens.

Comunidade ativa e crescente: Rust tem uma comunidade de desenvolvedores ativa e em crescimento, que contribui para o ecossistema de bibliotecas e ferramentas disponíveis.

Devido às suas características, Rust tem sido adotada em uma ampla gama de aplicações, incluindo desenvolvimento de sistemas operacionais, servidores web, ferramentas de linha de comando, bibliotecas de criptografia e até jogos. Além disso, empresas como Google, Microsoft, Facebook e Amazon têm adotado Rust em projetos internos e de código aberto.

Aqui está o site oficial da linguagem: Rust Programming Language

Por Que Rust?

Ao longo de décadas, os cientistas da computação se comprometeram a lidar com questões de segurança decorrentes de linguagens de programação como C e C++. Seus esforços deram origem a uma nova classe de linguagens de programação de sistemas chamadas linguagens “seguras para a memória”. Essas práticas de codificação de ponta são explicitamente projetadas para evitar erros relacionados à memória que podem abrir caminho para ataques cibernéticos mal-intencionados. Rust é, sem dúvida, uma ferramenta avançada entre essas opções.

Para quem não sabe, as preocupações com a segurança da memória referem-se a uma categoria de vulnerabilidades que decorrem de erros de programação associados à apropriação indevida de memória. Esses problemas podem resultar em violações de segurança, degradação de dados e falhas do sistema. Consequentemente, tem havido uma ênfase maior na utilização de linguagens de programação especificamente criadas para garantir níveis ótimos de segurança de memória.

Gigantes da tecnologia como o Google reconheceram o impacto descomunal que os problemas relacionados à memória podem ter na segurança do software, enfatizando a necessidade absoluta de utilizar essas linguagens para se proteger contra tais vulnerabilidades. Esse reconhecimento é uma prova da importância de tomar medidas proativas para proteger o software de possíveis ameaças. Isso destaca o papel dessas linguagens em garantir um futuro mais seguro para o desenvolvimento de software.

A Meta está adotando Rust por causa de seus benefícios em termos de desempenho e segurança, sinalizando uma nova era na engenharia de software. Ao aproveitar os recursos e capacidades modernas da Linguagem Rust, a Meta aumenta a segurança e robustez dos produtos, ao mesmo tempo em que obtém maior eficiência e escalabilidade.

A comunidade de código aberto deu as boas-vindas a Rust, como evidenciado pela adoção do kernel do Linux (referência ao final deste artigo). Isso permite que os desenvolvedores utilizem Rust para criar software confiável e seguro em sistemas baseados em Linux.

Rust é uma linguagem de programação notavelmente adaptável que fornece aplicações extensas. Seja elaborando um código de sistema de baixo nível ou construindo um kernel de sistema operacional, Rust pode criar soluções de software seguras e de alto desempenho. Sem surpresa, o IEEE Spectrum classificou Rust em 20º lugar em suas principais linguagens de programação em 2022! Também não é de admirar por que está classificado em 14º lugar no Stackoverflow como a linguagem mais popular! E segue em crescimento.

Como uma importante empresa de tecnologia de computadores, a Microsoft expressou a necessidade de uma linguagem de programação que supere os padrões de segurança atuais. Como uma linguagem de programação de código aberto, Rust parece ser uma das soluções mais viáveis para esse problema. Dentre essas opções, Rust se destaca por valer a pena ser escolhida para desenvolvimento e tem conquistas notáveis em termos de segurança e velocidade.

Rust emergiu como uma das linguagens de programação mais procuradas da atualidade e continua a receber mais elogios entre os desenvolvedores em todo o mundo. Ao priorizar confiabilidade, segurança e eficiência, é inegável que Rust continuará sendo uma linguagem confiável para criar aplicativos Web seguros no futuro.

Pydantic, um conhecido projeto de código aberto, reescreveu sua implementação principal em Rust, resultando em um aumento significativo no desempenho. Pydantic V2 é entre 4x e 5x mais rápido que seu antecessor, Pydantic V1.9.1, com uma melhoria de cerca de 17x ao validar um modelo com campos comuns.

Em um anúncio recente, a Microsoft revelou seus planos de reescrever o kernel do Windows usando Rust depois de portar com sucesso a biblioteca de análise de fonte dwrite para Rust. Este movimento ousado da Microsoft significa uma mudança para práticas de programação que priorizam segurança e eficiência.

Como Rust continua a afirmar seu domínio como a linguagem de escolha para criar aplicativos robustos e seguros em vários setores, podemos esperar com confiança uma redução significativa nos problemas de segurança no futuro.

O objetivo principal do uso da Linguagem Rust é aumentar a segurança, a velocidade e a simultaneidade, a capacidade de executar vários cálculos simultaneamente.

Rust Notebooks

Os entusiastas da programação concordarão que Rust se tornou uma linguagem de programação de primeira linha por vários motivos, como sua velocidade incrível, confiabilidade e flexibilidade incomparável. No entanto, os desenvolvedores Rust novatos enfrentaram um desafio assustador por muito tempo: a ausência de um ambiente de desenvolvimento facilmente acessível.

Felizmente, com pura perseverança e determinação, os desenvolvedores da Linguagem Rust romperam essa barreira ao fornecer uma solução inovadora: acessar Rust por meio do Jupyter Notebook. Isso é possível graças a um projeto fenomenal de código aberto conhecido como evcxr_jupyter. Ele equipa os desenvolvedores com a capacidade de escrever e executar código Rust no ambiente Jupyter Notebook, elevando sua experiência de programação para o próximo nível.

Para instalar o evcxr_jupyter, você deve primeiro instalar o Jupyter. Com o Jupyter instalado, o próximo passo é instalar o Rust Jupyter Kernel. No entanto, você deve garantir que Rust esteja instalada em sua máquina.

Rust em Machine Learning

A linguagem possui várias bibliotecas para computação científica, aprendizado de máquina (Machine Learning) e processamento de dados, algumas das quais incluem:

  • ndarray: Uma biblioteca para manipulação de arrays multidimensionais.
  • statrs: Uma biblioteca para estatística e análise numérica.
  • polars: Um DataFrame rápido e eficiente em termos de memória para Rust, semelhante ao Pandas em Python.
  • datafusion: Um mecanismo de processamento de dados baseado em Rust com suporte para operações de DataFrame e SQL.
  • tch-rs: Vinculação Rust para a biblioteca de aprendizado profundo PyTorch.

Embora Rust possa ser usado para Data Science, pode haver uma curva de aprendizado mais acentuada se comparada a linguagens como Python e R. No entanto, se você já está familiarizado com Rust ou deseja explorar sua potencialidade em termos de desempenho e segurança, a linguagem pode ser uma opção viável. Visite a documentação aqui.

Vale a Pena Aprender Rust Para Data Science e Machine Learning?

Aprender Rust pode ser benéfico, principalmente se o desempenho for um requisito fundamental ao fazer deploy de modelos de Machine Learning. Abaixo estão alguns pontos a considerar ao decidir se você deve aprender Rust:

Desempenho: Rust é conhecida por seu desempenho e eficiência, que podem ser úteis em certas aplicações de Ciência de Dados que exigem processamento de grandes volumes de dados ou algoritmos computacionalmente intensivos.

Segurança: Rust oferece gerenciamento de memória seguro e evita muitos erros comuns de programação que podem levar a bugs e vulnerabilidades de segurança. Isso pode ser valioso em projetos de Machine Learning com requisitos de segurança rigorosos.

Interoperabilidade: Se você trabalha com sistemas que envolvem outras linguagens de programação, como C ou C++, aprender Rust pode ajudá-lo a criar interfaces seguras e de alto desempenho entre suas aplicações de Ciência de Dados e Machine Learning, e outras partes do sistema.

Crescimento Profissional: Aprender Rust pode expandir suas habilidades e conhecimentos, tornando você um profissional mais versátil e aumentando seu valor no mercado de trabalho.

No entanto, é importante lembrar que Rust não é a linguagem mais comum em Data Science e existem linguagens mais estabelecidas, como Python e R (além de Java, Scala, C++ e Julia), que têm mais recursos, bibliotecas e suporte da comunidade. A curva de aprendizado de Rust também pode ser mais acentuada em comparação com linguagens como Python.

Se você é novo na Ciência de Dados e Machine Learning, pode ser mais benéfico começar aprendendo Python ou R, pois elas oferecem uma ampla gama de bibliotecas e ferramentas específicas para Ciência de Dados e são geralmente mais fáceis de aprender.

No entanto, se você já possui alguma experiência e está interessado em explorar uma linguagem de programação com foco em desempenho e segurança, aprender Rust pode ser uma adição valiosa ao seu conjunto de habilidades.

Rust está chegando aqui na DSA na Formação Engenheiro de Machine Learning 4.0.

Equipe DSA

Referências:

Rust Programming Language

Microsoft is busy rewriting core Windows code in memory-safe Rust

Rust: The Next Big Thing in Data Science

A brief history of Rust at Facebook

Linux 6.1 Officially Adds Support for Rust in the Kernel

Top Programming Languages 2022

How Pydantic V2 leverages Rust’s Superpowers