Prefacio

No siempre fue tan claro, pero el lenguaje de programación Rust es fundamentalmente empowerment: no importa qué tipo de código esté escribiendo ahora, Rust te permite llegar más lejos, programar con confianza en una variedad más amplia de dominios que antes.

Tomemos, por ejemplo, el trabajo de “systems-level” que trata con detalles de bajo nivel de administración de memoria, representación de datos y concurrencia. Tradicionalmente, este dominio de la programación se ve como algo arcano, accesible solo para unos pocos que han dedicado los años necesarios a aprender para evitar sus infames escollos. E incluso aquellos que lo practican lo hacen con precaución, no sea que su código esté abierto a exploits, crashes o corrupción.

Rust rompe estas barreras al eliminar las viejas trampas y proporcionar un conjunto amigable y pulido de herramientas para ayudarte en el camino. Los programadores que necesitan “sumergirse” en el control de nivel inferior pueden hacerlo con Rust, sin asumir el riesgo habitual de bloqueos o agujeros de seguridad, y sin tener que aprender los puntos finos de una cadena de herramientas voluble. Mejor aún, el lenguaje está diseñado para guiarlo de manera natural hacia un código confiable que sea eficiente en términos de velocidad y uso de la memoria.

Los programadores que ya están trabajando con código de bajo nivel pueden usar Rust para elevar sus ambiciones. Por ejemplo, introducir el paralelismo en Rust es una operación de relativamente bajo riesgo: el compilador detectará los errores clásicos por usted. Y puede abordar optimizaciones más agresivas en su código con la confianza de que no introducirá accidentalmente fallas o exploits.

Pero Rust no se limita a la programación de sistemas de bajo nivel. Es lo suficientemente expresivo y ergonómico para hacer que las aplicaciones de CLI los servidores web y muchos otros tipos de código sean bastante agradables de escribir: encontrará ejemplos simples de ambos más adelante en el libro. Trabajar con Rust te permite desarrollar habilidades que se transfieren de un dominio a otro; puedes aprender Rust escribiendo una aplicación web, luego aplica esas mismas habilidades para apuntar a tu Raspberry Pi.

Este libro abarca por completo el potencial de Rust para empoderar a sus usuarios. Es un texto amigable y accesible, pensado para ayudarlo a subir de nivel no solo su conocimiento de Rust, sino también su alcance y confianza como programador en general. Así que sumérgete, prepárate para aprender, ¡y bienvenido a la comunidad de Rust!

— Nicholas Matsakis and Aaron Turon