Empezando con Rust

Todos los que somos aficionados a la programación y pica-teclas de profesión o vocación llevamos ya varios años oyendo hablar de Rust[1]. Este lenguaje creado y soportado principalmente por la fundación Mozilla lleva sonando más de una década y hasta ahora no me había puesto en serio nunca con el.

El mes de agosto siempre me ha parecido un mes de desconexión en general: redes sociales, ordenadores, trabajo, etc. Pero durante este mes he estado aprovechando a meterme un poco con este lenguaje. He aprovechado que no tenía a mano un ordenador para comprarme el Programming Rust[2] y leérmelo poco a poco, sin más distracciones que una hoja de notas y un lápiz.

Del lenguaje en general poco tengo que añadir que no se haya dicho ya. Rápidamente se ve que es un lenguaje creado por gente que ha programado mucho con C++ pero que está preocupada por la gestión de la memoria y la robustez de los sistemas que programa. Con Rust, en mi opinión, se está buscando conquistar el nicho dominado desde hace años por C y sobre todo C++ aportando como valor añadido una serie de reglas de obligado cumplimiento sobre como debes gestionar la memoria dinámica de tus programas. Reglas que, si bien puedes seguir en tus propios desarrollos con C++, no siempre se hace y eso provoca la jauría de errores y fugas de memoria en muchos programas fabricados con estos lenguajes.

Su sintaxis me está dejando algo frío. Por lo menos hasta que me haga con ella. Llevando años programando con Go y acostumbrado a la claridad de este lenguaje, la legilibilidad de un programa en Rust es bastante más oscura. Por contra, su sistema de gestión de dependencias a través de `cargo` me está encantando.

Lo que está claro es que su curva de aprendizaje es más pronunciada que la de otros lenguajes. No es Python, eso es evidente. Ni siquiera es Go. Mucho más amigables ambos. Rust no te supondrá un problema si has sido programador en C++ pero si, como es mi caso, apenas has trabajado con el, tendrás que tomártelo con calma e ir profundizando poco a poco en sus particularidades. El libro que he mencionado antes es una buena referencia si quieres avanzar en el lenguaje de forma progresiva y sin prisas. Dedica un montón de páginas a desentrañar todas esas reglas de obligado cumplimiento en torno a los datos, su propiedad y su acceso a través de punteros. Y sobre todo dedica tiempo a explicarte su razón de ser.

Por ahora no os puedo contar mucho más. Durante este otoño intentaré sacar tiempo para empezar algún proyecto pequeño e ir comentando mis impresiones.

1: https://rust-lang.org

2: https://www.oreilly.com/library/view/programming-rust-2nd/9781492052586/

Inicio

---

Agosto 2022