Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

927 views

Published on

« 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é.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

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

×