viernes, 3 de diciembre de 2010

Rust: un nuevo lenguaje experimental desde los labs de Mozilla

Mozilla Labs

La gente de Mozilla Labs publicó recientemente en GitHub su proyecto Rust, un lenguaje experimental.

Según la wiki con preguntas frecuentes, estos son los puntos importantes del lenguaje:

Seguridad

  • Manejo de memoria seguro. Sin punteros nulos o huérfanos, y con administración automática.
  • Control de mutabilidad. Inmutable por omisión. No hay estado mutable compartido entre tareas.
  • Seguridad en ejecución dinámica. Permite atrapar, loguear y procesar fallas en general.
  • Sistema de estado de tipos. Permite definir invariantes complejas sobre estructuras de datos.

Concurrencia y Eficiencia

  • Control de memoria explícito, sobre alocación y disposición.
  • Tareas (corutinas) livianas, de muy bajo costo al dispararlas de a miles o millones.
  • Iteradores de pila (bloques lambda sin alocación en el heap)
  • Compilación estática y nativa.
  • Interfaz simple y directa con código C

Pragmatismo

  • Multiparadigma: puramente funcional, concurrencia/actores, procedural/imperativo, orientado a objetos.
  • Multiplataforma: Windows, Linux, OS X.
  • Strings UTF8 y tipos a nivel de máquina
  • Permite romper reglas declarándolo explícitamente

Como explican en la Wiki, el proyecto, aunque tiene algunos leves puntos de contacto, se inició mucho antes que Google publicara su lenguaje Go, y aunque su sintaxis (por ahora, ya que no es el foco del proyecto todavía) también huele a C (usando llaves, punto y coma, etc).

Para variar, desde este blog no dejamos de celebrar novedades en el ambiente de lenguajes e programación, que aún cuando no llegan a popularizarse siempre aportan conceptos e ideas interesantes que se aprovechan tarde o temprano en otro lado.