Le développeur fondateur de Lua partage le parcours et les avantages du langage de script pour la configuration des applications et la gestion des données

TL; DR: En tant que langage de script derrière Angry Birds, Civilization et World of Warcraft, Lua fait appel aux développeurs pour être un langage de script rapide, petit et compatible. Nous avons parlé avec Roberto Ierusalimschy, l’un des trois développeurs fondateurs qui a créé le langage au Brésil et continue d’ajouter et d’adapter de nouvelles fonctionnalités au fur et à mesure des besoins. Il a partagé la croissance organique régulière de Lua pour intégrer l’utilisation et la popularité parmi les joueurs et les fabricants d’appareils intégrés et de l’Internet des objets..


Alors que trois développeurs brésiliens travaillaient sur un projet pour la plus grande compagnie pétrolière du pays en 1993, ils ont découvert qu’ils n’avaient pas les outils dont ils avaient besoin.

Impossible d’acheter des solutions personnalisées, l’équipe a commencé à créer les langages de programmation et de script nécessaires pour configurer les applications et gérer les données.

À l’origine, ils ont créé un langage de description des données similaire à XML ou JSON. SOL, qui signifie soleil en portugais, signifie également Simple Object Language. Les développeurs ont finalement abandonné SOL pour une nouvelle idée – une sorte de langage satellite qui s’interface avec d’autres types de code. Quelque part en chemin, quelqu’un a suggéré un nom: Lua, ou le mot portugais pour la lune.

Comme pour son homonyme, Lua a progressivement atteint une importance mondiale derrière la vision des fondateurs pour un langage facile à utiliser, rapide, portable et extensible qui résonne particulièrement avec les développeurs de jeux, de systèmes embarqués et d’appareils Internet-of-Things.

“Lua est un langage qui a été créé depuis le début pour être utilisé comme un véritable langage de script utilisé avec d’autres langues”, a déclaré Roberto. “Il permet plusieurs constructions intéressantes et plusieurs types de nouvelles façons de programmer les choses.”

Croissance et évolution organiques de Lua en tant que langage léger

Roberto et Waldemar Celes, professeurs associés à l’Université pontificale catholique de Rio de Janeiro, ont rejoint le chercheur et consultant Luiz Henrique de Figueiredo pour créer des programmes graphiques interactifs pour les applications d’ingénierie gérées par la plus grande compagnie pétrolière du Brésil.

Des barrières commerciales strictes signifiaient que les Brésiliens ne pouvaient pas se permettre d’acheter des programmes personnalisés à l’étranger, et les développeurs manquaient de structures de contrôle de flux dans SOL et un autre prédécesseur de Lua, un langage de saisie de données local appelé DEL.

Fondateurs de Lua à côté du logo

Dans l’ordre habituel: Waldemar, Roberto et Luiz Henrique ont collaboré pour créer Lua afin de résoudre les besoins du projet non satisfaits.

“À cette époque, nous ne pouvions rien faire d’autre”, a expliqué Roberto, notant que XML et JSON n’existaient pas encore. Perl était très encombrant et principalement utilisé pour l’administration du système, et Python était encore à ses balbutiements.

Tcl était une option, mais avec autant de programmeurs non professionnels censés utiliser les outils, les développeurs ont choisi d’éviter la syntaxe difficile et le support Unix uniquement.

“Nous avons décidé de créer notre propre langue pour nos propres besoins”, a déclaré Roberto. «C’est nous trois qui travaillons sur la langue depuis le début. Il a connu un grand succès dans notre utilisation et il n’a cessé de croître depuis lors. »

Bien que Roberto nous ait dit que le nom de Lua n’est pas un acronyme, la communauté des utilisateurs a attribué accidentellement et officieusement Lua Uppercase Accident pour représenter les moments où Lua est écrit par erreur en majuscules.

Selon Roberto, développer et maintenir la langue a été étonnamment simple. La croissance lente et organique a permis aux contributeurs de faire évoluer la langue comme ils le souhaitaient.

«Au début, nos clients étaient nous-mêmes et nous savions exactement ce dont nous avions besoin», a-t-il déclaré. “Nous n’avons pas de pressions extérieures, donc s’il y a un gros obstacle que nous ne savons pas résoudre, nous pouvons simplement le reporter jusqu’à ce que quelqu’un découvre un nouvel algorithme ou quelque chose comme ça.”

La puissance d’être éprouvé, portable et performant

Lua fournit un petit ensemble de fonctionnalités générales qui peuvent être étendues pour s’adapter à différents scénarios. Construit sur la simplicité, Lua propose une structure de données, la table, un terme Lua pour un tableau associatif.

