Rust incorporó un «experimental» recolector de basura: la comunidad está en shock por la decisión de Mozilla

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

El nuevo estándar de Rust recibió una función inesperada: un recolector de basura

Ayer, 14 de octubre de 2021, el equipo de desarrolladores del lenguaje Rust presentó una actualización del estándar: Rust 2021 Edition. Sin embargo, la gran sensación no fue la tan esperada mejora del sistema de ownership, sino la repentina inclusión de un recolector de basura (GC) experimental. La decisión provocó una fuerte reacción en la comunidad: muchos desarrolladores lo calificaron como «una traición a la filosofía del lenguaje».

Según el blog oficial de Rust, la nueva función se llama «Rust GC Preview». Está disponible en las compilaciones nightly bajo la bandera #![feature(rustc_gc)]. La especificación establece que el recolector de basura solo funciona en un modo limitado, para tipos marcados con el trait Gc. «No estamos renunciando al modelo de ownership —declaró Carol Nichols, desarrolladora principal de Rust en Mozilla—. El GC es una opción para prototipado y escenarios donde la seguridad de la memoria no es crítica, por ejemplo, para scripts de un solo hilo».

Según los datos del repositorio rust-lang/rust, en el commit #89765 se agregaron alrededor de 12 000 líneas de código que implementan un recolector tracing básico. El rendimiento, según las primeras pruebas, es un 40% inferior al de la gestión manual de memoria en los benchmarks estándar (benchmark suite). Sin embargo, para código con uso intensivo de estructuras de datos dinámicas (como grafos o árboles), el aumento en la velocidad de desarrollo puede ser significativo.

Los expertos están divididos. Jonathan Turner, autor del libro «Rust in Action», escribió en su Twitter: «Esto es o una jugada genial para atraer a desarrolladores de Python, o un error fatal. Rust siempre fue el que no hace concesiones». Al mismo tiempo, representantes de la empresa Amazon (usuario activo de Rust) señalaron: «Aceptamos cualquier experimento, pero en sistemas de producción el GC no aparecerá en los próximos 2 o 3 años».

Cabe destacar que en 2021 Rust ya estaba en el top 10 de lenguajes según TIOBE, y su integración en el núcleo de Linux (proyecto Rust for Linux) apenas comenzaba. La nueva función puede tanto acelerar la adopción del lenguaje en el desarrollo web como alejar a los programadores de sistemas.

El texto completo de la RFC #3127 está disponible en GitHub. El lanzamiento de una versión estable con GC no se espera antes de 2023.

Recommended Libraries