Le langage Lua
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
Sommaire
Présentation
Syntaxe
Usages
Avantages / Inconvénients
Conclusion
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
Présentation
● Créé par Roberto Ierusalimschy en 1993
● But du langage :
● Puissant
● Rapide
● Léger
● Intégrable (« embed...
Présentation
● Multi-paradigme (fonctionnel, objet, procédural,
etc.) à typage dynamique
● Environ 20 000 lignes de code d...
Présentation
● « batteries not included »
● Les versions du langage sont parfois
incompatibles entre elles
● Exemple : cer...
Présentation
Artenet.fr / @nicodzilla
Présentation
Artenet.fr / @nicodzilla
Syntaxe
-- ceci est un commentaire
affiche = print
affiche("Silicon Comté") –- Silicon comté
affichage = function (texte)
...
Syntaxe
Nom = « nicolas »
Nombre = 12
If Nombre == 12 then
Print(nom)
Endif
--> fermeture simple
function ajoute(x)
return...
Syntaxe
-- exemple d'une table simple
table = {
"Lua",
"PHP",
"PERL",
"Python",
"Scheme"
}
for cle, valeur in ipairs(table...
Syntaxe
ATTENTION : 
l'index des tables commence à 1 !!!
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
Usages
● Avec la commande « lua » (REPL)
● Depuis un autre langage :
● C / C++
● PHP
● Python
● Etc.
● Dans un Framework
●...
Usages : Web
● Apache avec mod_lua
● OpenResty = LuaJIT + Nginx
● Lapis : OpenResty plus simple
● Sailor : MVC Framework
●...
Usages : Jeux
● Löve
● Framework complet,
● Windows, Mac OS X,
Linux
● Jeux 2D uniquement
● Moai
● Windows, Mac OS X,
Linu...
Usages : Jeux & mobile
● Gideros / Corona
● Frameworks pour faire des jeux mobiles
● IOS & Android
● Basés sur C/C++ & Ope...
Usages : Qui ???
● Adobe,
● 3Scale,
● Nginx,
● Wikimedia,
● Blizzard,
● Rovio,
@nicodzilla / nicolas@lorenzon.ovh / lorenz...
Inconvénients
● Librairie (de fonctions) trop minimale
→ productivité compliquée au début sur des
projets complexes
● Vers...
Avantages
● Très rapide avec LuaJIT
● Spécificités pratiques (coroutine, possibilité de
sandbox)
● Langage simple : créer ...
Conclusion
● Débuter facilement :
● Apt-get install lua52
● ZeroBrane IDE
● Langage de script le plus performant : à utili...
Merci
● Merci pour votre attention :)
● La suite : www.lua.org / lua-users.org /
http://learnxinyminutes.com/docs/lua/
● R...
Prochain SlideShare
Chargement dans…5
×

Introduction au langage de programmation Lua / Digital apéro [03/12/2014]

548 vues

Publié le

« Lua is a powerful, fast, lightweight, embeddable scripting language. »

Dans cette introduction, vous découvrirez quelques particularités ce langage de script brésilien :

La philosophie du langage,
Qui utilise ce langage et pourquoi,
Les usages de ce langage,
Les différences avec les autres langages de script,
Comment ce langage peut vous aider à réaliser vos applications Web, Mobile et même des jeux vidéos.
Des exemples simples et concrets, etc.
A propos de l’intervenant :
Nicolas LORENZON : diplômé de l’UFC en 2004 (DESS, Informatique, systèmes distribués et multimédia), il travaille ensuite à Paris pendant 5 ans dans le monde des ERP pour une boîte de conseil en informatique. De retour en Fanche-Comté, il créée la société ARTENET en 2010 et travaille maintenant essentiellement comme développeur web et mobile. Il est adhérent Silicon Comté.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
548
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction au langage de programmation Lua / Digital apéro [03/12/2014]

  1. 1. Le langage Lua @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  2. 2. Sommaire Présentation Syntaxe Usages Avantages / Inconvénients Conclusion @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  3. 3. Présentation ● Créé par Roberto Ierusalimschy en 1993 ● But du langage : ● Puissant ● Rapide ● Léger ● Intégrable (« embedable ») ● Dernière version 5.2.3 (Dec. 2013) ● Prochaine : 5.3 (actuellement beta) ● Licence MIT (open source) @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  4. 4. Présentation ● Multi-paradigme (fonctionnel, objet, procédural, etc.) à typage dynamique ● Environ 20 000 lignes de code de AINSI C ● 200 ko une fois compilé ● Fonctionne sur : Windows, Linux, Mac OS X, iOS, DOS, Nintendo DS, FreeBSD, Amiga, etc. @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  5. 5. Présentation ● « batteries not included » ● Les versions du langage sont parfois incompatibles entre elles ● Exemple : certains programmes 5.1 ne fonctionnent pas avec l'interpréteur 5.2 ● En pratique on complète avec des lib non officielles : Penlight, luarocks, etc. ● LuaJIT : implémentation avec compilation assembleur du code Lua avant exécution @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  6. 6. Présentation Artenet.fr / @nicodzilla
  7. 7. Présentation Artenet.fr / @nicodzilla
  8. 8. Syntaxe -- 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
  9. 9. Syntaxe 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
  10. 10. Syntaxe -- exemple d'une table simple table = { "Lua", "PHP", "PERL", "Python", "Scheme" } for cle, valeur in ipairs(table) do print( cle, valeur ) end @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  11. 11. Syntaxe ATTENTION :  l'index des tables commence à 1 !!! @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  12. 12. Usages ● Avec la commande « lua » (REPL) ● Depuis un autre langage : ● C / C++ ● PHP ● Python ● Etc. ● Dans un Framework ● Comme langage de script d'un logiciel @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  13. 13. Usages : Web ● Apache avec mod_lua ● OpenResty = LuaJIT + Nginx ● Lapis : OpenResty plus simple ● Sailor : MVC Framework ● Luvit : LuaJIT + LibUV → 2x à 4x plus rapide que Node.js
  14. 14. Usages : Jeux ● Löve ● Framework complet, ● Windows, Mac OS X, Linux ● Jeux 2D uniquement ● Moai ● Windows, Mac OS X, Linux, iOS, Android
  15. 15. Usages : Jeux & mobile ● Gideros / Corona ● Frameworks pour faire des jeux mobiles ● IOS & Android ● Basés sur C/C++ & OpenGL comme moteur @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  16. 16. Usages : Qui ??? ● Adobe, ● 3Scale, ● Nginx, ● Wikimedia, ● Blizzard, ● Rovio, @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh ● VLC, ● MySQL Workbench, ● Etc.
  17. 17. Inconvénients ● Librairie (de fonctions) trop minimale → productivité compliquée au début sur des projets complexes ● Versions incompatibles entre elles → on garde le code source et on compile si besoin ● Compliqué pour le web @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  18. 18. Avantages ● Très rapide avec LuaJIT ● Spécificités pratiques (coroutine, possibilité de sandbox) ● Langage simple : créer une variante est possible depuis la source ● Grande portabilité @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  19. 19. Conclusion ● Débuter facilement : ● Apt-get install lua52 ● ZeroBrane IDE ● Langage de script le plus performant : à utiliser si besoin de perf. ou env. limité en mémoire ● Si vous avez des utilisateurs qui doivent créer des scripts (exemple : Wikipedia, 3scale) @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  20. 20. Merci ● Merci pour votre attention :) ● La suite : www.lua.org / lua-users.org / http://learnxinyminutes.com/docs/lua/ ● Remerciements : Nicolas Grenié, ● Des questions ? @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh

×