programming, rust

Introducing Rust

rust-logo-256x256-blk

Cada poco tiempo un nuevo de lenguaje de programación aparece tratando de aportar nuevas características y mejorar la manera en que nos comunicamos con nuestros ordenadores.

La gran mayoría de lenguajes acaban apuntando a ámbitos de alto nivel como el desarrollo web, el scripting o entornos específicos. Sin embargo en 2010 en el departamento de investigación de Mozilla se creó un nuevo lenguaje de programación destinado a un ámbito que normalmente llama muy poco la atención, lo que se conoce como “system programming”, y que actualmente esta ampliamente dominado por C y C++.

Rust compite con grandes “players” en el ámbito de los lenguajes de programación, y es que su meta, sin llegar a explicitarlo, es poder destronar a los reyes de la programación.

Y ¿qué aporta Rust que no podamos hacer ya con los diferentes lenguajes que tenemos disponibles?


Rust esta construido alrededor de tres metas, seguridad, concurrencia y velocidad.

  • Seguridad: La mayor parte de los fallos de programación cuando desarrollamos en C es el manejo de memoria. Punteros o memoria dinámica son conceptos que nos vienen a la mente en este aspecto y que han causado muchos problemas durante el desarrollo de software en C o C++. Rust construye todo un sistema de “propiedad” de referencias incluido en la compilación que hará que estos problemas se reduzcan por completo, y sin ningún mecanismo en tiempo de ejecución que lo garantice.
  • Concurrencia: Es mas que conocido que el presente esta dominado por maquinas que son capaces de ejecutar varias cosas a la vez. En gran parte debido a sus origenes, los mecanismos de concurrencia de C o C++ pasan por librerias externas y no estan incluidos en el propio lenguaje, Rust ataca el problema de la concurrencia directamente ofreciendo mecanismos de ejecucion de codigo en paralelo, y de comunicacion entre procesos seguros. Como en el punto anterior, muchos de los fallos de programación se derivan del manejo de memoria por parte de varios hilos, con estos mecanismos Rust pretende poner fin a dichos problemas y hacer nuestra vida de desarrollador mas cómoda.
  • Velocidad: Hasta ahora, otros lenguajes dirigidos al mismo ambito como Java o Go han tratado de solucionar los anteriores problemas pero introduciendo un coste en tiempo de ejecucion como pueden ser el Garbage Collector. La gran ventaja de Rust es que todos los mecanismos que garantizan la seguridad o la concurrencia se llevan a cabo en tiempo de compilación por lo que no existe ninguna penalizacion en tiempo de ejecución y su rendimiento deberia ser cercano al de C++.

Para finalizar esta entrada de presentación me gustaría destacar una pieza clave que hace de Rust un gran candidato a reemplazar tanto a C como a C++ en un futuro no muy lejano. Como hemos mencionado antes, Rust carece de ningun runtime, esto quiere decir que una vez compilado un binario de Rust, este se ejecuta sin necesidad de tener ninguna otra libreria añadida. Este detalle hace que podamos llamar a codigo desarrollado en Rust desde cualquier otro programa desarrollado en cualquier otro lenguaje.

Esta caracteristica es algo que solo podiamos hacer hasta ahora con lenguajes como C o C++, si por ejemplo, estamos desarrollando un software de escritorio multiplataforma, podemos desarrollar la parte comun usando Rust, compilarlo a una libreria nativa y usarlo desde todas las plataformas y con el rendimiento de C++.

Si todo esto os ha parecido interesante, estad atentos a los próximos posts donde empezaremos desde una guía de inicio hasta profundizar en los aspectos mas interesantes del lenguaje.

Un comentario en “Introducing Rust

Los comentarios están cerrados.