Aprendiendo Rust
Aprendiendo Rust
Resumen:
Introducción
El libro «Learning Rust» (en español — «Aprendiendo Rust»), escrito por Paul Johnson y Vesa Kaihlavirta y publicado en 2017 por Packt Publishing, es una de las primeras guías prácticas del lenguaje Rust en los mercados de habla hispana e inglesa. En 350 páginas, los autores intentan llevar al lector desde los fundamentos de la sintaxis hasta la creación de aplicaciones reales, prestando especial atención a la seguridad de la memoria y la concurrencia, características clave de Rust. Para el sitio educativo PythonLib, orientado a una amplia audiencia de desarrolladores, este libro es interesante como ejemplo de transición desde lenguajes de alto nivel (Python, JavaScript) a la programación de sistemas sin pérdida de rendimiento y con garantías de seguridad.
De qué trata el libro
«Learning Rust» está estructurado como una introducción progresiva al ecosistema de Rust. Los primeros capítulos se centran en la instalación de herramientas, la sintaxis básica, el sistema de propiedad (ownership), préstamo (borrowing) y tiempos de vida (lifetimes). Luego, los autores pasan a temas más complejos: programación genérica (generics), traits, manejo de errores, sistema de módulos y pruebas. Capítulos separados cubren el trabajo con colecciones, entrada/salida, macros y FFI (Foreign Function Interface). El libro concluye con la creación de una pequeña aplicación web utilizando el framework Iron (ahora obsoleto) y ejemplos de programación asíncrona.
Para quién es este libro
El libro está dirigido a desarrolladores que ya tienen experiencia en programación con C, C++, Python o Java. A los principiantes en programación les resultará difícil: los autores no explican conceptos básicos (bucles, funciones, tipos de datos) desde cero, sino que pasan directamente a las particularidades de Rust. Sin embargo, para aquellos que quieran aprender programación de sistemas con enfoques modernos de seguridad, es un excelente punto de partida.
Qué aprenderá el lector
- Fundamentos de la sintaxis de Rust: variables, funciones, estructuras de control, propiedad y préstamo.
- Sistema de tipos: genéricos, traits, despacho estático, tiempos de vida.
- Gestión de memoria: principios de propiedad, préstamo y tiempos de vida sin recolector de basura.
- Manejo de errores: uso de
ResultyOption, operador?. - Modularidad y pruebas: organización del código, pruebas unitarias, pruebas de documentación.
- Concurrencia: hilos, canales, mutex, compartición segura de estado.
- Macros: macros declarativas y procedurales.
- Interacción con C: FFI, llamada a funciones C desde Rust y viceversa.
- Creación de una aplicación web: fundamentos del trabajo con HTTP, enrutamiento, plantillas.
Fortalezas
Una de las principales ventajas del libro es su enfoque práctico. Cada capítulo contiene ejemplos de código que se pueden ejecutar de inmediato y ejercicios para afianzar el material. Los autores dedican mucha atención a explicar el sistema de propiedad —el concepto más difícil para los principiantes— utilizando diagramas visuales y analogías. También cabe destacar el capítulo sobre FFI, que rara vez se encuentra en cursos introductorios, pero es extremadamente útil para programadores de sistemas. El libro está escrito en un lenguaje ameno, sin excesiva academicidad, lo que facilita su comprensión.
Desventajas
El principal inconveniente es la antigüedad del libro. Rust se desarrolla activamente y, desde 2017, el lenguaje ha sufrido cambios significativos: el framework Iron quedó obsoleto, aparecieron nuevas funcionalidades (por ejemplo, async/await, se estabilizaron muchas bibliotecas). Algunos ejemplos pueden no compilarse en la versión moderna del compilador. Además, el libro no cubre temas importantes como async/await, WebAssembly, programación embebida (embedded) ni el trabajo con crates populares (por ejemplo, serde, tokio). Para los principiantes, la primera