Présentation du langage de programmation Lua

de | 19 décembre 2014

luaVoici 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 :

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.

love2dPrincipaux 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

live-coding-gideros-zerobrane-studioC’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 :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.