La syntaxe de Lua suit de près Modula, tandis que la sémantique a été influencée par Scheme. Écrit en ANSI C, Lua est multiplateforme et se compile directement sous Windows, Linux, macOS, appareils mobiles et microprocesseurs.

Une API puissante permet aux développeurs d’intégrer facilement Lua dans des applications et du code externe. En plus des frameworks C, C ++ et .NET, Lua interagit avec d’autres langages de script, notamment Perl et Ruby.

La langue tire ses performances de sa petite taille et de son efficacité. L’ensemble de la distribution Lua, qui inclut la documentation, des exemples et des binaires si nécessaire, est inférieure à 1 Mo. L’interpréteur Linux standard, construit avec toutes les bibliothèques standard, ne prend que 143 Ko.

“Bien sûr, Lua n’est pas aussi rapide que C ou un langage compilé, mais dans le domaine des langages de script, c’est très rapide”, a déclaré Roberto..

Un langage de premier plan pour les jeux, les systèmes embarqués et les appareils IoT

Bien que Roberto sache que l’industrie du jeu, les systèmes embarqués et les appareils Internet des objets sont les principaux utilisateurs de Lua, il a dit qu’il peut être difficile de se renseigner sur des utilisations et des implémentations spécifiques.

Les développeurs de jeux ont demandé à Roberto de signer des accords de confidentialité avant d’afficher tout code, et les systèmes derrière les appareils embarqués et IoT sont assez fragmentés et différenciés.

Captures d'écran de Angry Birds et World of Warcraft

La compatibilité de Lua avec d’autres langues, combinée à sa vitesse et sa petite taille, séduit les développeurs de jeux.

“Les groupes ont ces cultures séparées et ne partagent pas beaucoup de code”, a-t-il déclaré. “Même pour nous, il est difficile de mesurer la façon dont les autres utilisent Lua.”

En plus de la petite taille et des performances rapides de Lua, Roberto a déclaré que le principal argument de vente de la langue est la compatibilité avec d’autres langues..

“La plupart des jeux ont un moteur en C ++ qui fait tous les graphiques et la physique, et le jeu lui-même est créé en plus de ce moteur avec Lua”, a déclaré Roberto..

À venir: un nouveau ramasse-miettes générationnel

Actuellement, Roberto, Waldemar et Luiz Henrique travaillent sur quelque chose que Roberto appelle «pas très excitant mais très important pour la langue».

Lua utilise actuellement un ramasse-miettes incrémentiel, qui identifie les objets de données qui ne seront pas accessibles à l’avenir et récupère la mémoire et les ressources informatiques.

“C’est assez bien, mais cela pose des problèmes lorsque les gens commencent à utiliser beaucoup de données à l’intérieur du langage”, a déclaré Roberto, ajoutant que l’équipe implémenterait un collecteur générationnel..

Les récupérateurs incrémentiels parcourent la base de code entière d’une application un peu à la fois pour détecter les objets, tandis qu’un collecteur générationnel rassemble les objets en générations en fonction de l’âge et de la stabilité, permettant une analyse plus efficace et avec moins de ressources informatiques.

“Un ramasseur de déchets générationnel aidera beaucoup avec ces gros problèmes”, a déclaré Roberto..

Équilibrer les racines brésiliennes avec l’adoption mondiale

L’équipe de développeurs vit et travaille en étroite collaboration, alors Roberto a déclaré qu’ils maintenaient un environnement de travail plutôt démodé et à faible technologie de réunions en face à face toutes les quelques semaines. “Nous n’utilisons aucune technologie sophistiquée pour communiquer”, a-t-il déclaré.

L’équipe fondatrice de Lua est particulièrement fière de créer une technologie adoptée à l’échelle mondiale en dehors des centres d’innovation traditionnels comme la Silicon Valley. La fierté brésilienne, cependant, est venue avec des défis uniques. Roberto entend parfois des critiques selon lesquelles son livre pour la programmation en Lua est écrit en anglais plutôt qu’en portugais. Roberto a qualifié l’anglais de «langage universel pour les logiciels» et souligne que les jeux et les systèmes embarqués ne sont pas les principales industries brésiliennes.

“Nous avons créé la langue pour nos besoins particuliers, et ils étaient brésiliens à l’époque”, a-t-il dit en riant. «Le Brésil a beaucoup de bonnes personnes travaillant sur d’autres projets, en particulier dans le logiciel libre. Je suis très fier d’avoir contribué à cela. “

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map