domingo, 3 de septiembre de 2017

Rust, un lenguaje de programación de sistemas

Desde junio de 2017 tuve la oportunidad de contactar a la comunidad de Rust en la Ciudad de México.
Coincidió en el momento donde me tomé un pequeño tiempo para entender lenguajes como Haskell y Erlang.
Rust es un lenguaje para programación de sistemas, tipo de programación que normalmente se hace en lenguaje C/C++ y haciendo llamadas al núcleo (kernel) del sistema operativo.
A diferencia de C/C++, permite al programador a enfocarse a los problemas de la programación de sistemas y evita que se pierdan en temas como el manejo de apuntadores, memoria,

La sintaxis de Rust es similar a C/C++, pero introduce nuevas características para que el programador pueda ir controlando el tiempo de vida de las variables y también definir tipos de datos.
Rust tiene en su diseño todo lo necesario para el manejo de memoria, concurrencia.

Rust no tiene un recolector de basura (garbage collector) y controla el manejo de la memoria a través de un concepto que se llama préstamo (borrowing)
Rust también utiliza un sistema de tipos (inspirado en el lenguaje Haskell) y utiliza el concepto de tratos (traits) y maneja inferencia de tipos.
Soporta conceptos de programación funcional tales como closures
Para la programación concurrente, permite identificar muchos de los posibles errores a través del compilador, y que le llama fearless concurrency

Para tener mayor detalle del lenguaje, la página Web de Rust contiene bastante documentación y tutoriales