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<_>>ouunsafe, levando a Rust “vibe-coded” ineficiente, mas seguro em memória.