RUST - No sólo para programadores

Como ingeniero de sistemas ópticos, el modelado de sistemas complejos es una parte rutinaria del trabajo. Dado que a menudo dependemos de simulaciones que requieren mucho tiempo, la eficiencia del lenguaje de programación que utilizamos se convierte en una consideración importante. Por eso solemos inclinarnos por C o C++, junto con bibliotecas heredadas basadas en Fortran.

Rust no suele ser el primer lenguaje que viene a la mente cuando se aborda un nuevo problema. A menudo se considera un lenguaje para programadores profesionales, conocido por su pronunciada curva de aprendizaje. Y sí, creo que esa reputación es en gran parte merecida. Pero también creo que Rust tiene algo que ofrecer, algo que merece la pena ver más de cerca.

Creciente complejidad y costes ocultos


Cuando planificamos un proyecto, rara vez sabemos exactamente adónde irá a parar, sobre todo si resulta ser realmente útil, que es de lo que se trata, ¿no? A medida que el software madura, a menudo nos encontramos con que queremos integrarlo en diferentes contextos, cada uno de los cuales añade nuevas capas de complejidad, a menudo mucho más allá de lo que esperábamos inicialmente.

Con C o C++, somos nosotros mismos los responsables de gestionar todos los pequeños detalles. ¿Seguirán siendo válidos estos datos cuando intente utilizarlos? ¿Hemos liberado el mutex en esta ruta de código? La lista de estas preguntas se hace larga, rápido.

Invertir el guión

Rust invierte esa dinámica. Descarga muchas de esas preocupaciones al compilador. En cierto sentido, el compilador se convierte en tu segundo par de ojos, diciendo: “No puedes hacer eso, aquí está el porqué”. Un software que compila en un contexto puede negarse a hacerlo cuando se adapta a otro, y eso suele ser bueno.

Con C o C++, el código puede compilarse sin problemas y, si tienes suerte, se bloqueará inmediatamente cuando algo vaya mal. Pero a veces los errores permanecen latentes durante años y sólo salen a la luz cuando se realiza un cambio. Y lo que es peor, puede que no bloqueen nada, sino que sólo alteren sutilmente los resultados una vez cada cientos de ejecuciones.

Sin duda, con buenas prácticas de prueba y herramientas como los desinfectantes, se pueden detectar esos problemas. Pero seamos sinceros: cuando tu principal especialidad es la física o la óptica, no las pruebas de software, tener un compilador que evite proactivamente clases enteras de errores resulta realmente atractivo.

Por qué merece la pena considerar el óxido


El óxido no garantiza la corrección, pero sí te vigila las espaldas. Te ayuda a evitar no sólo los errores obvios, sino a veces también los ocultos, antes de que se conviertan en verdaderos problemas. Y todo ello sin sacrificar el rendimiento. Para aquellos de nosotros que trabajamos en ámbitos en los que la precisión y la corrección son tan importantes como la velocidad, Rust ofrece una combinación poco frecuente: la seguridad de un lenguaje moderno con el rendimiento de C. Es un compromiso que merece la pena tener en cuenta.

El apoyo a la IA que se pasa por alto

¿Tiene sentido aprender a programar? Hoy en día, absolutamente. Mejor aún, tienes un tutor 24/7 con ChatGPT o Grok. Si me preguntas, ambos apestan en codificación. De verdad, no bromeo. Simplemente apestan, pero son geniales respondiendo preguntas específicas. Preguntas sobre estrategia, o sobre herramientas (crates en lenguaje Rust). Si empiezas con Rust, no le pidas que te de código, lee el libro y pide explicaciones.

Deja un comentario