Perché Python e non Lua? [chiuso]

44

Perché Python è stato supportato da google e diventa così rapidamente popolare e Lua no?

Sai perché Lua è rimasta in sottofondo?

    
posta BenjaminB 08.04.2011 - 23:52
fonte

3 risposte

37

Adoro Lua, ma ha alcune limitazioni reali e, come altri hanno già detto, derivano principalmente dalle origini di Lua come linguaggio di configurazione e successivamente come linguaggio di scripting incorporato.

A causa dell'obiettivo di mantenere Lua piccola, esiste solo una minuscola standard libreria, che ha solo funzionalità bare bone.

Ciò ha portato a una sfortunata cultura nei circoli Lua in cui gli sviluppatori Lua amano ri-implementare la funzionalità offerta da molte altre librerie standard di altre lingue piuttosto che lavorare collettivamente su un insieme universalmente accettato di librerie principali.

Cose come multi-threading, espressioni regolari, metodi di accesso ai file indipendenti dalla piattaforma e anche operazioni bit (fino alla 5.2) sono tutte "non incluse" poiché renderebbero Lua molto più grande e più lento. Certo, puoi fare in modo che le librerie facciano queste cose - ma poi quelle dispongono di manutentori e livelli di qualità indipendenti.

Non fraintendermi. Amo Lua per gli stessi motivi che ho appena elencato.

    
risposta data 08.08.2011 - 09:32
fonte
52

Semplice: Lua ha più obiettivi "di nicchia" rispetto a Python .

Si pensa che Python sia utile come linguaggio di programmazione generale. Quindi, è utile in molti casi. Copre molti tipi ben noti di applicazioni ma non entra direttamente in concorrenza con altre lingue che potrebbero essere mirate a vincoli specifici, ma la semplicità della sua sintassi.

Lua è totalmente mirato a 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 da poter essere utilizzato anche 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 a molti dialetti (importando paradigmi come orientamento all'oggetto) sono disponibili. È così portatile (ANSI C) che puoi usarlo su qualsiasi hardware embedded con una discreta quantità di memoria per i moderni software embedded (se ricordo bene il default lua vm è intorno a 400ko e non crescerà quasi mai se non crei un ciclo di creazione degli 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 (si possono realizzare giochi abbastanza performanti usando Python, ma alcuni tipi di giochi con prestazioni elevate 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 Java e lingua nativa), Google non è un'azienda di software embedded non hanno davvero bisogno di Lua ovunque, mentre Python è utile per qualsiasi cosa facciano (web, build system, comunicazione, web e web).

Python è usato in molti giochi anche per lo scripting incorporato, ma è pesante e lento di Lua. La sintassi di Python lo rende più appropriato per i grandi giochi che si affidano molto alle informazioni scritte nella loro struttura di gioco (non sono sicuro che sia chiaro ma penso che se hai bisogno di un "vero linguaggio completo" per lo scripting, l'incorporamento di Python potrebbe essere una buona idea, se la prestazione va bene per te). Python non è stato creato per essere incorporato, quindi va bene. Falco è un equivalente di Python destinato ad essere incorporato in C ++.

Per un confronto estremo, alcune lingue che mirano all'incorporazione e cercano di avere una sintassi più completa della Lua minimalista e competono sulle prestazioni: ChaiScript, AngelScript, Io ...

A proposito, ho visto nuovi sistemi di build come PreMake o Bam che usano Lua come linguaggio dei file di costruzione. L'idea è che è leggero e ben noto agli sviluppatori di giochi (i sistemi di costruzione nello sviluppo del gioco sono un problema serio). Quindi forse questo è un altro dominio in cui Lua potrebbe essere più apprezzata. È sicuramente più user-friendly della sintassi CMake ....

    
risposta data 09.04.2011 - 00:10
fonte
4

Puoi fare tutto con Lua, è stato creato come linguaggio di scripting per estendere i programmi? Sì, ma non è limitato ad esso, ci sono molte librerie per Lua, e con gli strumenti giusti (LuaJIT's FFI o tolua) puoi anche usare una libreria C / C ++ su di essa. Il motivo per cui Python è più usato dal mio punto di vista è solo l'età, Python è usato come prima lingua in molti college e scuole, c'è più gente che conosce Python che Lua, ed è molto più facile trovare una buona libreria per Python che per Lua, perché la lingua è più matura. Inoltre, non ne so molto di Python, ma per quanto ne so, è facile nascondere il tuo codice all'utente finale, cosa in Lua, non è così facile, ho ragione?

    
risposta data 19.07.2013 - 05:51
fonte

Leggi altre domande sui tag