



Rust es un nuevo lenguaje de programación multiparadigmático que está siendo desarrollado por Mozilla. Según se puede leer en su sitio oficial, el objetivo de este nuevo lenguaje es diseñar e implementar un lenguaje de sistemas seguro, concurrente, práctico y estático.
El desarrollo del lenguaje, fue empezado en 2006 por Graydon Hoare, y en 2009, la fundación Mozilla, se involucró en el proyecto. Además de Hoare, hay otros desarrolladores detrás como son el miembro del comité Ecma, Dave Herman, y el CTO de Mozilla y creador de JavaScript, Brendan Eich.
Por ahora se conoce poco sobre el código, pero se puede ver algo de sintaxis en la FAQ de Rust. Os pongo un trozo de código.
iter pairs()-> tup(int,int){
let int i =0;
let int j =0;
while(i <10){
put tup(i, j);
i +=1;
j += i;
}
}
fn main(){
let int i =10;
let int j =0;
for each (tup(int,int) p in pairs()){
log p._0;
log p._1;
check (p._0 +10== i);
i +=1;
j = p._1;
}
check(j ==45);
}
Las características que nos aportará este nuevo lenguaje, han sido resumidas por los desarrolladores de Mozilla.
Orientado a seguridad
Memoria de seguridad, para evitar bugs que sirvan como brechas de seguridad. Gestión automática de guardado.
Control de las modificaciones. Inmutables por defecto. El estado de mutabilidad no se comparte entre tareas.
Ejecución dinámica de seguridad: errores, registros, etc.
Capacidad para definir invariantes complejas
Orientado a la concurrencia
Control de la memoria explícita. Control de localización y de etiquetas.
Tareas de peso muy ligero. Facilidad para convertir miles en millones.
Stack iterators
Compilación nativa y estática. Emite archivos ELF / PE / Mach-o
Una interfaz simple y directa para C.
Orientado a la práctica
Multiparadigmático, totalmente funcional, concurrente, OO
Funciones de primera clase con vínculos
Multiplataforma. Desarrollado para Windows, Linux, OSX
Cadenas UTF8
Funciona con cadenas nativas existentes. GDB, Balgrind, Shark, etc
Permite romper normas en la práctica, si es explícito dónde y cómo
Como se ha comentado, es un proyecto aún en desarrollo, por lo que no podemos ofrecer mucha más información, solo esperar a que por parte de Mozilla vayan sacando más información al respecto.