1

Em questão de escala, Rust está se tornando essencial?

Há algumas semanas atrás tivemos o maior caso de AI Slop do ano (acredito eu), que foi o caso do Bun recriado em Rust. Isso criou uma pequena intriga entre o Andrew Kelley (criador do Zig) e Jarred Sumner.

Isso até mesmo rendeu críticas do Andrew ao Jarred sobre sua qualidade de código, acusando de ser o fator problema e não uma limitação da linguagem. O Jarred, entretanto, manteve sua escolha por algumas questões que eu queria ouvir de vocês se realmente fazem sentido.

Uma das grandes qualidades do Rust é óbvia: o controle de ponteiros. Ele te faz pensar sempre "de quem é esse dado?" e não deixa você passar adiante até resolver essa questão.

Mas isso não seria possível da mesma forma usando Zig em uma estrutura de "free"? Eu sei que deixar com que o compilador faça o trabalho por você de controlar quando liberar é ótimo, mas estou me perguntando se, caso eu escolhesse uma linguagem sem ownership, uma estrutura para lidar com "free" em vez de deixar cada serviço liberar sua própria memória seria uma solução para a escalabilidade do meu produto.

Vocês, desenvolvedores de C, C++ ou linguagens do tipo, já lidaram com problemas como "use after free" e "dangling pointers"? Como resolveram isso em questão de escala?

Queria entender se, na prática, uma boa arquitetura de gerenciamento de memória consegue chegar perto dos benefícios que o Rust oferece nesse aspecto, ou se em determinado nível de complexidade o ownership em compile time acaba se tornando essencial.

Carregando publicação patrocinada...