SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
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 (« embedable »)
● Dernière version 5.2.3 (Dec. 2013)
● Prochaine : 5.3 (actuellement beta)
● Licence MIT (open source)
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
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
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
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)
affiche("Affichage : " .. texte)
end
affichage("Silicon comté")
-- une boucle simple
for i = 1, 10 do
affichage(i)
end
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
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
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
● Comme langage de script d'un logiciel
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
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
Usages : Jeux
● Löve
● Framework complet,
● Windows, Mac OS X,
Linux
● Jeux 2D uniquement
● Moai
● Windows, Mac OS X,
Linux, iOS, Android
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
Usages : Qui ???
● Adobe,
● 3Scale,
● Nginx,
● Wikimedia,
● Blizzard,
● Rovio,
@nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
● VLC,
● MySQL
Workbench,
● Etc.
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Ligne de commandes sous Linux : effrayant ? Non : indispensable !
Ligne de commandes sous Linux : effrayant ? Non : indispensable !Ligne de commandes sous Linux : effrayant ? Non : indispensable !
Ligne de commandes sous Linux : effrayant ? Non : indispensable !
Pascal MARTIN
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
13p
 

Mais procurados (19)

Ligne de commandes sous Linux : effrayant ? Non : indispensable !
Ligne de commandes sous Linux : effrayant ? Non : indispensable !Ligne de commandes sous Linux : effrayant ? Non : indispensable !
Ligne de commandes sous Linux : effrayant ? Non : indispensable !
 
Utilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudUtilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaud
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Firefox extensions vpdf
Firefox extensions vpdfFirefox extensions vpdf
Firefox extensions vpdf
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3
 
Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Node.js
Node.jsNode.js
Node.js
 
Meetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open sourceMeetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open source
 
Virtualisation avec virtualbox
Virtualisation avec virtualboxVirtualisation avec virtualbox
Virtualisation avec virtualbox
 
Realiser des tests avec Firefox nightly et drupal
Realiser des tests avec Firefox nightly et drupalRealiser des tests avec Firefox nightly et drupal
Realiser des tests avec Firefox nightly et drupal
 
[French] Discover haxe
[French] Discover haxe[French] Discover haxe
[French] Discover haxe
 
WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
 

Destaque

Notre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIANotre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIA
L'Observatoire COM MEDIA
 
Direccionamiento estratégico gestión 2011
Direccionamiento estratégico gestión 2011Direccionamiento estratégico gestión 2011
Direccionamiento estratégico gestión 2011
gilberto5
 
Alamos ii, 5,523m2
Alamos ii, 5,523m2Alamos ii, 5,523m2
Alamos ii, 5,523m2
Pato Mt
 
Tics de la informacion........=)
Tics de la informacion........=)Tics de la informacion........=)
Tics de la informacion........=)
YesitaO
 
Summative Assessment Details
Summative Assessment DetailsSummative Assessment Details
Summative Assessment Details
Craig Lambert
 
Ysance - Dossier de presse Big Data
Ysance - Dossier de presse Big DataYsance - Dossier de presse Big Data
Ysance - Dossier de presse Big Data
Start and Growth
 

Destaque (20)

Notre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIANotre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIA
 
Direccionamiento estratégico gestión 2011
Direccionamiento estratégico gestión 2011Direccionamiento estratégico gestión 2011
Direccionamiento estratégico gestión 2011
 
Alamos ii, 5,523m2
Alamos ii, 5,523m2Alamos ii, 5,523m2
Alamos ii, 5,523m2
 
Avances tecnologicos
Avances tecnologicosAvances tecnologicos
Avances tecnologicos
 
Standards oms fr pour la sexualisation des plus petits, en français
Standards oms fr pour la sexualisation des plus petits, en françaisStandards oms fr pour la sexualisation des plus petits, en français
Standards oms fr pour la sexualisation des plus petits, en français
 
Tics de la informacion........=)
Tics de la informacion........=)Tics de la informacion........=)
Tics de la informacion........=)
 
