Voici une petite présentation du langage de programmation Lua. Il s’agit d’un langage rapide, facile d’accès et intuitif qui permet à tout le monde de tirer les bénéfices de ses spécificités.
Précision : cet article est dérivé d’une présentation effectuée dans le cadre d’un Digital Apéro de l’association Silicon Comté.
Présentation du langage
Lua est issu d’une université brésilienne et a fait son apparition en 1993.
Le but du projet est de fournir un langage qui possède ces caractéristiques :
- Puissant
- Rapide
- Léger
- Intégrable (« embedable »)
Le langage est sous licence open source MIT.
L’implémentation tient en moins de 20 000 lignes de code source écrit en C AINSI. Donc, si vous avez un compilateur C sur votre machine, il y a de fortes chances pour que vous puissiez compiler Lua.
Rapidité
Lua est un langage très rapide. Dans sa version actuelle et en utilisant LuaJIT (une implémentation de Lua 5.1 hyper rapide), Lua est plus rapide que Python, PHP, Ruby, etc.
Il s’agit du langage de script le plus rapide et il peut, sous certaines conditions, rivaliser avec du code C.
Si ce sujet vous intéresse, vous pouvez aller consulter les benchmark de TechEmpowered.
Syntaxe
Voici un petit aperçu de la syntaxe du langage de programmation Lua. Le but n’est pas de faire une revue exhaustive, mais de vous donner un aperçu de la façon dont vous pouvez programmer.
Voici les commentaires et les boucles :
-- ceci est un commentaire affiche = print affiche("Silicon Comté") –- Silicon comté affichage = function (texte) affiche("Affichage : " .. texte) end affichage("Silicon comté") -- une boucle simple for i = 1, 10 do affichage(i) end
Comme on le voit dans l’exemple ci-dessus, les fonctions sont des variables comme les autres. Il est donc possible de remplacer les fonctions standards (comme « print ») par une autre fonction.
Nom = « nicolas »
Nombre = 12
If Nombre == 12 then
Print(nom)
Endif
--> fermeture simple
function ajoute(x)
return function (y) return x + y end
end
f1 = ajoute(2)
f2 = ajoute(3)
print(f1(10)) --> 12
print(f2(7)) -- > 10
-- exemple d'une table simple
table = {
"Lua",
"PHP",
"PERL",
"Python",
"Scheme"
}
for cle, valeur in ipairs(table) do
print( cle, valeur )
end
Une note importante sur les tables : l’index débute à 1 (et non 0 comme dans la plupart des autres langages de programmation).
Les tables sont aussi la structure de donnée évoluée unique dans Lua. Il est aussi possible de créer des metatables qui permettent d’implémenter des opérateurs (« + », « * », etc.) sur des tables.
Usages
Il est possible d’utiliser la commande « lua » (sous Linux par exemple) pour exécuter des scripts.
Mais, souvent, on préfère utiliser Lua dans un autre langage de programmation (C, C++) ou via un framework.
Principaux framework web pour Lua :
- Apache avec mod_lua
- OpenResty = LuaJIT + Nginx
- Lapis : OpenResty plus simple
- Sailor : MVC Framework
- Luvit : LuaJIT + LibUV
Mon conseille, c’est de vous tourner en priorité en direction de mod_lua ou de OpenResty si vous souhaitez créer des applications Lua pour le Web.
Principaux frameworks de développement de jeux pour Lua :
- Löve : création de jeux vidéos 2D
- Corona : création de jeux vidéos pour mobile
- Moai : création de jeux vidéos (desktop et mobile)
- Gideros : création de jeux mobiles
Mon conseil, c’est d’utiliser Löve si vous voulez faire des jeux pour Pc ou Mac et Corona pour mobile.
Aller plus loin
C’en est fini de cette présentation très rapide de Lua. En complément, voici quelques liens qui vont vous permettre d’aller plus loin :
- lua.org : la page d’accueil du projet
- luarocks : un gestionnaire de librairies et de dépendances
- ZeroBrane Studio : un IDE pour programmer avec Lua