Ciao a tutti,
in base alla mia esperienza, confrontare Lua e Python e' abbastanza difficile. Sono linguaggi progettati per necessita' completamente differenti. Ho usato Lua come linguaggio di scripting per il mio simulatore di robot, e uso Python per script e analisi dei dati nei miei paper.
Lua e' pensato come linguaggio leggero e generico per applicazioni embedded. Ha una memory footprint inferiore ai 300k (compilatore incluso; inferiore ai 100k compilatore escluso). La sintassi di Lua e' volutamente minimale. Le tabelle permettono di estendere il linguaggio in modi davvero creativi, arrivando perfino a supportare object orientation complessa.
Python e' un linguaggio di scripting estremamente ricco. E' pensato principalmente per wrappare librerie C/C++ e permettere di usarle senza doversi spaccare la testa dietro al memory management che C e C++ necessitano.
Scegliere tra i due linguaggi (nel senso generale del termine) per me non ha senso.
Lua e' perfetto quando serve un linguaggio semplice e leggero per permettere a terzi di interagire con un programma o una libreria. Non a caso, e' la scelta standard per moltissimi videogame (uno su tutti: World of Warcraft) per programmare l'IA e permettere all'utente di customizzare la GUI.
Python, al contrario, e' perfetto per quelle situazioni in cui uno vuole scrivere un programma velocemente. Sia come linguaggio di prototipazione che come linguaggio di scripting, Python e' una scelta quasi imbattibile (anche se Ruby e' un rivale mica male...). Il numero di librerie interfacciate con Python e' gigantesco. C'e' molto poco per Lua, in confronto, ma appunto perche' non e' la ragione per cui Lua esiste.
Ciao!
Carlo