Programando con LUA: Ese gran desconocido (PcL-I)
glpunzi | 20 Febrero, Miércoles, 2008 | 6:52 pm
Voy a hablar un poco sobre Lua (de las pocas horas que llevo jugueteando/ojeando).
En esta entrada, casi toda la información (por no decir toda, yo lo único que haré será maquetarla un poco :P), la ofreceré traduciendo de la web oficial, por lo que no merezco ningún mérito por lo aquí escrito. No me encuentro en condiciones aún de poder hablar objetivamente sobre él, pero debido a la poca información que hay en español, no está de más darlo un poco más a conocer, pero sobre todo, dejar claro, que mi intención no es compararlo con “otros”, mi intención es simplemente la de informar, está claro que Python y otros, seguramente tengan las mismas caracterísitcas y más, pero no son LUA, que es en lo que me centro aquí………así que, vamos allá.
Definición
Definimos LUA como un lenguaje de scripting embebido (o empotrado), poderoso, rápido y ligero. Lua posee tipado dinámico, se ejecuta interpretándolo a bytecode para una máquina virtual, y tiene manejo automático de la memoria con “recolector de basura” incremental, haciéndolo ideal para configuraciones, scripting, y prototipo rápido.
¿Por qué usar LUA?
Obviando los detalles de cada parte, nos “sugieren” usar Lua, porque es un lenguaje robusto más que probado, rápido, portable, empotrable (como me duele esta palabra), potente pero simple, pequeño (ligero), y libre (as speech, not as a beer).
Referente a lo portable, la verdad es que el código fuente de LUA, ocupa 200KB, y es compilable en cualquier sitio donde halla un compilador ANSI C (móviles, windows y todos los sabores UNIX, etc…), y ligero, pues, mi carpeta de pruebas con LUA, con los binarios, la documentación, ejemplos y demás, 1,78MB. Obviamente, no podemos hacer de todo, ya que, ese 1,78MB es el conjunto del intérprete y librerías base.
En su web, nos ponen un resumen de lo que digamos, son los proyectos más importantes o conocidos que usen LUA, entre los que caben destacar por ejemplo World Of Warcraf, y Warhammer Online, en el que es usado para construir la interfaz, Adobe PhotoShop Lightroom, donde dicen que el 40% está desarrollado en LUA, o un servidor web empotrado llamado Barracuda, entre otros muchos proyectos, algunos bastante conocidos.
Yo conocía LUA desde hace tiempo como lenguaje empotrado en aplicaciones/juegos, lo que no sabía (tampoco sé si es algo nuevo), es, que LUA, también funciona de manera independiente. Pero quizás, una de las cosas que más me han sorprendido, mirando la forja de proyectos (bueno, y fuera de ella), es lo activo que está fuera de los propósitos para los que nació, como librerías de acceso a bases de datos, creación de pdf’s, usar LUA como CGI para desarrollo de páginas web y un no tan largo etcétera, pero que seguro va creciendo día a día.
Si a ésto (que es poco, no me quería extender demasiado), además sumamos, que puedes extender el lenguaje con C/C++, nos queda algo, muy muy muy completito, tal y como comentan en su web, “Un concepto fundamental en el diseño de Lua, es proveer un meta-mecanismo para implementar características, en vez de acogerlas directamente en el lenguaje. Por ejemplo, aunque Lua no es un lenguaje puro orientado a objetos, provee meta-mecanismos para la implementación de clases y herencia.Los meta-mecanismos de lúa, trae una economía de conceptos, y conserva un lenguaje pequeño, mientras permite que la semántica sea extensible de maneras no convencionales.”
En lo poco que llevo ojeando Lua, he encontrado intérpretes para casi todos. Desde PDA’s, Palm, Windows/Linux/MacOS obviamente, para Lego Mindstorms y un largo etcétera, inclusive, para iPod/iPhone.
Yo de momento, seguiré jugueteando unos días más, a ver que tal, de momento, me va gustando. Otro proyecto/juguete más para gastar mi tiempo de descanso en comerme la cabeza :)
Seguiremos informando.
Editado: Se me olvidó comentar, que parece que es bastante usado en el homebrew (leer mejor en inglés) de la Playstation Portable, y la DS. De hecho, casi todo lo que he encontrado en castellano era de foros de PSP.
Entradas relacionados:






aprendiz de todo, maestro de nada, por qué no te
Raúl | 20 Febrero, Miércoles, 2008 | 7:10 pmaprendiz de todo, maestro de nada, por qué no te centras dominas uno de los tropecientos lenguajes que miras cada semana y cuando lo tengas controlado te pasas a otro?
Sencillo, porque mi intención no es controlarlo, si no simplemente
glpunzi | 20 Febrero, Miércoles, 2008 | 8:00 pmSencillo, porque mi intención no es controlarlo, si no simplemente ojearlo. Con erlang por ejemplo, estuve mirándolo para ver si me servía a mis propósitos, y comencé una serie de artículos como éste. En cuanto ví que no me servía, fuera y a otra cosa (que no quita que el lenguaje fuera la mar de interesante).
Dominar ya domino Object Pascal y alguno que otro y con eso voy más que sobrado, me basta, lo que busco son lenguajes fuera de lo común, de lo que ya conozco, pero mis primeras intenciones aproximándome a él, no son las de dominarlo.
Si LUA me gusta, seguiré profundizando, en el momento que algo no me cuaje, pues a probar otro se ha dicho., si me gusta y estoy cómodo, pues entonces si profundizaré. :)