Rust



Resultado de imagen para rust lenguaje de programacion

Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla.5​ Ha sido diseñado para ser "un lenguaje seguro, concurrente y práctico".6​7​ Es un lenguaje de programación multiparadigma, soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.

El lenguaje surgió de un proyecto personal desarrollado por Graydon Hoare (trabajador de Mozilla), quien empezó a trabajar en él en 2006; Mozilla se involucró en este proyecto en 20098​ y lo dio a conocer oficialmente en 2010.9​ Ese mismo año, el trabajo pasó del compilador inicial (escrito en OCaml) al compilador autocontenido, escrito en sí mismo.10​ Conocido como rustc, en 2011 se compiló a sí mismo.11​ El compilador autocontenido usa LLVM como su back-end.

La primera versión alfa numerada del compilador de Rust apareció en enero de 2012.12​ La versión 1.0 fue lanzada el 15 de mayo de 2015.13​14​

Según la política de Mozilla,15​ Rust es desarrollado de forma totalmente abierta y busca la opinión y contribución de la comunidad. El diseño del lenguaje se ha ido perfeccionando a través de las experiencias en el desarrollo del motor de navegador Servo,16​ y el propio compilador de Rust. Aunque es desarrollado y patrocinado por Mozilla y Samsung, es un proyecto comunitario. Una gran parte de las contribuciones proceden de los miembros de la comunidad.17​
Descripción
El objetivo de Rust es ser un buen lenguaje para la creación de grandes programas del lado del cliente y del servidor que se ejecuten en Internet. Esto ha llevado a un conjunto de características con un énfasis en la seguridad, el control de distribución de la memoria y la concurrencia. Se espera que el rendimiento de código seguro sea más lento que C++, si el rendimiento es la única consideración, pero si lo comparamos con el código C++ hecho para que tome precauciones comparables a las que toma Rust, este último puede ser incluso más rápido.18​

La sintaxis de Rust es similar a la de C y C++, con bloques de código delimitados por llaves y estructuras de control de flujo tales como if, else, do, while y for. No todas las estructuras de C y C++ están presentes, además, otras (como la palabra clave match para ramificación multidireccional) serán menos familiares para programadores que vienen de estos lenguajes.

El sistema está diseñado para tener un acceso seguro a la memoria, y no permite punteros nulos o punteros colgantes.19​20​ Los valores de los datos sólo se pueden inicializar a través de un conjunto fijo de formas, las cuales requieren que sus entradas hayan sido ya inicializadas.21​

El sistema de tipos soporta un mecanismo similar a las clases de tipos, llamado "traits", inspirados directamente por el lenguaje Haskell. Esta es una facilidad para el polimorfismo que soporta distintos tipos de argumentos (polimorfismo ad-hoc), lograda mediante la adición de restricciones para escribir declaraciones de variables. Otras características de Haskell, como el polimorfismo de diferente tipo (higher-kinded), no están soportadas.

Rust cuenta con inferencia de tipos, para las variables declaradas con la palabra clave let. Tales variables no requieren ser inicializadas con un valor asignado con el fin de determinar su tipo. A tiempo de compilación produce un error si cualquier rama de código falla al asignar un valor a la variable.22​ Las funciones pueden recibir parámetros genéricos pero deben ser delimitados expresamente por los traits, no hay manera de dejar fuera de declaraciones de tipo sin dejar de hacer uso de los métodos y operadores de los parámetros.

Comentarios