Question

Quand je vois Lua, la seule chose que je lis est "très bien pour intégrer", "rapide", "léger", "léger". et plus souvent que toute autre chose: "World of Warcraft". ou en bref "WoW".

Pourquoi se limite-t-il à intégrer le tout dans une autre application? Pourquoi ne pas écrire des scripts généraux comme vous le faites avec Python ou Perl?

Lua semble se débrouiller très bien dans des aspects tels que la vitesse et l'utilisation de la mémoire (le langage de script le plus rapide sur le marché), alors pourquoi ne jamais voir Lua être utilisé comme un "langage de script de bureau"? automatiser des tâches? Par exemple:

  • Renommer un groupe de fichiers
  • Téléchargez des fichiers sur le Web
  • Webscraping

Est-ce le manque de la bibliothèque standard?

Était-ce utile?

La solution

Juste parce qu'il est "commercialisé" (dans un sens général) en tant que langage à usage spécifique pour les moteurs de script intégrés, ne signifie pas qu'il est limité à cela. En fait, WoW aurait probablement tout aussi bien pu choisir Python comme langage de script intégré.

Autres conseils

Lua est un langage cool, léger et extrêmement rapide!

Mais l'essentiel est: Les performances sont-elles si importantes pour ceux tâches que vous avez mentionnées?

  • Renommer un groupe de fichiers
  • Téléchargez des fichiers sur le Web
  • Webscraping

Vous écrivez ces programmes une fois et vous les exécutez une fois, peut-être aussi. Pourquoi vous souciez-vous autant de la performance pour un programme run-once?

Par exemple:

  1. Il faut compter 3 heures pour écrire un programme C / C ++, pour gérer les données une fois, le programme prend 1 heure pour s'exécuter.
  2. Coût 30 minutes pour écrire un programme Python afin de gérer les données une fois, son exécution prend 10 heures.

Si vous choisissez le premier, vous gagnez du temps pour exécuter le programme, mais vous avez pris votre temps pour développer le programme.

Par contre, si vous choisissez le second, vous perdez du temps à courir le programme, mais vous pouvez faire autre chose lorsque le programme est fonctionnement. Pourquoi ne pas jouer à World of Warcraft, tuer des monstres avec votre démoniste? Mange mon D.O.T ! : P

C'est ça! Bien que Lua ne soit pas si difficile à écrire, tout sur Lua est conçu pour être efficace. De plus, il existe de petits modules pour Lua, mais il en existe beaucoup pour Python. Vous ne voulez pas porter une bibliothèque C pour Lua pour un programme unique, n'est-ce pas? Au lieu de cela, choisissez Python et utilisez ces modules pour accomplir facilement votre tâche, cela pourrait être une meilleure idée.

FYI: En fait, j’ai essayé d’utiliser Lua pour faire du Webscraping, mais finalement, j'ai réalisé que je ne me souciais pas beaucoup de la performance linguistique. Le goulot d'étranglement de la Webscraping est pas sur les performances de la langue . Le goulot d'étranglement est allumé E / S réseau, analyse HTML et multitâche. Tout ce que je dois faire Assurez-vous que le programme fonctionne et trouvez le goulot d'étranglement. Enfin, j'ai choisi Python plutôt que Lua. Il y a tellement beaucoup d'excellents modules Python; Je n'ai aucune raison de construire mon propre.

D'après mon expérience en matière de Webscraping, j'ai choisi Twisted pour les E / S réseau et lxml pour l'analyse HTML en tant que backend de mon programme de webscraping. J'ai écrit un article pour une introduction à cette technologie.

Le meilleur choix pour extraire des données de sites Web: Python + Twisted + lxml

J'espère que cela vous sera utile.

Lua a moins de bibliothèques que Python. Mais assurez-vous de consulter LuaForge . Il contient de nombreuses bibliothèques intéressantes, telles que LuaCURL , wxLua ou getopt .

Ensuite, visitez le site LuaRocks , le système de gestion de paquets de Lua. Avec celui-ci, vous pouvez rechercher et installer les modules Lua les plus matures avec des dépendances. Cela ressemble à RubyGems ou aptitude .

Le site lua-users.org propose également de nombreuses ressources intéressantes, telles que des tutoriels ou le Wiki de Lua .

Ce que j'aime chez Lua, ce n’est pas sa vitesse, mais son langage de base minimal, sa flexibilité et son extensibilité.

Cela dit, j'utiliserais probablement Python pour les tâches que vous avez mentionnées en raison de la grande communauté effectuant de telles choses en Python.

