lua-language.gif
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.

logo du front line awards 2011Dé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.

 

Un langage méconnu en France mais de plus en plus utilisé

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).

Un langage méconnu en France mais de plus en plus utilisé

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 designersound 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).

Bon à savoir !
Lua se prononce <loua> et signifie Lune en portugais. Il ne s'agit donc pas d'une abréviation, le mot s'écrit avec une simple majuscule initiale (et non LUA).


Les usages de Lua

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 sur les mobiles

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.

Interview de Roberto Ierusalimschy
Roberto Ierusalimschy est professeur associé au département informatique de l'université PUC-Rio au Brésil. Il a coinventé le langage Lua en  1993 avec Waldemar Celes et Luiz Henrique de Figueiredo. Lire la suite

45-visuel1469466716.jpgCré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

44-visuel1469440380.pngDé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

Logo du studio Mis-ClosDé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

détail d'une carte stm32F4Portage en Lua des fonctionnalités Arduino
Si vous vous intéressez aux systèmes embarqués, au prototypage et aux microcontrôleurs, ce projet de développement en Lua d'une bibliothèque inspirée du projet arduino pour les cartes STM32F4-DISCOVERY vous intéressera certainement. Il a été conduit en 2011-2012, sous la direction de Olivier Richard, par deux élèves ingénieur de 5 e... Lire la suite