Por qué a los desarrolladores de Amazon, Facebook y Discord les encanta el lenguaje de programación Rust

Mitchell Baker, CEO de Mozilla y presidenta ejecutiva de la Fundación Mozilla.
Mitchell Baker, CEO de Mozilla y presidenta ejecutiva de la Fundación Mozilla.Charles Platiau/Reuters
  • Rust, un lenguaje de programación iniciado por Mozilla, es uno de los de más rápido crecimiento, según GitHub de Microsoft.
  • Ahora, Amazon, Facebook y Microsoft están creando equipos dedicados específicamente a brindar soporte y construir con Rust.
  • Así usan este lenguaje los desarrolladores de Amazon, Facebook y Discord: por qué lo aprecian tanto.
  • Descubre más historias en Business Insider España.

El año pasado, Discord afirmó que su aplicación había mejorado en rapidez y que sus ingenieros también podían escribir código de manera más eficiente.

¿Cómo? La compañía atribuyó las mejoras a un lenguaje de programación llamado Rust.

Después de usarlo por primera vez para construir una herramienta de descarga de juegos a principios de 2018, a Discord le encantó y decidió adoptar este lenguaje de programación, dejando de lado por completo Go, otro lenguaje creado por Google que anteriormente usaba para muchos sistemas.

"Cuando la gente quiere jugar un juego, quiere que la conexión sea lo más rápida posible", explicó a Business Insider Jesse Howarth, ingeniero de software de personal de la compañía de chat de juegos. "Cuando estás desarrollando algo, quieres hacerlo también lo más rápido posible", añadió.

Estos han sido los lenguajes de programación más populares de 2020, según GitHub

Ahí es donde entra Rust. Es conocido por ser fácil de escribir, seguro y eficiente en memoria, y los desarrolladores lo ven como una alternativa a Go u otros lenguajes de programación como C ++ y C.

Discord es solo una de las muchas empresas en los últimos años que han adquirido Rust, que Mozilla desarrolló originalmente para su navegador Firefox. Ahora, Amazon, Facebook y Microsoft incluso están formando equipos dedicados exclusivamente a Rust y contratando expertos en esta herramienta, muchos de los cuales proceden de Mozilla a raíz de los despidos en la empresa durante el pasado verano. Facebook lo está usando incluso para construir su nuevo proyecto de criptomonedas, Libra.

La adopción de Rust creció un 235% en 2019, según datos de GitHub de Microsoft, lo que lo convierte en uno de los lenguajes de programación de más rápido crecimiento del año.

"Está hecho por desarrolladores, para desarrolladores. Rust es claramente uno de los lenguajes de programación más queridos que existen. Estamos entusiasmados con él", afirmó Tyler McMullen, director de tecnología de Fastly a Business Insider.

Como dice McMullen, los desarrolladores no solo han empezado a usar Rust mucho mas, sino que también les encanta: Rust encabezó la lista de lenguajes de programación favoritos de Stack Overflow, según su reciente encuesta a 65.000 desarrolladores, por quinto año consecutivo.

Y saber cómo codificar en Rust también vale la pena: según la misma encuesta, los desarrolladores de Rust en EEUU ganan un salario medio de 130.000 dólares anuales (unos 108.000 euros).

Jason Citron, cofundador y CEO de Discord.
Jason Citron, cofundador y CEO de Discord.Kimberly White/Getty Images for TechCrunch.

Cómo empezó Rust

Mozilla lanzó Rust por primera vez en 2010 cuando estaba construyendo un nuevo núcleo de navegador para Firefox. La mayoría de los navegadores, incluidos Google Chrome, Safari y Microsoft Edge, están escritos en C ++, pero Mozilla no estaba satisfecho con el lenguaje y quería crear algo completamente nuevo que fuera más eficiente. No obstante, el objetivo de Mozilla no era limitarse a guardar un lenguaje propio o crearlo con un solo propósito: también quería construir una comunidad.

"No queríamos que Rust fuera solo un lenguaje para construir motores de navegador. Sabíamos que si queríamos construir un nuevo lenguaje, tenía que ser ampliamente utilizable", indica a Business Insider Nicholas Matsakis, ingeniero principal senior de Amazon, que se unió al equipo de Rust en enero después de haber trabajado para Mozilla.

Inicialmente, Matsakis cuenta que el equipo pensó en Rust como un reemplazo más eficiente para C ++. Sin embargo, también pusieron una cuidadosa consideración y se enfocaron en descubrir cómo resolver otro problema importante para los desarrolladores: que pasan una cantidad desproporcionada de tiempo eliminando errores.

