Rust

Un lenguaje de programación que se niega a compilar tu programa si contiene los errores de memoria que causan casi todos los fallos graves de seguridad.

También conocido como lenguaje Rust Rust lang lenguaje de sistemas

Definición

Rust es un lenguaje de programación para software que no puede fallar. Sistemas operativos, motores de navegador, las piezas pequeñas que están debajo de todo lo demás y funcionan durante años sin que nadie las toque. Es rápido, y es estricto de una forma que sorprende a quien llega de otros lenguajes.

Para entender por qué existe basta una idea sobre cómo trabaja un ordenador. Un programa pide un trozo de memoria, lo usa y lo devuelve. El problema empieza cuando sigue usando un trozo que ya devolvió, o cuando escribe más allá del espacio que le dieron. Esos dos errores pequeños están detrás de casi todos los agujeros de seguridad graves que se han encontrado en este tipo de software. Microsoft y Google contaron sus propios fallos y llegaron a una cifra parecida, cerca de siete de cada diez.

La respuesta de Rust es rara. No caza el error mientras el programa funciona. Se niega a compilarlo. El compilador sigue quién es dueño de cada trozo de memoria y cuánto vive, y si tu código puede tocar algo que ya no existe, la compilación se detiene con un mensaje. Otros lenguajes seguros usan un limpiador que corre al lado del programa y lo detiene un instante de vez en cuando. Rust no tiene ninguno, así que sigue siendo bastante rápido para trabajos donde una pausa no está permitida. Esa mezcla explica por qué aparece en proyectos delicados en materia de seguridad.

Ahora la parte de la que nadie avisa. Escribir Rust es más lento, y el primer mes o dos parecen una discusión con el compilador. Quienes lo dominan son menos y cobran más. Para una web de reservas o un sistema de tienda el cambio sale mal, y un lenguaje de aplicación web corriente terminará antes y más barato. Rust se gana su precio en un sitio estrecho: un aparato difícil de actualizar, una parte que abre archivos enviados por desconocidos, un servicio atacado sin descanso.

Hay un uso que sí llega a productos normales. Una lógica difícil escrita una vez en Rust se puede meter dentro de una app de Android y de una de iPhone a la vez, así las reglas viven en un solo sitio en lugar de dos. Linkysoft solo lo propone cuando esa lógica es de verdad complicada, porque añade un lenguaje al equipo. Si un proveedor le ofrece Rust, pregunte qué se rompe cuando esa parte falla. Una buena respuesta menciona algo concreto. Si sigue siendo vaga, Linkysoft prefiere poner el dinero en una aplicación móvil normal y una revisión de seguridad seria.

Preguntas sobre Rust

¿Es difícil aprender Rust?
Más que otros al principio. El compilador rechaza código que otros lenguajes aceptan, y hacen falta unas semanas para que sus reglas dejen de molestar.
¿Debería mi sistema de gestión escribirse en Rust?
Normalmente no. Un sistema de reservas, tienda o clínica sale antes y más barato en un lenguaje web común, y la ventaja de Rust no se nota ahí.
¿Rust hace que mi software sea seguro?
Elimina una familia de fallos, los de memoria. No hace nada contra una contraseña débil, un permiso mal puesto o una base de datos abierta, que es donde empiezan casi todas las intrusiones.
¿Rust puede convivir con el código que ya tenemos?
Sí. Se añade por partes, junto al programa actual, para proteger la pieza arriesgada sin reescribir todo lo demás.
¿Son caros los programadores de Rust?
Cobran más y hay menos. Pregunte a cualquier proveedor quién mantendrá ese código dentro de tres años, porque esa respuesta pesa más que el precio inicial.

¿Sigue sin ver cómo se aplica esto a su proyecto?

Cuéntenos qué está construyendo y le responderemos en lenguaje claro.