Rust para principiantes: comience con el lenguaje de programación más querido

Rust ha sido votado como el lenguaje de programación más querido de Stack Overflow durante cinco años seguidos. Este artículo te dirá por qué Rust es increíble.

Rust es un lenguaje de programación de sistemas que puede utilizar para escribir aplicaciones con alto rendimiento. Algunas de las principales empresas tecnológicas como Dropbox y Cloudflare utilizan Rust para ofrecer velocidad y simultaneidad a sus clientes.

Durante los últimos cinco años consecutivos, Rust ha sido votado como el lenguaje de programación más querido.

Pero lo más probable es que no hayas trabajado con Rust. O peor aún, es posible que no hayas oído hablar de él antes. Así que aprendamos más sobre esto.

¿Por qué Rust?

Veamos por qué un desarrollador elegiría Rust.

Los lenguajes de programación típicos como Python y C ++ abstraen muchos detalles de los desarrolladores.

Si es un desarrollador junior que trabaja en una aplicación web simple, esto podría no ser un problema. Solo quieres encontrar una solución a un problema.

Para aplicaciones a gran escala que millones de usuarios utilizarán a diario, el enfoque de 'resolución de problemas' no funcionará. Más usuarios consumen más recursos del sistema. Y más recursos significan facturas más altas para su empresa.

Aquí es donde brilla Rust. Rust combina la facilidad de programación con el acceso a las configuraciones centrales del sistema. Rust está construido con seguridad de memoria, simultaneidad y seguridad desde cero.

Rust es un "lenguaje de programación de sistemas que se centra en la velocidad, la seguridad de la memoria y el paralelismo".

Rust también se considera una gran alternativa para C ++. Rust ofrece un alto rendimiento además de ayudarlo a eliminar errores comunes causados ​​por lenguajes como C ++.

Ahora que sabe lo que Rust puede hacer por usted, veamos a Rust en detalle.

 Orígenes

Rust es un lenguaje de programación de código abierto. Graydon Hoare lo presentó por primera vez al mundo en 2010, mientras trabajaba en Mozilla. Poco después, Mozilla comenzó a patrocinar este proyecto y sigue siendo un contribuyente principal de Rust.

El óxido comenzó a ganar popularidad a lo largo de los años. Incluso Microsoft usa Rust para construir componentes de software seguros y críticos para la seguridad.

 Funciones principales

Veamos algunas características principales que hacen que Rust se destaque de otros lenguajes de programación.

Actuación

Rust fue construido para ofrecer un alto rendimiento desde cero. Rust ofrece un control detallado de la gestión de la memoria y tiene una biblioteca estándar mínima.

Si observa algunas de las métricas compartidas por Figma, tuvieron increíbles mejoras en el rendimiento una vez que cambiaron a Rust.

El reducido espacio de memoria de Rust también lo convierte en una opción ideal para la programación de sistemas integrados. Puede usar Rust para escribir software para dispositivos de IoT como centros de automatización del hogar, sistemas de seguridad inteligentes, etc.

Seguridad

Una de las principales razones por las que Microsoft decidió rootear a Rust es su seguridad.

La mayoría de las vulnerabilidades en el software de Microsoft se debieron a una mala gestión de la memoria en C y C ++. Esto llevó a exploits simples pero poderosos como el exploit Buffer Overflow que había paralizado Windows durante años.

Entonces Microsoft decidió buscar la mejor alternativa a C ++. Y encontraron Rust.

El uso de Rust elimina toda una clase de vulnerabilidades de seguridad de las aplicaciones de software. Esto ayuda a las empresas a crear aplicaciones con mejor rendimiento y mayor seguridad.

Concurrencia

La simultaneidad es cuando dos o más tareas se inician, se ejecutan y se completan en un tiempo superpuesto. Las operaciones de base de datos son un gran ejemplo para explicar la concurrencia.

Cuando miles de usuarios usan su aplicación al mismo tiempo para realizar diferentes acciones, su base de datos las maneja al mismo tiempo. La concurrencia es un concepto clave cuando se trata de escalar aplicaciones.

La concurrencia y el paralelismo también están integrados en Rust. Rust resuelve la mayoría de los problemas de simultaneidad durante el tiempo de compilación mediante el uso del concepto de propiedad. Descubra cómo Rust maneja la concurrencia aquí.