Emil cioran - Breviario de los Vencidos
Emil cioran - Breviario de los VencidosEmil cioran - Breviario de los Vencidos
Emil cioran - Breviario de los Vencidos
 
Paradigmas
Paradigmas Paradigmas
Paradigmas
 
Platón- Contexto historico- cultural
Platón- Contexto historico- culturalPlatón- Contexto historico- cultural
Platón- Contexto historico- cultural
 
Summative Assessment Details
Summative Assessment DetailsSummative Assessment Details
Summative Assessment Details
 
Contents page photos
Contents page photosContents page photos
Contents page photos
 
Isabelle butin multicanal, crosscanal
Isabelle butin   multicanal, crosscanalIsabelle butin   multicanal, crosscanal
Isabelle butin multicanal, crosscanal
 
Dcf e marketing 25 juin 2015 besancon v1
Dcf e marketing 25 juin 2015 besancon v1Dcf e marketing 25 juin 2015 besancon v1
Dcf e marketing 25 juin 2015 besancon v1
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Immo communes-au-crible
Immo communes-au-cribleImmo communes-au-crible
Immo communes-au-crible
 
Tecnologia andres areiza
Tecnologia andres areizaTecnologia andres areiza
Tecnologia andres areiza
 
Ysance - Dossier de presse Big Data
Ysance - Dossier de presse Big DataYsance - Dossier de presse Big Data
Ysance - Dossier de presse Big Data
 
Ciclop
CiclopCiclop
Ciclop
 
La quimica
La quimicaLa quimica
La quimica
 
Diego betwin
Diego betwinDiego betwin
Diego betwin
 

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

Les technologies Open Source pour les interfaces graphiques embarquées
Les technologies Open Source pour les interfaces graphiques embarquéesLes technologies Open Source pour les interfaces graphiques embarquées
Les technologies Open Source pour les interfaces graphiques embarquées
Alexandre LAHAYE
 

Semelhante a Introduction au langage de programmation Lua / Digital apéro [03/12/2014] (20)

Presentation du language Lua, Luajit, Openresty Luvit
Presentation du language Lua, Luajit, Openresty LuvitPresentation du language Lua, Luajit, Openresty Luvit
Presentation du language Lua, Luajit, Openresty Luvit
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Les technologies Open Source pour les interfaces graphiques embarquées
Les technologies Open Source pour les interfaces graphiques embarquéesLes technologies Open Source pour les interfaces graphiques embarquées
Les technologies Open Source pour les interfaces graphiques embarquées
 
Haxe 4, un Typescript pour PHP ?
Haxe 4, un Typescript pour PHP ?Haxe 4, un Typescript pour PHP ?
Haxe 4, un Typescript pour PHP ?
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarques
 
La Rochelle workshop 2016
La Rochelle workshop 2016La Rochelle workshop 2016
La Rochelle workshop 2016
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...
 
PHP, ce truc de vieux
PHP, ce truc de vieuxPHP, ce truc de vieux
PHP, ce truc de vieux
 
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libreEtat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
 
Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016
 
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
Annexe1   éTude Comparative Sur Les Moteurs De RechercheAnnexe1   éTude Comparative Sur Les Moteurs De Recherche
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 

Mais de Silicon Comté

Mais de Silicon Comté (20)

Digital Apéro - Lancer la V1 de son app sans coder grâce au No Code - Fatouma...
Digital Apéro - Lancer la V1 de son app sans coder grâce au No Code - Fatouma...Digital Apéro - Lancer la V1 de son app sans coder grâce au No Code - Fatouma...
Digital Apéro - Lancer la V1 de son app sans coder grâce au No Code - Fatouma...
 
Digital Apéro - Le SEO en 2020
Digital Apéro - Le SEO en 2020Digital Apéro - Le SEO en 2020
Digital Apéro - Le SEO en 2020
 
20200219 dasc
20200219 dasc20200219 dasc
20200219 dasc
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon Comte
 
