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.