Rust implementou um "experimental" garbage collector: comunidade em choque com a decisão da Mozilla

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Novo padrão Rust recebeu uma função inesperada: coletor de lixo

Ontem, 14 de outubro de 2021, a equipe de desenvolvimento da linguagem Rust apresentou uma atualização do padrão — Rust 2021 Edition. No entanto, a principal sensação não foi a tão esperada melhoria no sistema de ownership, mas a inclusão repentina de um coletor de lixo (GC) experimental. A decisão gerou uma reação intensa na comunidade: muitos desenvolvedores chamaram isso de "traição à filosofia da linguagem".

De acordo com o blog oficial do Rust, a nova função recebeu o nome «Rust GC Preview». Ela está disponível nas nightly-builds sob a flag #![feature(rustc_gc)]. A especificação pressupõe que o coletor de lixo funciona apenas em modo limitado — para tipos marcados com a trait Gc. "Não estamos abandonando o modelo de ownership", declarou Carol Nichols, desenvolvedora líder do Rust na Mozilla. "O GC é uma opção para prototipagem e cenários onde a segurança de memória não é crítica, por exemplo, para scripts single-thread".

De acordo com o repositório rust-lang/rust, no commit #89765 foram adicionadas cerca de 12.000 linhas de código, implementando um tracing-collector básico. O desempenho, segundo os primeiros testes, é 40% inferior ao do gerenciamento manual de memória nos benchmarks padrão (benchmark suite). No entanto, para código com uso intensivo de estruturas de dados dinâmicas (como grafos ou árvores), o ganho na velocidade de desenvolvimento pode ser significativo.

Especialistas ficaram divididos. Jonathan Turner, autor do livro "Rust in Action", escreveu em seu twitter: "Isso ou é um movimento genial para atrair desenvolvedores Python, ou um erro fatal. Rust sempre foi aquele que não faz concessões". Ao mesmo tempo, representantes da empresa Amazon (usuária ativa do Rust) destacaram: "Acolhemos qualquer experimento, mas em sistemas de produção o GC não aparecerá nos próximos 2-3 anos".

Vale notar que, em 2021, Rust já estava entre os 10 principais idiomas segundo o TIOBE, e sua adoção no kernel Linux (projeto Rust for Linux) estava apenas começando. A nova função pode tanto acelerar a aceitação da linguagem no desenvolvimento web quanto afastar programadores de sistemas.

O texto completo da RFC #3127 está disponível no GitHub. O lançamento da versão estável com GC é esperado não antes de 2023.

Recommended Libraries