C'est probablement parce que Lua a été conçu comme un langage de script et d'extension. Sur le site officiel , il est décrit comme un langage de script puissant, rapide, léger et intégrable. Rien ne vous empêche d'écrire des programmes d'usage général (si je me souviens bien, il est livré avec un interprète et un compilateur), mais les concepteurs de langages voulaient qu'il soit utilisé principalement comme langage intégré (donc léger et tout)

C’est une question sociologique, pas une question de programmation.

J'utilise Lua pour la création de scripts à usage général presque exclusivement. Mais je devais écrire quelques centaines de lignes de code pour que Lua joue mieux avec le shell. Cela comprenait des astuces telles que

  • Citer une chaîne de sorte qu'elle soit vue comme un mot par le shell
  • Écriture d'une fonction pour capturer le résultat d'une commande comme dans shell $ (commande)
  • Ecriture d'une fonction pour analyser le système de fichiers à l'aide de la bibliothèque Lua posix et développer les modèles de globalisation de shell

(Pour ceux que cela intéresse, j'ai laissé le code dans mon La liste déroulante Lua contient également d’autres éléments, qui sont probablement dans osutil dans os.quote , os.runf , os.capture et peut-être os.execve . L'emplacement est dans posixutil.lua . Ils utilisent tous deux le Bibliothèque Lua Posix .)

Pour moi, cet effort supplémentaire en vaut la peine car je peux gérer une syntaxe simple et de superbes structures de données. Pour les autres, une connexion plus directe avec le shell pourrait être préférable.

Certainement un manque de bibliothèques standard. Il est également moins connu que Python, Perl ou Ruby.

Il y a eu un effort récent pour créer une installation avec piles incluses pour Lua sous Windows. Le résultat peut être trouvé dans le projet Lua pour Windows de LuaForge. Il comprend l’interprète et une vaste collection de modules supplémentaires permettant d’écrire et d’utiliser des scripts et des applications utiles.

Je sais que diverses distributions Linux incluent Lua et certains modules, et d’autres sont à venir.

Il existe également quelques bibliothèques de modules proposés à l’étude dans la liste de diffusion, mais la communauté n’en a pas encore choisi une en tant que "fonctionnaire". mécanisme.

J'utilise Lua à la fois comme langage de script et comme "principal". boucle de mon application typique, prise en charge par une ou plusieurs DLL contenant du code mieux implémenté en C, ou encapsulant des bibliothèques existantes ou des fonctions API requises par un projet particulier. Utilisé avec une boîte à outils graphique telle que IUP ou wxLua (une reliure Lua pour wxWindows), Lua rend l’écriture d’applications de GUI de petite à moyenne taille très agréable.

Je pense que la réponse à cela est un "marketing" " Le problème est probablement correct, de même que l’absence d’un grand ensemble de bibliothèques. Je voudrais signaler un autre cas de ceci: Ruby. Ruby est censé être un langage de script à usage général. Le problème est que, depuis que Ruby on Rails est devenu si populaire, il devient difficile de trouver quelque chose qui n’ait aucun rapport avec Rails. J'ai bien peur que Lua en souffre également, étant populaire en raison de quelques utilisations majeures, mais ne pouvant jamais se libérer de cette stigmatisation.

Absence de bibliothèque standard. Période. Même pour répertorier tous les fichiers d’un répertoire, il faut un module non standard .

Il y a de bonnes raisons à cela (garder la portabilité ANSI stricte, ne nécessitant pas POSIX), mais le résultat est que, pour la programmation générale, je préfère Python.

Lua est utilisé dans LuaTeX , une extension TeX, en tant que langue intégrée, et a rapidement gagné en popularité. parmi les développeurs TeX à cause de cela. Il est utilisé comme langage de script pour certains utilitaires de la distribution TeX Live, ne serait-ce que parce qu’il existe maintenant un binaire luatex , disponible sur toutes les plates-formes, qui peut également être utilisé comme interpréteur Lua (avec certains modules essentiels ont été ajoutés & # 8211; slnunicode, luafilesystem, etc.) C'est très important pour les installations Windows, qui utilisaient auparavant des outils de script Unix supplémentaires (ActivePerl, etc.). Le langage macro ConTeXt utilise largement les scripts Lua de nos jours.

C’est certes un domaine très spécial :-) mais totalement indépendant des jeux!

Pour que Lua soit facile à intégrer, il doit avoir peu de dépendances et être petit. Cela le rend mal adapté en tant que langage de script à usage général. En effet, son utilisation en tant que langage de script à usage général nécessiterait un grand nombre de bibliothèques standard. Mais si Lua disposait de nombreuses bibliothèques standard, il serait plus difficile de l’incorporer (en raison des dépendances et de l’empreinte mémoire).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top