"Ese era el problema que estábamos tratando de resolver. ¿Podríamos obtener un nivel de control mientras nos protegemos de ese tipo de errores para que los desarrolladores puedan concentrarse en lo que están construyendo?", comenta Matsakis.

Además de Firefox, Mozilla también usa Rust para proyectos como Stylo, utilizado para diseñar páginas web, y su servidor de monitorización.

Mozilla hizo de Rust un lenguaje de código abierto, lo que significa que era gratis para que cualquiera lo usara, descargara o modificara. A medida que más desarrolladores comenzaron a experimentar con él y a aprender a usarlo, las críticas positivas comenzaron a difundirse y empresas como Facebook, Dropbox y AWS comenzaron a adoptarlo.

Firefox
Evan Lorne/Shutterstock

Por qué a las empresas les gusta usar Rust: "Las cosas sencillamente funcionan"

Discord decidió comenzar a usar Rust porque la compañía tenía problemas con la memoria y la velocidad al usar Go.

Go, como muchos otros lenguajes de programación, utiliza un proceso de administración de memoria llamado "recolección de basura" que se ejecuta sistemáticamente a través de un programa para liberar memoria que no se está utilizando actualmente. Rust no utiliza recolección de basura. En cambio, permite a los desarrolladores codificar la "propiedad" para realizar un seguimiento de la memoria. Cuando la memoria ya no se usa, se libera de inmediato, lo que resulta más rápido y más eficiente que esperar a que un recolector de basura verifique que está libre.

Después de que Discord se pasara a Rust, Howarth asevera que su aplicación empezó a funcionar más rápido y que sus ingenieros también pudieron desarrollar más rápidamente.

La eficiencia de la memoria también llevó a Dropbox a Rust. Desde 2016, Dropbox lo ha utilizado para crear funciones de carga de archivos, almacenamiento, bibliotecas de códigos, servidores back end y más. El ingeniero de software de Dropbox, Sujay Jayakar, dice que Rust ha sido un "gran éxito" para Dropbox y "un placer para programar", porque les da a los programadores más control. Rust combina las mejores piezas de muchos lenguajes de programación de long data como C ++, pero agrega innovaciones propias.

Drew Houston, cofundador y CEO de Dropbox.
Drew Houston, cofundador y CEO de Dropbox.Jin S. Lee/Business Insider

"Los beneficios de Rust han sido una gran, gran victoria para nosotros. Hemos podido movernos rápidamente. No necesitamos perder tanto tiempo buscando insectos", dice Jayakar.

Más allá de su modelo de administración de memoria, a los desarrolladores les gusta el sistema de tipos de Rust, es decir, cómo clasifica los valores y las expresiones en tipos, cómo se pueden manipular estos tipos y cómo interactúan. Rust evita que las variables sean nulas (o que no tengan ningún valor adjunto). Esto, a su vez, evita la temida excepción de puntero nulo que ocurre cuando no se refiere a un objeto válido. Los punteros nulos a menudo bloquean los programas y Rust los previene.

Facebook comenzó a usar Rust hace unos 3 años con 2 proyectos llamados Mononoke y Mercurial, que ayudan a los ingenieros de la compañía a rastrear y monitorizar los cambios de código, y recientemente estableció un equipo específicamente para construir y brindar soporte a Rust. El ingeniero de software de Facebook Thomas Orozco estima que hizo que los programas de Facebook fueran 10 veces más rápidos.

También explicó que las cosas funcionan mejor cuando trabajas son Rust. Simplifica la tarea y es más rápido y eficiente.

Facebook también eligió Rust para implementar funciones centrales para su nueva criptomoneda, Libra, debido a sus funciones de seguridad, algo que es especialmente crucial para ese proyecto.

David Marcus, CEO del servicio de cartera digital Novi de Facebook, en una audiencia del Comité de Servicios Financieros de la Cámara sobre la criptomoneda propuesta por Facebook en Capitol Hill en Washington, el miércoles 17 de julio de 2019.
David Marcus, CEO del servicio de cartera digital Novi de Facebook, en una audiencia del Comité de Servicios Financieros de la Cámara sobre la criptomoneda propuesta por Facebook en Capitol Hill en Washington, el miércoles 17 de julio de 2019.AP Photo/Andrew Harnik

Rust tiene una curva de aprendizaje pronunciada, pero vale la pena

Un desafío de Rust es que tiene una curva de aprendizaje pronunciada, según los desarrolladores. Sin embargo, una vez que los ingenieros lo entienden, se amortiza rápidamente.