Trabajando con óxido

Ahora que comprende las características principales de Rust, escribamos algunas líneas de código. Puede encontrar las instrucciones de instalación aquí si desea probar Rust en su computadora.

Comencemos con un simple "¡Hola mundo!" función.

// Main function fn main() { println!("Hello World!"); }

Sí. Eso es practicamente todo. Intentemos sumar dos números.

// Main function fn main() { let a = 100; let b = 200; println!("Result is {}",a+b); }

De nuevo, bastante estándar. Ahora veamos una operación de matriz.

// Main function fn main(){ let arr:[i32;4] = [1,2,3,4]; println!("array size is {}",arr.len()); }

Si observa la línea 3, usamos “: [i32; 4]”. Aquí le decimos a Rust que estamos declarando una matriz de longitud 4 con enteros de 32 bits.

Declarar los tipos de datos en detalle es un factor clave para mejorar el rendimiento de un programa. Está ayudando al compilador a ahorrar tiempo declarando explícitamente qué tipo de datos está a punto de asignar a una variable.

Dejar que el compilador descubra el tipo de datos es una de las principales razones por las que se encuentra con problemas de rendimiento al escalar su aplicación.

Además, Rust es un lenguaje de tipo estático, lo que significa que debe conocer los tipos de todas las variables en tiempo de compilación.

Aunque Rust es sintácticamente similar a C y C ++, no se deje engañar por su simplicidad. El óxido viene con una curva de aprendizaje empinada. Pero vale la pena una vez que comprendas bien los conceptos básicos.

¿Quién usa Rust?

Ahora que tiene una buena idea de lo que es Rust, veamos quién usa Rust.

Microsoft

Una vez que fue un feroz adversario del código abierto, Microsoft ahora es un ávido contribuyente a una serie de proyectos de código abierto. Su proyecto principal .net es uno de los marcos de código abierto más populares utilizados por los desarrolladores en la actualidad.

Microsoft ha elegido Rust para aplicaciones críticas para la seguridad y el rendimiento. Rust también se usa ampliamente en Azure, especialmente en su plataforma IoT Edge para ejecutar aplicaciones de inteligencia artificial en dispositivos IoT.

Dropbox

Dropbox utiliza Rust para mejorar la eficiencia de su centro de datos. Rust ahora está impulsando los servicios centrales de Dropbox que atienden a más de 500 millones de usuarios.

Dropbox escribió recientemente un artículo detallado sobre cómo reescribieron su motor central.

En las propias palabras de Dropbox,

Rust ha sido un multiplicador de fuerzas para nuestro equipo, y apostar por Rust fue una de las mejores decisiones que tomamos.

El óxido también fue un factor que contribuyó a que Dropbox trasladara su infraestructura de AWS a sus propios centros de datos.

Figma

Figma es una herramienta de diseño y creación de prototipos basada en la nube que puede utilizar en su navegador. Es una excelente herramienta para diseñar, crear prototipos y exportar sus diseños a código. Obtenga más información sobre Figma aquí.

La concurrencia es crucial para una herramienta colaborativa en la que muchos usuarios trabajarán en un solo diseño a la vez. Figma usó Rust para escribir un servidor de alto rendimiento que les ayudó a escalar su producto y lograr el rendimiento que estaban buscando.

Aquí está el artículo que Figma escribió sobre su experiencia con Rust.

TL; DR

Rust es un lenguaje de programación de sistemas que ha sido votado como los lenguajes de programación más queridos de StackOverflow, cuatro años seguidos.

Rust te da control sobre los detalles de bajo nivel y proporciona notables mejoras en velocidad y estabilidad.

Ha ayudado a empresas como Dropbox, Figma y Microsoft a crear mejores aplicaciones para sus clientes.

El lenguaje está siendo adoptado cada vez más por empresas que buscan escalar sus aplicaciones con mayor rendimiento y concurrencia. ¿Suena interesante? Empiece a aprender Rust aquí.

Escribo regularmente sobre aprendizaje automático, seguridad cibernética y DevOps. Puede suscribirse a mi boletín semanal aquí.