Lua est d'abord connu pour son utilisation dans le développement de jeux vidéo et l'embarqué, notamment la domotique. Mais sa puissance et sa simplicité le prête à de nombreux usages. Et sa communauté et son écosystème sont suffisamment vastes pour vous offrir généralement les outils adaptés. Il en va ainsi pour le développement web.
Il existe plusieurs frameworks dédiés : Orbit (le plus ancien), Luvit (un équivalent de Node.js en Lua), Lapis et le tout dernier apparu Sailor, très populaire notamment parmi les personnes débutant avec le développement web.
Interview d'Etiene Dalcol, créatrice de Sailor
(12/06/2016)
Bonjour Etiene, tu es la créatrice du framework web Lua Sailor. Comment tu en es venue à créer ce framework ?
Au début, Sailor était mon projet d'étude pour apprendre Lua. Je savais que Lua était bien utilisé dans les systèmes embarqués et les jeux vidéo et je voulais apprendre le langage en explorant un domaine différent.
Pourquoi utiliser Lua pour du développement web ?
Les serveurs web les plus utilisés, tels que Nginx et Apache, proposent le support de Lua. L'écosystème n'est pas aussi grand que pour d'autres langages, mais les outils sont là. Lua est très performant, très simple à apprendre et très agréable à utiliser. Je trouve simplement super de pouvoir utiliser un langage à la fois doté d'excellentes qualités techniques tout en étant un vrai plaisir à coder. Souvent on doit choisir ou l'un ou l'autre, mais ce n'est pas le cas de Lua. Je souhaiterais mentionner tout particulièrement l'outil OpenResty, qui est un paquet contenant Nginx et différents modules pour utiliser Lua. Il est très puissant et permet de développer des applications asynchrones très rapides écrites de manière séquentielle tout en gardant la logique orientée événements sous-jacente à Nginx (sans callback-hell !).
Pourrais-tu nous citer quelques exemples de sites ou services web conçus en Lua ?
Bien sûr. Un exemple très intéressant de site web qui utilise Lua est Taobao.com, le plus grand site web d'achats en ligne chinois. Il est numéro 12 dans le classement Alexa et a plus de 760 millions de produits ! Sinon, il y a aussi Cloudflare, un service de Content delivery network destiné à sécuriser les sites web et les rendre plus rapides. Plus de 5% du trafic total d'internet passe par lui. [NDLR : Taobao.com et Cloudfare ont successivement été les principaux sponsors de OpenResty.]
Et quelques exemples conçus avec Sailor ?
Je ne connais pas pour le moment d'utilisation de Sailor en production à grande échelle. Mais il y a des blogs et sites personnels qui l'utilisent.
"Sailor se soucie d'être facile à utiliser"
Qu'est-ce qui distingue Sailor des autres frameworks Lua existants ?
Sailor se soucie d'être facile à utiliser pour les débutants en développement web. Il est compatible avec plusieurs serveurs web et différentes base de données et permet aux utilisateurs d'utiliser Lua aussi pour le côté front-end avec l'aide d'une machine virtuelle Lua-Javascript qui s'appelle Starlight.
Es-tu seule à le développer et le maintenir ?
Au début j'étais seule à le développer, puis quelques contributeurs m'ont rejoint. Certains font des corrections ponctuelles et d'autres restent plusieurs mois pour développer de nouvelles fonctionnalités.
Comment envisages-tu son développement à venir ?
Il est difficile de savoir. Actuellement, Sailor fait partie du programme Google Summer of Code par LabLua et on a en plus un étudiant qui travaille à plein temps sur Sailor. Petit à petit la communauté est en train de grandir et c'est très beau à voir. Il y a plein d'idées qui sont en discussion et on devrait lancer cette année encore une nouvelle version.
Pour terminer, j'aimerais que tu nous dises un mot sur les Lua Ladies. Tu as lancé ce groupe pour encourager les vocations de développeuses, notamment au sein de la communauté Lua. Des développeuses Lua, il n'y en a pas beaucoup… ?!
C'est vrai que c'est difficile de trouver d'autres développeuses Lua et les échanges au sein du groupe Lua Ladies sont rares. Mais avec de l'obstination, on en trouve. Je suis en train d'organiser une conférence sur Lua à Rio de Janeiro et l’équipe organisatrice est constituée presque exclusivement de filles étudiantes en informatique. On est en train d'ouvrir un nouveau chapitre dans la participation des filles dans la communauté.
Merci Etiene. Souhaites-tu ajouter quelque chose ?
Merci à vous ! Je suis ravie d'avoir participé à ce beau projet ! [NDLR : La mise à jour du Guide de Lua et ses applications ;-) ]
Pour aller plus loin
Nginx et Lua, découverte d’OpenResty, blog de JoliCode
Développer pour le web avec Sailor, chapitre 9 du Manuel d'apprentissage/ Guide de Lua et ses applications (disponible à l'unité)