Einfach: Lua hat mehr "Nischenziele" als Python .
Python wird als allgemeine Programmiersprache für nützlich gehalten. Daher ist es in vielen Fällen nützlich. Es deckt viele bekannte Arten von Anwendungen ab, konkurriert jedoch nicht direkt mit anderen Sprachen, die möglicherweise auf bestimmte Einschränkungen abzielen, sondern mit der Einfachheit der Syntax.
Lua ist ganz darauf ausgerichtet, eine eingebettete Skriptsprache zu sein. Dies ist der ursprüngliche Zweck, auch wenn er derzeit in anderen Kontexten verwendet wird, z. B. in Build-Systemen. soll in Software eingebettet sein und die einfache Implementierung domänenspezifischer Skriptfunktionen und -strukturen ermöglichen. Es ist so minimalistisch, dass es sogar für sehr eingeschränkte Hardware verwendet werden kann (ich habe Lua unter NintendoDS verwendet), es ist leichtgewichtig, einfach zu bedienen, SCHNELL und ist eine so minimalistische Sprache, dass viele Dialekte (wie das Importieren von Paradigmen) erweitert werden Objektorientierung) zur Verfügung. Es ist so portabel (ANSI C), dass Sie es auf jeder Embedded-Hardware mit ausreichend Speicher für moderne Embedded-Software verwenden können (wenn ich mich recht erinnere, liegt die Standard-Lua vm bei ca. 400 KB und wird fast nie größer, wenn Sie keine Schleife zum Erstellen von Objekten ausführen ...).
Daher wird Lua zunächst in einem Kontext verwendet, in dem Sie eine Skriptsprache für Ihre Anwendung einbetten müssen .
Python wird für ... fast alles verwendet, was keine Nischensprache erfordert (mit Python können Sie recht performante Spiele erstellen, aber einige leistungsintensive Spiele müssen wirklich ein solches System umgehen).
Es ist einfach so, dass Python in mehr Kontexten als in Lua verwendet wird. Soweit ich weiß, ist Google, abgesehen von Android (das Java- und Muttersprachenunterstützung bietet), kein Embedded-Software-Unternehmen. Daher benötigen sie Lua nicht überall, während Python für alles, was sie tun, nützlich ist (Web, Build-System) , Kommunikation, Web und Web).
Python wird in vielen Spielen auch für Embedded-Skripte verwendet, ist aber schwerer und langsamer als Lua. Die Syntax von Python eignet sich besser für große Spiele, die sich in ihrer Spielstruktur stark auf Skriptinformationen stützen (ich bin mir nicht sicher, ob ich das auch kann, aber wenn Sie eine "echte vollständige Sprache" für das Skripting benötigen, ist die Einbettung von Python möglicherweise sinnvoll eine gute Idee, wenn die Leistung für Sie in Ordnung ist). Python sollte nicht eingebettet werden, das ist also in Ordnung. Ein Äquivalent zu Python, das darauf abzielt, in C ++ eingebettet zu werden, ist Falcon.
Zum Vergleich: Einige Sprachen, die auf Einbettung abzielen und versuchen, eine vollständigere Syntax als die minimalistische Lua zu haben, und konkurrieren mit der Leistung: ChaiScript, AngelScript, Io ...
Übrigens habe ich gesehen, dass neue Build-Systeme wie PreMake oder Bam Lua als Build-Dateisprache verwenden. Die Idee ist, dass es leicht und von Spieleentwicklern gut bekannt ist (das Erstellen von Systemen in der Spieleentwicklung ist ein großes Problem). Vielleicht ist das eine andere Domäne, in der Lua mehr geschätzt wird. Es ist sicherlich benutzerfreundlicher als die CMake-Syntax ....