Lua [veille]

le

Lua est un langage de script simple et efficace. Il propose peu de concepts et d'abstractions, se contentant des structures du C. Lua a été inventé dans une université brésilienne, pour être embarqué dans une application. L'interpréteur en ligne de commande n'est là que pour faire de petits essais. Lua a une excellente réputation pour son efficience et est conçu comme un language glu, comme un fichier de conf dynamiques et surtout pas comme un concurrent de Python/PHP/Ruby... . Il n'y a d'ailleurs aucune notion de framework (à part peut être Kepler), mais il y a bien sur une belle collection de bibliothèques : Lua Rocks. Simple et relativement récent, il ne traine aucune historique et soucis de compatibilité, comme le célèbre javascript, un de ses concurrents.

Sa documentation est simple et concise, sa prise en main rapide. On a constamment une impression de déjà vu, et peu de surprises.

Lua a de belles références, comme World of Warcraft, (pour personnaliser son interface) ou LightRoom où il est utilisé massivement pour agglomérer des routines d'interfaces et de traitements d'images.

Dans le logiciel libre, il est connu pour son intégration dans les serveurs web Lighttpd et Nginx pour proposer des configurations vicieuses et dynamiques, ainsi que dans Redis, pour proposer de nouvelles fonctionnalités, et faire des traitements un peu complexe, sans être pénaliser par le round trips (comme une procédure stocké, en fait). Awesome, bien connu des puristes, se configure en Lua.

Lua, de par son efficience est aussi à l'aise dans le matériel embarqué. Le serveur http d'Openwrt, uhttpd utilise lua pour communiquer avec le système de configuration centralisé. Toute l'UI est donc géré par Lua.

Son efficacité lui permet d'aller un cran plus loin, et de servir de base à des microcontroleurs avec le projet eLua. Il est proposé sous forme de firmware à charger sur un panel de produits pas trop exotiques, comme le netduino (conçu à l'origine pour du .net). Il faut prévoir des cartes un poil plus costaud qu'un classique Arduino.


Partager cet article :