SlideShare a Scribd company logo
1 of 20
Download to read 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

More Related Content

What's hot

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
 
Utilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudUtilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudChristophe Catarina
 
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 tousjwajsberg
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
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 javascriptKhalid Jebbari
 
Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Yannick Comte
 
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, JSHoracio Gonzalez
 
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 sourceYannick Comte
 
Virtualisation avec virtualbox
Virtualisation avec virtualboxVirtualisation avec virtualbox
Virtualisation avec virtualboxeric German
 
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 drupalChristophe Villeneuve
 
[French] Discover haxe
[French] Discover haxe[French] Discover haxe
[French] Discover haxeAxel Anceau
 
WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4Eric Abouaf
 
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)Emmanuel Florac
 

What's hot (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)
 

Viewers also liked

Notre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIANotre association - L'Observatoire COM MEDIA
Notre association - L'Observatoire COM MEDIAL'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 2011gilberto5
 
Alamos ii, 5,523m2
Alamos ii, 5,523m2Alamos ii, 5,523m2
Alamos ii, 5,523m2Pato Mt
 
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çaisgerarementvussa
 
Tics de la informacion........=)
Tics de la informacion........=)Tics de la informacion........=)
Tics de la informacion........=)YesitaO
 
Emil cioran - Breviario de los Vencidos
Emil cioran - Breviario de los VencidosEmil cioran - Breviario de los Vencidos
Emil cioran - Breviario de los VencidosJuan Osorio (Lugubre)
 
Summative Assessment Details
Summative Assessment DetailsSummative Assessment Details
Summative Assessment DetailsCraig Lambert
 
Isabelle butin multicanal, crosscanal
Isabelle butin   multicanal, crosscanalIsabelle butin   multicanal, crosscanal
Isabelle butin multicanal, crosscanalIsabelle BUTIN
 
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 v1Synapse-O-Coeur
 
Ysance - Dossier de presse Big Data
Ysance - Dossier de presse Big DataYsance - Dossier de presse Big Data
Ysance - Dossier de presse Big DataStart and Growth
 

Viewers also liked (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
 

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

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 LuvitLionel Duboeuf
 
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éesAlexandre LAHAYE
 
Haxe 4, un Typescript pour PHP ?
Haxe 4, un Typescript pour PHP ?Haxe 4, un Typescript pour PHP ?
Haxe 4, un Typescript pour PHP ?François Barbut
 
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 embarquesAlexandre LAHAYE
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
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...mbrechet
 
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 librePierre Ficheux
 
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 & AndroidChris Saez
 
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 2016kraeger
 
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 RechercheMohamed Ben Bouzid
 
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...Publicis Sapient Engineering
 
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 DIYlaurenthuet
 
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 PHP5Mame Cheikh Ibra Niang
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
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?benjguin
 

Similar to 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?
 

More from Silicon Comté

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...Silicon Comté
 
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 2020Silicon Comté
 
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éeSilicon Comté
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon ComteSilicon Comté
 
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 ...Silicon Comté
 
[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évolutionSilicon Comté
 
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]Silicon Comté
 
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...Silicon Comté
 
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]Silicon Comté
 
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 ...Silicon Comté
 
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)Silicon Comté
 
Evaluation TIC 2015 (annexes techniques)
Evaluation TIC 2015 (annexes techniques)Evaluation TIC 2015 (annexes techniques)
Evaluation TIC 2015 (annexes techniques)Silicon Comté
 
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)Silicon Comté
 
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)Silicon Comté
 
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)Silicon Comté
 
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 PraticSilicon Comté
 
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)Silicon Comté
 
SDTAN du Jura (synthèse)
SDTAN du Jura (synthèse)SDTAN du Jura (synthèse)
SDTAN du Jura (synthèse)Silicon Comté
 

More from 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