Rust é linguagem de nível 1 na Microsoft

A decisão da Microsoft de designar Rust como uma linguagem interna de “nível 1” — ao lado de C++, C# e TypeScript — sinaliza uma aposta importante em programação de sistemas com segurança de memória e integração mais profunda em sua toolchain, incluindo um novo backend Rust baseado em MSVC. Comentadores veem isso como validação da maturidade do Rust e uma forma de reduzir vulnerabilidades antigas de segurança de memória, enquanto debatem questões práticas como suporte no Visual Studio, interoperabilidade C/C++, tempos de compilação e adequação para domínios que vão de backends web a código embarcado e de GPU. Alguns continuam céticos de que a adoção do Microsoft vá se traduzir em apps mais enxutos e de melhor qualidade, argumentando que incentivos organizacionais e frameworks inchados importam mais do que a escolha da linguagem.

Definição e implicações de “Nível 1”

  • “Nível 1” na Microsoft significa uma linguagem interna totalmente suportada com um “caminho pavimentado” do desenvolvimento à produção: toolchains seguras, fluxos de trabalho, integração de plataforma e conformidade com SDL.
  • Rust junta-se a C++, C# e TypeScript como Nível 1; Java e Python estão explicitamente fora desse grupo.
  • Alguns veem isso como prova da maturidade do Rust; outros observam que é um “Nível 1 interno” e ainda não é automaticamente visível em ferramentas públicas.

Ferramentas, IDEs e depuração

  • Muitos perguntam por que o Visual Studio ainda não tem suporte de primeira classe para Rust; outros apontam que o VS Code já tem, e que a MS pode estar priorizando isso.
  • Alguns preveem uma mudança gradual do Visual Studio completo para o VS Code para novos investimentos em linguagens.
  • O suporte a depuração via VS já é usado hoje com contornos (natvis, ferramentas personalizadas), mas a visualização de contêineres/enum ainda é limitada.
  • IDEs alternativas como RustRover são mencionadas, com opiniões mistas sobre a interface.

Backend MSVC / rustc_codegen_utc

  • Grande notícia técnica: o Rust agora tem um backend de codegen MSVC (rustc_codegen_utc), contornando o LLVM no Windows.
  • Benchmarks internos supostamente mostram desempenho equivalente ao do LLVM.
  • A disponibilidade externa está planejada, mas os detalhes (licenciamento, abertura) ainda não estão claros.

Interoperabilidade C/C++ e reescritas parciais

  • Grandes empresas de C++ querem adoção incremental de Rust, não reescritas completas.
  • Várias ferramentas/projetos para interoperabilidade C++↔Rust são citados (por exemplo, Crubit, ferramentas no estilo cbindgen), mas a interoperabilidade “sem atrito” é vista como fundamentalmente limitada pelas diferenças de sistema de tipos.
  • Espera-se que atravessar a fronteira continue sendo unsafe, com camadas de wrapper ou até RPC em processo às vezes sendo preferíveis.

Casos de uso, pontos fortes e limites do Rust

  • Áreas elogiadas: código de sistemas, embarcados, backends de alto desempenho, computação científica, código host para GPU e alguns apps GUI/desktop.
  • Debate sobre backends web: algumas equipes relatam grandes ganhos ao migrar de TypeScript/Go para Rust; outras ainda preferem Go/Java por ergonomia e velocidade de entrega.
  • O Rust é considerado mais fraco para prototipagem rápida, scripting e fluxos de trabalho de desenvolvimento de jogos que exigem iteração ultrarrápida e muita integração unsafe/engine.

Desempenho, memória e inchaço dos apps da Microsoft

  • Vários comentaristas esperam que o Rust reduza o inchaço do Windows (por exemplo, o app Weather de 1+ GB, a Calculadora lenta), mas muitos argumentam que a escolha da linguagem é secundária em relação a incentivos corporativos, frameworks (WebView2) e stacks de telemetria/anúncios.
  • Alguns estão céticos de que o Rust na Microsoft vá melhorar visivelmente a qualidade do software voltado ao consumidor.

Estabilidade, ecossistema e Rust gerado por IA

  • Alguns relatam que projetos antigos em Rust recompilam sem problemas; outros encontram com frequência problemas de “requer rustc mais recente” ao usar compiladores da distribuição, culpando o uso agressivo de recursos novos.
  • Edições e políticas de MSRV são citadas como fatores estabilizadores, mas a dor de compatibilidade futura continua.
  • LLMs são vistos como incomumente bons em gerar Rust que compila porque o compilador e o Clippy fornecem ciclos de feedback fortes; permanecem preocupações sobre iniciantes/agentes abusando de .clone(), Arc<RwLock<_>> ou unsafe, levando a Rust “vibe-coded” ineficiente, mas seguro em memória.