Lua: el lenguaje de los videojuegos

Echando un vistazo a los lenguajes de programación, me llamó la atención un lenguaje que había visto desde hace tiempo y al que cada vez se le está dando más protagonismo: el lenguaje Lua.

Hay muchos lenguajes extensibles que se emplean para poder desarrollar addons, plugins, de modo que cualquier desarrollo se pueda aprovechar de las ventajas de tener un lenguaje liviano y potente para su extensión, sin necesidad de tocar, ni conocer, el código fuente con el que se realizó.

El lenguaje Lua (del portugués: luna) se ha hecho famoso gracias a las extensiones que se realizan con él para videojuegos como World of Warcraft, aquí se puede ver una página de recursos e información para la programación de extensiones.

Si os ha interesado, aquí hay una página en castellano en la que nos ofrece una introducción rápida y fácil al mundo de este apasionante lenguaje. Como entrada, dejo un pequeño trozo de código, para los que tengan curiosidad en ver cómo es el lenguaje en sí:

-- Una función:
function diHola(persona)
    -- Un bucle:
    for i=1,3 do
        print("Hola " .. persona .. "!")
    end
end
 
print("¿Cómo te llamas?")
nombre = io.read()
-- Llamada a una función:
diHola(nombre)

NOTA: el trozo de código ha sido extraído de la página tutorial mencionada antes.

Potencias del Lenguaje

En principio, lo más destacable, es su tamaño, lo cual permite que sea el candidato perfecto para ser embebido dentro de una aplicación como puede ser un software de retocado de imágenes, ofimática o videojuegos (como Word of Worldcraft, Half-Life 2, etc.)

La sintaxis del lenguaje les será bastante reconocible a los que programen en Ruby, ya que es muy parecida, pero agrega otras cosas, como los bucles por rangos de Python (o shell script).

Otra cosa a denotar, también muy parecida a Ruby, son los closures, funciones que se pueden usar como variables; y la definición de objetos (y sus métodos) en tiempo de ejecución, llegando a poder definir una función dentro de una estructura de datos típica, como por ejemplo un hash.

Conclusiones

Es un lenguaje que aún no me ha dado tiempo a estudiar en profundidad, pero la verdad es que lo que he visto por el momento me ha impresionado, ya que tiene lo que todos los lenguajes de scripting de hoy en día tienen, lo mejor de cada uno, y se ha forjado en un entorno tan competitivo y fuerte como es el sector de los videojuegos, con lo que, promete :-)