Genie (lenguaje de programación)
# Genie (lenguaje de programación)

Genie es un lenguaje de programación de alto nivel, moderno, y de propósito general en desarrollo activo desde el año 2008. Fue diseñado como un dialecto alternativo más simple y limpio para el compilador Vala, preservando al mismo tiempo la misma funcionalidad del lenguaje Vala. La sintaxis de Genie se deriva de numerosos lenguajes modernos como Python, Boo, D y Delphi.

Al igual que Vala, Genie usa el sistema de tipos GObject para crear clases e interfaces declaradas en el código fuente de Genie, sin imponer requisitos adicionales de tiempo de ejecución (es decir, a diferencia de Python, Java o Mono, este no requiere una máquina virtual).

Genie permite el acceso a las bibliotecas de C, especialmente las basadas en GObject (como GTK+), sin necesidad de utilizar otro API. Durante la compilación, el código se traduce primero a código fuente y cabeceras de C, que se compilan entonces al código de máquina con cualquier compilador C disponible como GCC, lo cual permite el desarrollo de software multi-plataforma.

Aunque tanto Vala como Genie son desarrollados y promovidos por el proyecto Gnome, los programas desarrollados en Genie no dependen del entorno de escritorio Gnome, y usualmente requieren solo de GLib.

## Diferencias con Vala

Genie usa el mismo compilador y bibliotecas que Vala; de hecho, los dos se pueden utilizar juntos. Las diferencias son solo sintácticas.

## Sangría

Como un lenguaje que toma a Python como referencia, Genie utiliza espacios en blanco o tabuladores en lugar de llaves para delimitar bloques.

## Ejemplos de código

### Un simple "Hola Mundo"

En este ejemplo se utiliza de forma explícita cuatro espacios para el sangrado.

Otro ejemplo:

### Objetos

Sin ninguna declaración explícita para el sangrado, por defecto se usa la tabulación.

