miércoles, 1 de diciembre de 2010

Mozilla inventa un nuevo lenguaje de programación, Rust

Mozilla está creando un nuevo lenguaje de programación multiparadigmático llamado Rust. Su objetivo, “diseñar e implementar un lenguaje de sistemas seguro, concurrente, práctico y estático”.  ¿Hacen falta más lenguajes de programación o mejorar los que hay?

Rust comenzó como un proyecto de Graydon Hoare en 2006. Más tarde, en 2009, la Fundación Mozilla se involucró, justo cuando estaba suficientemente maduro como para aplicarle algunos tests. Ahora el lenguaje está publicado en Github, aunque no está ni mucho menos preparado para su producción. En la sección FAQ de Rust pueden encontrarse trozos de código como este:

Además de Hoare, hay otros desarrolladores que contribuyen al desarrollo de este lenguaje como el miembro del comité Ecma, Dave Herman, y el CTO de Mozilla y creador de JavaScript, Brendan Eich.
La duda es, ¿son necesarios más lenguajes de programación? Desde ReadWriteWebHack, Ed Borasky escribió recientemente que “está claro que no necesitamos más lenguajes de programación. Lo que necesitamos son implementaciones *eficientes* de los que ya tenemos y también IDEs y sistemas de control de versiones que obligue a los informáticos a trabajar con disciplina”.
Los desarrolladores de Mozilla Labs han descrito de forma resumida las características que están implantando a Rust, con un pequeño nivel de detalle.

Orientado a la 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 y a la eficiencia

  • Control de la memoria explícita. Control de localización y de etiquetas.
  • Tareas de peso muy ligero (corotinas). 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
(readwriteweb.es)

No hay comentarios:

Publicar un comentario

Entradas populares