"Durante el año pasado, descubrimos que aunque Rust tiene una alta curva de aprendizaje, es una inversión que ha dado sus frutos", explica Ben Maurer, líder tecnológico de la filial de Facebook centrada en Libra, Novi, en otra entrevista con Business Insider. "Rust ha ayudado a Libra a construir una implementación de blockchain limpia y basada en principios", añade.

Jayakar, de Dropbox, se hizo eco de que una vez que algunas personas se volvieran competentes, podrían progresar rápidamente.

Otro desafío, según el CTO de Cloudflare, John Graham-Cumming, es que, dado que es un lenguaje más nuevo, algunas bibliotecas, que incluyen el código necesario para admitir y ejecutar una aplicación, no están tan desarrolladas. Los ingenieros deben estar al tanto de las nuevas actualizaciones a medida que madura el idioma. Aún así, se trata de desafíos menores.

"Creo que será uno de los principales lenguajes que la gente utilizará para escribir código rápido y segur. Creo que coexistirá con otros lenguajes como Go durante mucho tiempo", opina Graham-Cumming en su charla con Business Insider.

Matthew Prince, cofundador y CEO de Cloudflare.
Matthew Prince, cofundador y CEO de Cloudflare.Anthony Harvey/Getty Images

Por qué Rust ha crecido tan rápido

Rust ha podido crecer en gran parte gracias a su comunidad de desarrolladores de código abierto.

Eso es lo que atrajo originalmente a AWS.

AWS comenzó a operar con Rust en 2012, y lo tomó más en serio en 2015 y 2016 porque más clientes hablaban de él como su lenguaje preferido, según comenta a Business Insider Peder Ulander, gerente general de código abierto en Amazon Web Services.

Hoy, AWS usa Rust para su plataforma de almacenamiento y computación, así como su producto sin servidor Lambda, que permite a los desarrolladores ejecutar y escalar su código sin tener que administrar los servidores. Rust también es fundamental para el proyecto de tecnología de virtualización de código abierto de AWS, Firecracker. Y ahora, Amazon está formando un equipo dedicado exclusivamente a Rust.

Dado que Rust es de código abierto, los desarrolladores también han creado una gran cantidad de herramientas para ayudar a respaldarlo. Mozilla todavía lo mantiene, y otras empresas afirman que el equipo de Mozilla es especialmente solidario.

"Una cosa que vale la pena destacar es que la comunidad de Rust realmente está haciendo un gran trabajo. Hay muchas bibliotecas comunitarias en las que la gente está trabajando duro para trabajar realmente bien y se piensa mucho en ello", señala Howarth.

Andy Jassy, ​​CEO de Amazon Web Services.
Andy Jassy, ​​CEO de Amazon Web Services.Amazon

McMullen, de Fastly, está de acuerdo en que la comunidad de desarrolladores de Rust es muy acogedora.

Matsakis, de Amazon, trabaja con la comunidad de código abierto de Rust, y dice que una de las primeras cosas que hizo el equipo fue crear un proceso para enviar cambios y mejoras al lenguaje. Hoy, ve a los desarrolladores usándolo para servidores, sistemas integrados, criptomonedas y más.

"La comunidad impulsa y nos ayuda a dirigir y asegurar el lenguaje y satisfacer las necesidades de la gente", asegura Matsakis.

Artur Bergman, arquitecto jefe y CEO de Fastly.
Artur Bergman, arquitecto jefe y CEO de Fastly.Fastly

El futuro de Rust

Hoy en día, los desarrolladores utilizan Rust en aplicaciones web, servidores, motores de juegos, sistemas operativos, realidad virtual y otras tareas de sistemas intensivos. Y ahora, Rust se usa cada vez más para dispositivos integrados, donde antes "reinaba" el antiguo lenguaje de programación C, así como con WebAssembly, que se usa para ejecutar navegadores web modernos.

"No es necesario estar alerta cuando se codifica en Rust. Es el primer idioma en mucho tiempo que aporta algo nuevo a los desarrolladores de Facebook, a diferencia de otros lenguajes que habían prometido, pero que no nos trajeron mejoras reales", afirmó Thomas, de Facebook.

Ulander, de AWS, predice que las empresas elegirán cada vez más Rust como lenguaje predeterminado para proyectos de infraestructura. Dice que los últimos años han sido los "años incómodos de la adolescencia" en los que más personas le prestan atención y comienzan a aprenderlo. Ahora, Rust está en medio de una "racha de crecimiento".

Conoce cómo trabajamos en Business Insider.