Je pense que comparer Python et Lua dans l’absolu n’est pas du tout pertinent, a fortiori comparer leurs performances. Suivant les cas d’usage, l’un va éclater l’autre et inversement.
Certes, le code Lua est plus rapide à interpréter, et l’interpréteur Lua est beaucoup plus léger que l’interpréteur standard Python. Cela fait de Lua un langage de choix pour être embarqué dans d’autres applications. On peut citer notamment:
- Les jeux vidéo, où il sert à scripter des niveaux ou des comportements,
- Certaines applications massivement customisables comme AwesomeWM, où il sert de langage de configuration,
- Des bases de données comme Redis, où Lua peut être utilisé pour scripter des opérations complexes à exécuter en une seule transaction par le serveur (un peu comme des procédures stockées dans les SGBD classiques).
Dans ces cas d’usages, il ne me viendrait pas à l’esprit une seule seconde d’utiliser Python.
Par contre, pour écrire des applications un peu complexes, qui font intervenir de nombreuses bibliothèques/briques logicielles, et qui ont besoin d’être un minimum fiables et bien intégrées, il serait complètement farfelu de partir sur du Lua en standalone. Je ne dis pas que ce ne serait pas faisable dans l’absolu, mais simplement qu’en termes de confort, de richesse de l’écosystème, de profusion d’outils périphériques au développement du projet, Python est un choix beaucoup plus évident. Et on se moque totalement de la différence de performances, car en réalité dans une telle application, comme dit plus haut, le code le plus critique est rarement écrit en Python (c’est plutôt généralement des bibliothèques externes, bindées en Python, qui font le plus gros du travail).
Dans ce cas, le confort de développement et la facilité à trouver des outils qui font ce dont on a besoin ne sont pas du tout les mêmes.