62 votes

Est Lua intéressant, à partir d'un langage de programmation, de conception de point de vue?

Lua occupe une bonne place dans l'espace de langues qui peuvent être incorporées. Est-ce une conséquence de nouvelles idées intéressantes les réalisateurs avaient, ou est-ce une conséquence de la bonne exécution des idées?

Comparaison des propriétés et caractéristiques de Lua à d'autres PLs sont particulièrement appropriées.

134voto

Norman Ramsey Points 115730

Est Lua intéressant, à partir d'un langage de programmation, de conception de point de vue?

Oui! Ma journée de travail est l'étude des langages de programmation, et de Lua permettra de rembourser une étude attentive. Je dirais que sur très peu d'autres langues (peut-être l'Icône et CLU). Veuillez noter que c'est la langue dans son ensemble, et non pas les caractéristiques individuelles, ce qui rend Lua donc la peine de l'étudier.

Est-ce une conséquence de nouvelles idées intéressantes les réalisateurs avaient, ou est-ce une conséquence de la bonne exécution des idées?

Les deux. Pour les détails, votre meilleure source pour trouver la réponse à cette question est le papier de l'Évolution de La Lua, qui est apparu lors de la Troisième Symposium ACM sur l'Histoire de Langages de Programmation. Mais je vais ajouter quelques commentaires.

  • L'utilisation de Lua tables comme la seule mutable, non-atomique de type de données a été inventé par le Lua de l'équipe. Ils ont été inspirés par l'évolution de la CLU, et je crois qu'ils étaient au courant des travaux similaires dans Awk et l'Icône, mais le raffinement de ce degré est une contribution importante de la Lua équipe.

    Les Tables ont aussi une très efficace de mise en œuvre, qui a été inventé par le Lua de l'équipe.

  • Les caractéristiques fonctionnelles de Lua ont la même sémantique que le Schéma, mais Lua a un unique de mise en œuvre de la première des fonctions de classe, qui, je pense, ils doivent soumettre pour publication dans le Journal de la Programmation Fonctionnelle.

  • L'API pour l'intégration a été grandement améliorée au fil des ans. Sa principale caractéristique est que définis par l'utilisateur résumé des types de participer pleinement à l'intégration. C'est la propriété qui fait l'API Lua supérieure à l'API Tcl, par exemple. L'API Lua a subi beaucoup de raffinement au fil des années, notamment depuis sa première publication en version 2.5. Le Lua créateurs méritent beaucoup de crédit ici.

  • Le garbage-collection de la technologie est la norme.

  • Lua coroutines représentent un nouveau regard sur certaines très vieilles idées. La nouvelle a été considéré comme digne de publication dans les ACM Transactions sur les Langages de Programmation et des Systèmes, encore une fois, je pense que le Lua équipe d'obtenir un crédit pour l'originalité.

  • Lua metatables sont liées à la Common Lisp metaobject protocole.

Je pense que Lua de réussite résultat d'une combinaison unique de forces de l'Lua de l'équipe:

  • Si vous lisez le HOPL papier, vous verrez que le Lua de l'équipe étaient bien au courant de beaucoup de développements dans les langages de programmation et ont été en mesure de choisir parmi les meilleures idées. La plupart des concepteurs de populaire, les langages de script ont été amateurs et n'ont pas été aussi bien informés.

  • Lua est superbement conçu de sorte que les pièces s'assemblent très bien, avec un excellent rapport puissance / poids. C'est le résultat de beaucoup de raffinement au fil du temps, et PUC-Rio était prêt pour le Lua de l'équipe pour le travail sur le langage de conception et de mise en œuvre au lieu de la rectification d'un grand nombre de documents. Ce travail n'aurait pas été possible à une université Nord-Américaine.

  • Lua est superbement conçu. La mise en œuvre est juste incroyablement bon. C'est en partie de grands travaux par de grands ingénieurs et, en partie, la possibilité de réviser la conception sur une période de 15 ans.

Je vais conclure en demandant aux lecteurs de ne pas sous-estimer la difficulté de choisir et de raffinage bien établi idées pour former un tout cohérent. C'est un travail extrêmement difficile et il est rarement reconnu comme il devrait l'être.

7voto

Nick Dandoulakis Points 26809

Lua prend en charge la programmation fonctionnelle, et il est basé sur Prototype basé sur le style de programmation, qui est flexible et puissant.

IMO c'est un intéressant langue.

Si vous voulez lire quelques réflexions à propos de l'héritage de prototype, je vous suggère de
lire Steve Yegge de La Conception Universelle Modèle de blog.

4voto

Yin Zhu Points 10438

Lua est petit, le code total est seulement des dizaines de milliers de lignes dans la norme ANSI C. (Python a dix fois mœurs lignes de code).

Lua est très stable, ou à dire, la langue est fixé maintenant.

Lua a un bon de l'ingénierie. Son code est facile à lire et hack. (aussi parce que les petites)

Sa licence permet de vous faire ce que vous voulez.

Écrire des extensions en C Lua est plus facile que d'autres langues, disent Python.

2voto

Charles Stewart Points 7698

Il y a un Lambda de l'histoire Ultime, Small is Beautiful: la conception de Lua, de discuter de Robert Ierusalimschy récente de parler à Stanford du même nom. La discussion se concentre actuellement sur le bien fondé d'avoir des tables comme le seul contenant la structure de données; jusqu'à présent, peu a été dit sur l'autre partie de la parler, de traiter avec Lua C de l'interface.

0voto

ammoQ Points 17866

Je pense que c'est parce que Lua est relativement simple et pragmatique. Elle ne cherche pas à être la langue pour construire le prochain système d'exploitation, Crysis 3 ou SAP clone, mais ce qu'il fait, il le fait bien, c'est à dire de servir comme un langage de script.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X