Microsoft planeja substituir todo o seu código em C/C++ por Rust

Microsoft planeja substituir todo o seu código em C/C++ por Rust

A Microsoft anunciou uma meta que pode redefinir a segurança e a engenharia de software em larga escala: eliminar todas as linhas de código em C e C++ de seus sistemas e substituí-las por Rust até 2030. O plano, liderado pelo engenheiro Galen Hunt, visa erradicar uma fonte crítica de vulnerabilidades de segurança ao mesmo tempo em que aborda uma dívida técnica monumental.

Combinando IA e automação

O desafio é de proporções astronômicas, considerando a imensa base de código da Microsoft, que abrange desde o Windows e o Azure até centenas de produtos empresariais. Para enfrentá-lo, a empresa não planeja uma reescrita manual, mas sim uma tradução automatizada em massa. A estratégia, conforme descrita por Hunt, é “combinar IA e algoritmos para reescrever as maiores bases de código da Microsoft”, com uma meta ousada de produtividade: “1 engenheiro, 1 mês, 1 milhão de linhas de código”.

A empresa já desenvolveu uma infraestrutura de processamento de código que cria um “grafo escalável” sobre o código-fonte. Com essa base, agentes de IA, guiados por algoritmos, realizariam as modificações em larga escala. Um novo cargo de Engenheiro de Software Principal, anunciado recentemente, tem como propósito justamente evoluir essas ferramentas de tradução.

Segurança da memória

O impulso central por trás dessa transição histórica é a segurança. Linguagens como C e C++, embora extremamente poderosas e de baixo nível, são notoriamente propensas a erros de gerenciamento de memória, como buffer overflows e use-after-free. Essas falhas são a raiz da maioria das vulnerabilidades críticas exploradas por cibercriminosos. O Rust, por outro lado, é uma linguagem de programação “memory-safe” (segura para a memória), projetada para prevenir esses erros em tempo de compilação, sem sacrificar o desempenho ou o controle de baixo nível.

A migração para Rust se alinha com um movimento global. Governos, incluindo os dos EUA, têm defendido a adoção universal de linguagens seguras para a memória. No kernel Linux, o Rust também é uma das linguagens oficiais de desenvolvimento. Internamente, a Microsoft já vinha promovendo o Rust, com o CTO do Azure sugerindo em 2022 que ele se tornasse a linguagem padrão para novos projetos, e a empresa já disponibiliza ferramentas para desenvolver drivers do Windows em Rust.

Apesar do otimismo e do poder das ferramentas de IA, o caminho até 2030 está repleto de desafios extraordinários. A base de código da Microsoft é vasta, antiga e complexa, repleta de casos extremos (edge cases), dependências complexas e lógicas de negócio intricadas que a automação pode não conseguir decifrar ou traduzir corretamente. A garantia de que os sistemas traduzidos funcionem exatamente como os originais será um esforço de teste e validação sem precedentes.

Se bem-sucedida, esta iniciativa servirá como um caso de estudo definitivo para a indústria, demonstrando a viabilidade de modernizar massivamente uma infraestrutura de software herdada por meio de automação inteligente e uma mudança de paradigma linguístico.

Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!