El gigante de la computación en la nube Amazon Web Services (AWS) ha esbozado las razones por las que su los ingenieros están adoptando Rustincluyendo que es un lenguaje de programación más eficiente energéticamente.
Hace solo siete años, el lenguaje de programación Rust llegó a la versión 1.0, lo que lo convierte en uno de los lenguajes más jóvenes y que también promete mucho para grandes bases de código escritas en C y C++. Hoy, Amazon, Google y Microsoft respaldan el lenguaje que originalmente comenzó como un proyecto personal de Graydon Hoare antes de convertirse en un proyecto de investigación de Mozilla en 2010.
Rust no es tan popular como Java, JavaScript o Python, pero se ha convertido en un lenguaje fundamental para crear sistemas como el kernel de Linux, Windows, Chrome y Android. AWS fue uno de los primeros partidarios de Rust y es miembro fundador de la Fundación Rust, y tiene una campaña de reclutamiento de Rust en curso.
VER: Desarrollador web o CTO, ¿qué trabajos tecnológicos tienen los salarios de más rápido crecimiento?
Rust ayuda a los desarrolladores a evitar una gran cantidad de fallas relacionadas con la memoria comunes a C/C++, que en última instancia cuestan a las organizaciones actualizaciones de seguridad. El lenguaje obtuvo su apoyo de más alto perfil cuando Microsoft reveló que estaba experimentando con él para Windows, principalmente para evitar errores de memoria.
Pero una publicación del ingeniero de software y defensor de Rust de AWS Shane Miller y Carl Lerche, ingeniero principal de AWS, destaca que Rust no se trata solo de la seguridad de la memoria y la reducción de fallas de seguridad; es un lenguaje mucho más verde que Python y Java. De esa manera, respalda el impulso más amplio de Amazon para hacer que sus centros de datos sean menos dañinos para el medio ambiente, con el objetivo de la compañía de que sus centros de datos sean totalmente renovables para 2025.
Los servicios de AWS creados en Rust incluyen Firecracker, la tecnología detrás de su plataforma sin servidor Lamba para aplicaciones en contenedores, Amazon Simple Storage Service (S3), Elastic Compute Cloud (EC2), su red de entrega de contenido CloudFront y Bottlerocket, un sistema operativo de contenedor basado en Linux.
Los centros de datos representan el 1 % del consumo mundial de energía, lo que equivale a unos 200 teravatios hora de energía al día, y los lenguajes de programación utilizados también pueden afectar el consumo de energía.
«No es una sorpresa que C y Rust sean más eficientes que otros lenguajes. Lo que es impactante es la magnitud de la diferencia. La amplia adopción de C y Rust podría reducir el consumo de energía de cómputo en un 50 %, incluso con una estimación conservadora», dice Miller, señalando un estudio que muestra la eficiencia energética relativa de los lenguajes, desde C hasta Go de Google, Lua, Python, Ruby y el antiguo Fortran.
«Rust ofrece la eficiencia energética de C sin el riesgo de un comportamiento indefinido. Podemos reducir el uso de energía a la mitad sin perder los beneficios de la seguridad de la memoria», dice Miller.
Señala el rendimiento de una aplicación de la empresa de seguridad cibernética Tenable que anteriormente estaba escrita en JavaScript pero ahora está escrita en Rust. La aplicación Rust supera a JavaScript en el rendimiento de la CPU, reduciendo la latencia a la mitad y el uso de la CPU en un 75 % y el uso de la memoria en un 95 %.
La popular aplicación de mensajería Discord también se mudó a Rust después de haber sido construida inicialmente en Python, Go de Google y Elixir.
«Debido a que Go es un lenguaje de recolección de basura (GC), a medida que los objetos se crean y liberan, de vez en cuando, el recolector de basura debe detener la ejecución del programa y ejecutar un pase de recolección de basura», explica Miller.
VER: Los salarios tecnológicos acaban de alcanzar máximos históricos. Entonces, ¿por qué el personal de TI todavía se siente mal pagado?
Reescribir ese servicio en Rust permitió que ese servicio fuera 10 veces más rápido y redujo mucho las latencias, lo que se tradujo en menos servidores y, como resultado, menos energía.
«Rust no es el primer lenguaje eficiente. C existe desde hace mucho tiempo, pero Rust es el primer lenguaje de programación convencional que es eficiente sin sacrificar la seguridad. El 70 % de todas las vulnerabilidades de seguridad de alta gravedad escritas con C y C++ se deben a inseguridad en la memoria, y Rust te brinda eficiencia sin sentir que estás jugando con fuego», dice Miller.
Sin embargo, a pesar de todas las buenas noticias, Rust no está exento de inconvenientes, sobre todo que es difícil de aprender.
A los ingenieros experimentados les lleva de 3 a 6 meses de estudio, respaldados por el acceso a expertos en la materia, para volverse productivos con Rust, Miller y Lerche note. «Algunos ingenieros han comparado aprender Rust con aprender a comer vegetales, y aunque a muchos les encanta una vez que son productivos, muchos ingenieros están decidiendo no aprenderlo o abandonar el esfuerzo antes de que sean productivos. El impacto potencial de Rust en la sostenibilidad y la seguridad solo se materializarán si convertimos el brócoli en un brownie».