Semplice: Lua ha più obiettivi di "nicchia" rispetto a Python .
Python è ritenuto utile come linguaggio di programmazione generale. Quindi è utile in molti casi. Copre molti tipi ben noti di applicazioni ma non entra direttamente in competizione con altre lingue che potrebbero essere mirate a vincoli specifici, ma la semplicità della sua sintassi.
Lua è totalmente mirato ad essere un linguaggio di scripting incorporato. È lo scopo iniziale, anche se attualmente è utilizzato in altri contesti, come i sistemi di compilazione; deve essere incorporato nel software e consentire una facile implementazione di funzioni e strutture di script specifiche del dominio. È così minimalista che può anche essere usato su hardware veramente limitato (ho usato Lua su NintendoDS), è leggero, facile da usare, VELOCE ed è un linguaggio così minimalista ma si pensa che sia esteso tanto che un sacco di dialetto (importando paradigmi come orientamento dell'oggetto). È così portatile (ANSI C) che puoi usarlo su qualsiasi hardware incorporato con una discreta quantità di memoria per i moderni software embedded (se ricordo bene il lua vm predefinito è di circa 400ko e non crescerà quasi mai se non crei in loop la creazione di oggetti ...).
Quindi, Lua viene inizialmente utilizzato nel contesto in cui è necessario incorporare un linguaggio di scripting per l'applicazione .
Python è usato per ... quasi tutto ciò che non richiede un linguaggio più di nicchia (puoi creare giochi abbastanza performanti usando Python, ma alcuni tipi di giochi ad alte prestazioni richiedono davvero di evitare tale sistema).
È semplicemente che Python è usato in più contesti di Lua. Per quanto ne so, oltre ad Android (che fornisce supporto per Java e madrelingua), Google non è una società di software incorporata, quindi non ha davvero bisogno di Lua ovunque, mentre Python è utile per tutto ciò che fanno (web, sistema di compilazione , comunicazione, web e web).
Python è utilizzato in molti giochi anche per lo scripting incorporato, ma è pesante e più lento di Lua. La sintassi di Python lo rende più appropriato per i grandi giochi che fanno molto affidamento sulle informazioni scritte nella loro struttura di gioco (non sono sicuro che ci sia chiaro, ma pensa solo che se hai bisogno di un "vero linguaggio completo" per lo scripting, incorporare Python potrebbe essere una buona idea, se la performance è adatta a te). Python non è stato creato per essere incorporato, quindi va bene. Un equivalente di Python destinato a essere incorporato in C ++ è Falcon.
Per un confronto estremo, alcuni linguaggi che mirano all'incorporamento e cercano di avere una sintassi più completa rispetto al minimalista Lua e competono sulle prestazioni: ChaiScript, AngelScript, Io ...
A proposito, ho visto nuovi sistemi di compilazione come PreMake o Bam che usano Lua come linguaggio per i file di compilazione. L'idea è che sia leggera e ben nota dagli sviluppatori di giochi (costruire sistemi nello sviluppo di giochi è un grosso problema). Quindi forse è un altro dominio in cui Lua potrebbe essere più apprezzato. È sicuramente più intuitivo della sintassi di CMake ....