Langage de script multiplate-forme, open-source
Version actuelle : 5.4 (29/06/2020)
Licence MIT (en FR)
Site officiel : www.lua.org
Téléchargement
Compact, léger, flexible, Lua est un langage de script extrêmement puissant et rapide, de dix à trente fois plus rapide que d'autres langages de scripts tel que TCL, Perl, Python, Ruby ou PHP.
Sa force : sa petite taille et sa portabilité.
Compilateur, interpréteur et librairies standards n'occupent qu'environ 150 kilo-octets une fois compilés ! C'est facilement dix fois moins qu'un environnement Perl ou Python réduit à son strict minimum, ou cent fois moins qu'un compilateur C++ moderne en ligne de commande.
L'intégralité de son code source est écrit en ANSI C et respecte la norme C++98 ; il peut donc être compilé au choix comme un programme C ou C++.
Conçu sous forme de librairie C, il peut être très simplement embarqué à l'intérieur d'une application ou d'un micrologiciel et appelé comme une extension du programme principal : c'est ce qui lui a valu sa notoriété, notamment dans le secteur du développement de jeux.
Il est idéal pour configurer, scripter, prototyper.
Il est entièrement libre et gratuit. Distribué sous la licence MIT, vous pouvez l'intégrer dans tous types d'applications et modifier ses sources comme bon vous semble.
Qui découvre Lua, en devient vite un adepte, ce langage facile à apprendre offrant de vastes possibilités. C'est ce qui explique sa rapide diffusion : créé en 1993, pour répondre aux besoins de l'industrie brésilienne, il est aujourd'hui utilisé dans de nombreux secteurs et pays, au point qu'en 2011 il entrait dans la catégorie des 20 langages les plus utilisés dans le monde de l'index TIOBE.
Début janvier 2012, Lua s'est vu attribuer le prix Front Line Award 2011 par le magazine de référence dans l'industrie du jeu vidéo Game Developers Magazine dans la catégorie Outils de développement.
Ne soyez pas surpris : peu de gens, même parmi les développeurs, connaissent Lua en France. À la différence des autres langages, il n'est souvent connu que par ses seuls utilisateurs.
Pourtant il y a du Lua dans de nombreux logiciels et de plus en plus de produits électroniques (notamment en robotique).
Quelques exemples fameux :
C'est d'ailleurs précisément l'industrie du jeu qui a poussé Lua sur le devant de la scène. Très prisé par les studios de développement de jeux en tant que langage d'extension, Lua apporte aux productions une grande modularité et permet de déléguer certaines parties du développement à des collaborateurs non-développeurs : game designer, sound designer, etc. Les jeux produits y gagnent en richesse et en qualité.
Le mouvement a été initié par les développeurs du World of Warcraft, qui eurent l'idée de proposer aux amateurs d'ajouter leurs propres modules au jeu. Lua permettait de développer des fonctionnalités sans toucher au code source. L'initiative remporta un succès immédiat et des centaines de modules ont pu ainsi être développés, enrichissant le jeu de toutes sortes de fonctionnalités aussi variées les unes que les autres : cartographies, bloc-notes, gestion d'inventaire...
Lua commence à être enseigné dans plusieurs écoles spécialisées dans le jeu vidéo et fait partie des compétences requises pour les level designer (voir le référenciel qui définit l'ensemble des métiers de la production de jeux vidéo édité par l'Aract Ile de France et Capital Games).
Vous trouverez dans ce tour d'horizon de Lua extrait du chapitre éponyme du livre Le guide de Lua et ses applications une présentation des forces et faiblesses du langage et des exemples d'utilisation.
Lua tourne sur Android, iOS, BREW, Symbian, Windows Phone.
Dans un post (en anglais) sur la liste de diffusion de Lua, Mike Pall, l'auteur de LuaJIT, explique pourquoi Lua est très bien adapté aux supports mobiles, et d'une manière générale à tous les systèmes restreints.
Pour les développeurs Android, voici quelques liens (en anglais) intéressants pour aller plus loin :
Pour les développeurs iOS, voici quelques liens (en anglais) intéressants pour aller plus loin :
Pour ceux qui souhaitent développer des applications mobiles multiplates-formes, sachez également que le Corona SDK est fondé sur Lua.
29-06-2020
Sortie de la version 5.4 de Lua
25-11-2013
Le Workshop Lua, événement majeur de la communauté Lua, s'est tenu cette année en France, à Toulouse, les 23 et 24 novembre. Voir les vidéos.
04-05-2012
LuaJIT a désormais une mailing list dédiée.
30-01-2012
Wikipédia adopte Lua comme langage de script pour son nouveau système de templates.
13-01-2012
Lua remporte le prix Front Line 2011 du magazine Game Developers dans la catégorie Outils de développement.
Créer des interfaces graphiques en Lua avec wxWidgets
Il existe des liaisons (bindings) en Lua pour utiliser la plupart des outils dédiés à la conception d'interfaces graphiques (GTK+, Qt, FLTK, tekUI, Java). Parmi elles, wxLua vous permettra de tirer parti de wxWidgets. Cet outil développé par John Labenski en 32 bits est très stable et simple d'utilisation.
En revanche, il a peu évolué. La version mise à disposition sur le...
Lire la suite
Développer pour le web en Lua
Lua est d'abord connu pour son utilisation dans le développement de jeux vidéo et l'embarqué, notamment la domotique. Mais sa puissance et sa simplicité le prête à de nombreux usages. Et sa communauté et son écosystème sont suffisamment vastes pour vous offrir généralement les outils adaptés. Il en va ainsi pour le développement web.
Il existe...
Lire la suite
Développer des jeux mobiles en Lua avec Corona SDK
Interview de Michaël Peiffert, fondateur du studio indépendant lyonnais Mis-Clos. Michaël développe ses jeux en Lua sur Corona SDK, qui offre un kit complet de développement très avenant pour développer simplement et rapidement des applis iOS et Android.
Lire la suite
Documentation
Le guide de Lua et ses applications Écrit sous la direction de Sylvain Fabre par Pierre Chapuis, Etiene Dalcol, Cyril Doillon, Sylvain Fabre, Philippe Lhoste, Hisham Muhammad, Patrick Rapin
Manuel de référence officiel (en anglais) Il s'agit du manuel de référence écrit par les créateurs de Lua.
Traduction partielle du manuel de référence officiel Adaptation libre par Claude Urban
Forums
XtreamLua Forum informel en français sur Lua
Général
Présentation de Lua et de ses atouts (en anglais) Il s'agit de la présentation claire et efficace du site officiel.
Où trouve-t-on du Lua ? Dans ce récapitulatif (en anglais), vous trouverez de nombreux exemples de logiciels contenant du code Lua ou l'utilisant comme langage d'extension.
Une petite introduction à Lua Présentation écrite par David Anderson, enseignant à l'université de technologie Belfort-Montbéliard
Spécialisé
Löve2d Framework pour développer simplement des jeux 2D en Lua.
eLua (en anglais) eLua simplifie le développement "embarqué" en Lua, notamment sur des microcontrôleurs 32bits.
LuaJIT Compilateur à la volée permettant d’accélérer l'exécution de scripts Lua effectuant des traitements complexes.