Simple: Lua a plus d'objectifs "de niche" que Python .
On pense que Python est utile comme langage de programmation général. Donc, c'est utile dans beaucoup de cas. Il couvre de nombreux types d'applications bien connus, mais n'entre pas directement en concurrence avec d'autres langages qui pourraient être ciblés sur des contraintes spécifiques, mais sur la simplicité de sa syntaxe.
Lua est totalement destiné à être un langage de script intégré. C'est le but initial, même s'il est utilisé dans d'autres contextes, comme les systèmes de compilation; doit être intégré au logiciel et permettre une implémentation aisée des fonctions et structures de script spécifiques à un domaine. Il est tellement minimaliste qu’il peut même être utilisé sur du matériel très contraint (j’utilisais Lua sur NintendoDS), il est léger, facile à utiliser, rapide, et est un langage tellement minimaliste mais qui a été pensé pour être étendu que beaucoup de dialecte (importateur de paradigmes comme objet-orientation) sont disponibles. Il est tellement portable (ANSI C) que vous pouvez l’utiliser sur n’importe quel matériel embarqué disposant d’une quantité de mémoire suffisante pour les logiciels embarqués modernes (si je me souviens bien, la valeur par défaut de Lua VM est d’environ 400ko et ne grandira presque jamais si vous ne créez pas en boucle d’objets. ...)
Ainsi, Lua est initialement utilisé dans un contexte où vous devez intégrer un langage de script pour votre application .
Python est utilisé pour ... presque tout ce qui ne nécessite pas un langage plus spécialisé (vous pouvez créer des jeux assez performants avec Python, mais certains types de jeux très performants nécessitent réellement d'éviter un tel système).
C'est simplement que Python est utilisé dans plus de contextes que Lua. Autant que je sache, à part Android (qui offre une prise en charge de Java et des langues natives), Google n'est pas une entreprise de logiciels embarqués. Ils n'ont donc pas besoin de Lua partout, alors que Python est utile pour tout ce qu'ils font (Web, système de construction , communication, Web et Web).
Python est également utilisé dans de nombreux jeux pour les scripts intégrés, mais il est lourd et plus lent que Lua. La syntaxe de Python le rend plus approprié pour les grands jeux qui reposent beaucoup sur des informations de script dans leur structure de jeu (je ne suis pas sûr que ce soit clair, mais pensez que si vous avez besoin d'un "vrai langage complet" pour les scripts, l'intégration de Python peut être une bonne idée si la performance vous convient). Python n’a pas été conçu pour être intégré, c’est bien. Falcon est un équivalent de Python destiné à être incorporé en C ++.
À titre de comparaison extrême, certaines langues qui ciblent l'intégration et essaient d'avoir une syntaxe plus complète que le minimaliste Lua et rivalisent sur les performances: ChaiScript, AngelScript, Io ...
A propos, j'ai vu de nouveaux systèmes de compilation tels que PreMake ou Bam utiliser Lua comme langage de fichier de compilation. L'idée est qu'il est léger et bien connu des développeurs de jeux (la construction de systèmes dans le développement de jeux est un problème majeur). Alors peut-être que c'est un autre domaine où Lua pourrait être plus apprécié. C'est certainement plus convivial que la syntaxe CMake ....