# Rust

> Un lenguaje rápido cuyo compilador se niega a armar código con errores de memoria.

- Nivel: Intermedio
- Temas: Software
- URL: https://tidbit.legios.com.ar/es/rust/
- En inglés: [Rust](https://tidbit.legios.com.ar/rust/)

**Rust** es un lenguaje de programación que arrancó en Mozilla y llegó a la versión 1.0 en 2015. Apunta a los mismos trabajos que C y C++: sistemas operativos, navegadores, bases de datos, motores de juegos, dispositivos embebidos, todo lo que necesita velocidad y control sobre la memoria. Lo que lo distingue es que está diseñado para evitar toda una familia de errores de memoria que vienen complicando a esos lenguajes hace décadas.

En C y C++ quien programa maneja la memoria a mano, y errores chiquitos, como usar memoria después de liberarla o escribir más allá del final de un buffer, provocan cuelgues y muchos agujeros de seguridad graves. Lenguajes como Java o Python lo evitan con un recolector de basura, que cuesta algo de velocidad y de previsibilidad. Rust toma un tercer camino: reglas estrictas sobre qué parte del código es dueña de cada dato y quién lo puede tomar prestado. El **borrow checker** del compilador hace cumplir esas reglas, así que la mayoría de esos errores directamente no compila, y el programa final corre tan rápido como C.

El precio es una curva de aprendizaje empinada: el compilador dice que no seguido, sobre todo al principio. Aun así, Rust ganó terreno rápido. Está en el kernel de Linux, en Windows y en Android; empresas como AWS, Cloudflare y Microsoft lo usan en servicios críticos; y agencias de seguridad recomiendan lenguajes con seguridad de memoria como él para el código nuevo. Viene con `cargo`, una herramienta que compila los proyectos y maneja las librerías.

## Una analogía

Un inspector de obra muy estricto que revisa los planos antes de poner un solo ladrillo. Conseguir la aprobación tarda más, pero una vez que el edificio está en pie, toda una categoría de derrumbes no puede pasar.

## Para quedarse

- Tan rápido como C y C++, sin recolector de basura.
- El borrow checker rechaza la mayoría de los errores de memoria al compilar.
- Se usa en Linux, Windows, Android e infraestructura de nube.
- Cuesta más aprenderlo que la mayoría de los lenguajes, sobre todo al principio.

## Para seguir leyendo

- [Rust (sitio oficial)](https://www.rust-lang.org/es)
- [Rust en Wikipedia](https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programación))

## Términos relacionados

- [Lenguaje de programación](https://tidbit.legios.com.ar/es/programming-language/): Un idioma escrito y preciso que usamos para darle instrucciones a una computadora.
- [Mozilla](https://tidbit.legios.com.ar/es/mozilla/): La organización sin fines de lucro detrás de Firefox y de una web abierta.
- [C y C++](https://tidbit.legios.com.ar/es/c-and-cpp/): Dos lenguajes veteranos y rápidos debajo de sistemas operativos, navegadores y juegos.
- [Sistema operativo](https://tidbit.legios.com.ar/es/operating-system/): El software base que maneja un dispositivo y reparte su hardware entre todas las apps.
- [Navegador web](https://tidbit.legios.com.ar/es/web-browser/): La app que trae páginas web desde internet y las dibuja en tu pantalla.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
- [Java](https://tidbit.legios.com.ar/es/java/): Un lenguaje veterano que mueve bancos, sistemas de grandes empresas y Android.
- [Python](https://tidbit.legios.com.ar/es/python/): Un lenguaje de programación muy usado, conocido por ser fácil de leer y de escribir.
