[python] Lua come linguaggio di scripting per tutti gli usi?



4 Answers

Lua è un linguaggio fantastico, leggero ed estremamente veloce!

Ma il punto è: le prestazioni sono così importanti per le attività che hai menzionato?

  • Rinominare un gruppo di file
  • Scarica alcuni file dal web
  • web scraping

Scrivi quei programmi una volta e li esegui una volta, forse. Perché ti preoccupi delle prestazioni così tanto per un programma run-once?

Per esempio:

  1. Costo 3 ore per scrivere un programma C / C ++, per gestire i dati una sola volta, il programma impiegherà 1 ora per essere eseguito.
  2. Costo 30 minuti per scrivere un programma Python per gestire i dati una volta, il programma impiegherà 10 ore per essere eseguito.

Se si sceglie il primo, si risparmia il tempo per eseguire il programma, ma si è costato tempo per sviluppare il programma.

D'altra parte, se si sceglie il secondo, si perde tempo per eseguire il programma, ma è possibile fare altre cose quando il programma è in esecuzione. Che ne dici di giocare a World of Warcraft, uccidere mostri con il tuo warlock? Mangia il mio DOT ! : P

Questo è tutto! Sebbene Lua non sia così difficile da scrivere, tutto ciò che riguarda Lua è progettato per essere efficiente. Inoltre, ci sono piccoli moduli per Lua, ma ci sono tanti moduli per Python. Non vuoi portare una libreria C per Lua solo per un programma run-once, vero? Invece, scegliere Python e utilizzare quei moduli per ottenere facilmente il tuo compito potrebbe essere un'idea migliore.

A proposito: in realtà, ho cercato di usare Lua per fare il webscraping, ma alla fine ho capito che non dovevo preoccuparmi troppo delle prestazioni linguistiche. Il collo di bottiglia del webscraping non dipende dalle prestazioni della lingua . Il collo di bottiglia è su I / O di rete, analisi HTML e multitasking. Tutto quello che devo fare è assicurarsi che il programma funzioni e trovare il collo di bottiglia. Infine, ho scelto Python piuttosto che Lua. Ci sono così tanti eccellenti moduli Python; Non ho motivo di costruire il mio.

Secondo la mia esperienza sul webscraping, ho scelto Twisted for network I / O e lxml per l'html parsing come backend del mio programma di webscraping. Ho scritto un articolo per un'introduzione a questa tecnologia.

La scelta migliore per prendere i dati dai siti web: Python + Twisted + lxml

Spero che questo sia utile.

Question

Quando vedo Lua, l'unica cosa che leggo è "ottimo per l'incorporamento", "veloce", "leggero" e più spesso di ogni altra cosa: "World of Warcraft" o in breve "WoW".

Perché è limitato a incorporare l'intera cosa in un'altra applicazione? Perché non scrivere script generici come fai con Python o Perl?

Lua sembra essere brava in aspetti come la velocità e l'uso della memoria (il linguaggio di scripting più veloce afaik) quindi perché non vedo mai Lua essere usato come "linguaggio di scripting desktop" per automatizzare le attività? Per esempio:

  • Rinominare un gruppo di file
  • Scarica alcuni file dal web
  • web scraping

È la mancanza della libreria standard?




Affinché Lua sia facile da incorporare, deve avere poche dipendenze ed essere piccolo. Ciò lo rende poco adatto come linguaggio di scripting per scopi generici. Perché utilizzarlo come linguaggio di script per scopi generici richiederebbe un sacco di librerie standard. Ma se Lua avesse un sacco di librerie standard sarebbe più difficile da incorporare (a causa delle dipendenze e dell'impronta della memoria).




Sicuramente una mancanza di librerie standard. È anche meno noto di Python, Perl o Ruby.




C'è stata una recente spinta a creare un'installazione inclusa di batterie per Lua su Windows. Il risultato può essere trovato nel progetto Lua per Windows a LuaForge. Comprende l'interprete e una vasta collezione di moduli aggiuntivi che consentono di scrivere e utilizzare utili script e applicazioni pronti all'uso.

So che diverse distribuzioni Linux includono Lua e alcuni moduli ora, e altro ancora.

Ci sono anche un paio di librerie di moduli proposte in discussione nella mailing list, ma la comunità non si è ancora definita come meccanismo "ufficiale".

Uso Lua sia come linguaggio di scripting sia come il "main" loop della mia tipica applicazione, supportato da una o più DLL contenenti codice che è stato meglio implementato in C, o che include le librerie esistenti o le funzioni API necessarie per un particolare progetto. Utilizzato con un toolkit GUI come IUP o wxLua (un binding Lua per wxWindows), Lua rende piacevole la scrittura di applicazioni GUI di dimensioni medio-piccole.




Probabilmente è perché Lua è stata progettata come linguaggio di scripting e di estensione. Sul sito ufficiale è descritto come un linguaggio di scripting potente, veloce, leggero e incorporebile. Non c'è nulla che ti impedisca di scrivere programmi generici per questo (se ricordo correttamente viene fornito con un interprete e un compilatore), ma i progettisti linguistici intendevano usarlo principalmente come linguaggio incorporato (quindi leggero e tutto)




Related