Vente en ligne et données personnelles, les règles actuelles / Digital Apéro ...
Vente en ligne et données personnelles, les règles actuelles / Digital Apéro ...Vente en ligne et données personnelles, les règles actuelles / Digital Apéro ...
Vente en ligne et données personnelles, les règles actuelles / Digital Apéro ...
 
[22/03/2016] Conférence : Blockchain, disruption & révolution
[22/03/2016] Conférence : Blockchain, disruption & révolution[22/03/2016] Conférence : Blockchain, disruption & révolution
[22/03/2016] Conférence : Blockchain, disruption & révolution
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Développeurs, gagnez du temps avec le cloud / Digital apéro [07/04/2015]
Développeurs, gagnez du temps avec le cloud / Digital apéro [07/04/2015]Développeurs, gagnez du temps avec le cloud / Digital apéro [07/04/2015]
Développeurs, gagnez du temps avec le cloud / Digital apéro [07/04/2015]
 
La fibre optique (FTTH) à Besançon, point sur le déploiement / Digital apéro ...
La fibre optique (FTTH) à Besançon, point sur le déploiement / Digital apéro ...La fibre optique (FTTH) à Besançon, point sur le déploiement / Digital apéro ...
La fibre optique (FTTH) à Besançon, point sur le déploiement / Digital apéro ...
 
Liste des bénéficiaires de fonds européens en Franche-Comté (TIC)
Liste des bénéficiaires de fonds européens en Franche-Comté (TIC)Liste des bénéficiaires de fonds européens en Franche-Comté (TIC)
Liste des bénéficiaires de fonds européens en Franche-Comté (TIC)
 
Evaluation TIC 2015 (annexes techniques)
Evaluation TIC 2015 (annexes techniques)Evaluation TIC 2015 (annexes techniques)
Evaluation TIC 2015 (annexes techniques)
 
FEDER - Rapport d'évaluation TIC 2015 (phase 1)
FEDER - Rapport d'évaluation TIC 2015 (phase 1)FEDER - Rapport d'évaluation TIC 2015 (phase 1)
FEDER - Rapport d'évaluation TIC 2015 (phase 1)
 
FEDER - Rapport final d'évaluation TIC 2015 (phase 2)
FEDER - Rapport final d'évaluation TIC 2015 (phase 2)FEDER - Rapport final d'évaluation TIC 2015 (phase 2)
FEDER - Rapport final d'évaluation TIC 2015 (phase 2)
 
SGAR Franche-Comté - Évaluation tic synthèse (version juin 2009)
SGAR Franche-Comté - Évaluation tic synthèse (version juin 2009)SGAR Franche-Comté - Évaluation tic synthèse (version juin 2009)
SGAR Franche-Comté - Évaluation tic synthèse (version juin 2009)
 
Mission d’évaluation et d’expertise du programme Pratic
Mission d’évaluation et d’expertise du programme PraticMission d’évaluation et d’expertise du programme Pratic
Mission d’évaluation et d’expertise du programme Pratic
 
CESR - Avis sur Aménagement du territoire (2012)
CESR - Avis sur Aménagement du territoire (2012)CESR - Avis sur Aménagement du territoire (2012)
CESR - Avis sur Aménagement du territoire (2012)
 
SDTAN Jura
SDTAN JuraSDTAN Jura
SDTAN Jura
 
SDTAN du Jura (synthèse)
SDTAN du Jura (synthèse)SDTAN du Jura (synthèse)
SDTAN du Jura (synthèse)
 

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

  • 1. Le langage Lua @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh
  • 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. 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. 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
  • 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. 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. 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
  • 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. 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. Usages : Jeux ● Löve ● Framework complet, ● Windows, Mac OS X, Linux ● Jeux 2D uniquement ● Moai ● Windows, Mac OS X, Linux, iOS, Android
  • 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. Usages : Qui ??? ● Adobe, ● 3Scale, ● Nginx, ● Wikimedia, ● Blizzard, ● Rovio, @nicodzilla / nicolas@lorenzon.ovh / lorenzon.ovh ● VLC, ● MySQL Workbench, ● Etc.
  • 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. 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. 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. 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