¿Es Lua un lenguaje de tipado fuerte?

No, Lua no es un lenguaje fuertemente tipado en el sentido tradicional. De hecho, Lua es un lenguaje de tipado dinámico, lo que significa que no necesitas declarar el tipo de una variable cuando la defines. En lugar de eso, cada valor en Lua sabe de qué tipo es. Por ejemplo, si asignas un número a una variable, esa variable será de tipo número; si luego le asignas una cadena, automáticamente pasará a ser de tipo cadena.

Esto permite mucha flexibilidad. Puedes escribir código más rápido y con menos formalismos, algo muy útil en contextos como el desarrollo de videojuegos o scripts embebidos, donde Lua es especialmente popular. Por ejemplo:

variable = 10        -- es un número
variable = "hola"    -- ahora es una cadena
variable = true      -- ahora es un booleano

En ningún momento recibes un error por cambiar el tipo. El tipo pertenece al valor, no a la variable. Eso es justamente lo que define al tipado dinámico.

No confundas "dinámico" con "débil". Lua no realiza conversiones de tipo implícitas y arbitrarias como hacen algunos otros lenguajes. Si intentas sumar un número a una cadena sin convertirla, Lua lo detectará y te dará un error. Así que, aunque es dinámico, mantiene una coherencia clara en las operaciones.

En resumen: Lua no tiene tipos definidos en el código, el tipo lo lleva el valor, y puedes cambiarlo en cualquier momento. Esto lo hace dinámico, no débil ni fuertemente tipado como en lenguajes como Pascal o Java. Ideal para quienes buscan agilidad sin sacrificar demasiado control.

Ver también

Artículos detallados

Temas relacionados