Mozilla nos trae su nuevo lenguaje de programación llamado Rust

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.
Las diez tecnologías mejor pagadas que un programador puede aprender
- Una tremenda especialización entre los profesionales de la analitica y la minería de datos.
- El posicionamiento de Bigdata entre las tecnologías mejor valoradas.
- El dominio de las tecnologías de backend frente a las tecnologías frontend o aplicaciones móviles.
Ranking de tecnologías mejor pagadas
- R: un lenguaje y entorno de programación para análisis estadístico y gráfico. Proporciona un amplio abanico de herramientas estadísticas para el análisis de comportamientos. Es uno de los pilares para el análisis de grandes datos en el concepto más amplio de Bigdata. Si queréis empezar a aprender algo de R, os aconsejamos, la versión en español de R for Beginners, traducido por Jorge A. Ahumada.
- NoSQL: el conjunto de bases de datos y sistemas de almacenamiento contrapuesto al sistema tradicional de bases de datos relacionales. Existen un amplio abanico de tecnologías y módelos como sistemas de grafos, documentos, orientadas a objetos, a colummnas, clave-valor, etc… Entre ellas nos encontramos con Redis, MongoDB, Cassandra, Neo4J, DynamoDB, etc…
- MapReduce: es un modelo de programación para procesar grandes cantidades de datos, en forma paralela y en clusters. Está compuesto por el proceso de Map() para el filtrado y de Reduce() para el procesado. Podemos encontrarnos con tecnologías como Hadoop.
- PMBok: uno de los estándares de gestión de proyectos más extendidos del mundo. En el se basan distintos master que certifican a jefes de proyectos y gestores en la industria del software. Más enfocado a la parte de gestión que a la desarrollo de software.
- Cassandra: una de las tecnologías NoSQL que mencionábamos más arriba con un fuerte posicionamiento en el mercado. Desarrollada inicialmente por Facebook en 2008 y que se describe como un modelo de datos BigTable. Sus principales usarios son grandes compañías como Twitter o la propia Facebook.
- Onmigraffle, más orientado a profesionales de usabilidad que programación, pero se cuela sorprendentemente en el ranking. Se trata de una herramienta para crear diagramas, gráficas de flujo, ilustraciones, etc… Similar a Microsoft Visio, pero que se posicionar fuertemente para construir todo tipo de diseños y wireframes por los expertos en usabilidad, bastante bien valorados
- Pig: volvemos a referirnos a Bigdate y MapReduce con esta herramienta construida con la intención como plataforma por encima de Hadoop para el análisis de datos. Incialmente desarrollada por Yahoo, ahroa pertenece a la fundación Apache.
- Service Oriented Arquitecture (SOA): esta es una de las habilidades o conocimientos más amplio basados en el patrón de diseño y arquitectura de aplicaciones SOA: las aplicaciones se sustentan en servicios totalmente independientes que encajan con otros para formar funcionalidades más amplias.
- Hadoop: Otra más para apuntar en el conjunto relacionado con BigData. Un modelo de almacenamiento y análisis de grandes cantidades de datos cuyo sistema es HDFS. Sus usos principales son el clustering de datos y aplicar técnicas de MapReduce
- MongoDB: una de las bases de datos NoSQL más ampliamente usadas. Parte de su popularidad viene gracias a su modelo basado en documentos y JSON de almacenamiento que hacen bastante cómodo su uso y tratamiento.