7
votes

Lua vs php / python / jsp / etc

Je suis sur le point de commencer mon prochain projet de développement Web et je voulais entendre parler des mérites de Lua dans l'espace de développement Web.

Comment Lua comparait-elle à PHP / Python / JSP / etc .. pour le développement Web?

Une raison pour laquelle Lua serait un mauvais choix pour une langue d'application Web vs les autres?


1 commentaires

Si vous parlez aux gens de Lua, vous constaterez qu'ils sont sensibles au nom. C'est "Lua", car il est portugais pour la lune, un nom propre. Ce n'est pas un acronyme.


6 Réponses :


7
votes

Utiliser Lua pour le développement Web est assez rare ... vous pourrait le faire, mais ce sera beaucoup plus de temps que d'utiliser une langue qui a mûri en tant que langue de développement Web (PHP). ou a de bonnes bibliothèques liées au Web (Python / Ruby / etc.) Si vous allez avec Lua, cela signifie que vous pouvez finir par "recréer la roue" beaucoup pour ce qui peut être facilement disponible dans les langages Web matures.

La meilleure question est que Lua offre-t-elle que vous n'avez pas besoin qui n'est pas offerte dans les autres langues que vous avez répertoriées? Ou voulez-vous aider Lua à devenir une meilleure plate-forme de développement Web en créant un framework LUA MVC comme des rails de rubis?


4 commentaires

Le langage Lua peut être utilisé dans un style procédural, fonctionnel ou orienté objet (ou un mélange de tout ce qui précède) avec des idiomes naturels. Comme avec la plupart des langues dynamiques, cela vous donne des ordures collectées. Il est naturel (et juste) de le comparer à Python et à d'autres langues dynamiques. Mais il est très différent de l'utilisation de C ++ pour ce type de tâche.


Oui, je suppose que c'était une mauvaise comparaison, édité pour clarifier. Je voulais dire plus dans les lignes d'obscurité similaire au lieu d'une comparaison en tant que type de langage de programmation. Mon point est principalement que les langues Web populaires ont plus d'outils ou de contenu open source pour ce qui conduit généralement à un développement plus rapide et plus pratique.


Les gens n'ont pas dit que Ruby était une langue obscure à utiliser pour le développement du Web et non ces jours-ci, c'est toute la rage


Ils l'ont fait, avant que quelqu'un fasse rubis sur des rails. - Aujourd'hui, Ruby convient au développement Web car il existe des cadres tels que des rails. Lua n'a pas de cadres de développement Web de qualité comme ça (mais peut-être que Kepler va y arriver)



4
votes

Le Le projet Kepler est probablement le point de départ le plus connu pour le développement d'applications Web à Lua. Ils ont un Liste de diffusion dont les archives auront beaucoup de discussions sur les mérites de diverses approches.

Le site Kepler est lui-même construit dans un cadre CMS appelé spoutnik écrit presque entièrement en Lua et basé sur le projet Kepler.

L'approche typique avec LUA consiste à utiliser une langue adaptée à l'interfaçage à divers composants du système pour mettre en œuvre ces interfaces et utiliser LUA pour la logique et la colle des entreprises. Kepler fournit des bibliothèques écrites en grande partie en C qui permettent d'accéder aux systèmes de fichiers, aux bases de données et au réseau au code LUA. Il fournit également une couche d'API définie à l'interface avec le serveur Web, avec des implémentations pour Apache, tout serveur CGI Capable et Xavante qui est un serveur Web complet mis en œuvre principalement en Lua.


0 commentaires

21
votes

En bref:

  • Lua vous donne un système plus petit et plus simple que vous pouvez comprendre dans son intégralité , mais c'est dans un écosystème beaucoup plus petit ; Kepler est tout ce que vous obtenez et vous devrez probablement construire certaines de vos propres trucs. Je trouve cette optique facile et amusante (je fais une forte utilisation du lia Lua à l'analyseur expatrié et le modèle d'objet LUA , qui font partie de Kepler), mais d'autres peuvent préférer utiliser ce que tout le monde utilise.

  • php a démarré comme plus d'un processeur macro que d'une langue, et bien qu'elle s'est améliorée au fil des ans, lorsque les gens disent " x ont vraiment mieux compris", j'ai tendance Se méfier de x . Je trouve PHP Offertting, mais il y a un "puissant> Écosystème énorme pour le développement web.

  • python est une belle langue mais beaucoup plus gros que Lua, et dans la thèse d'une révision majeure (transition de 2,5 à 3.x). Encore une fois, vous obtenez un "fort> gros écosystème ; Le problème que j'ai avec Python est que La langue et le système sont trop gros pour une personne pour comprendre tous . Je n'aime pas être dans cette situation si je ne l'ai pas obligé.

  • Ruby est un peu de conception de langues plus propre, et le grand écosystème de rails est un gagnant . Ruby est moins complexe que Python mais plus complexe que Lua. Rails est un peu une bête.

    Cela revient à cette question:

    • préférez-vous comprendre tout le logiciel de votre système, même si vous devez construire beaucoup de choses vous-même?

    • ou préférez-vous avoir beaucoup de choses déjà construites pour vous, même si vous voulez ne pas comprendre exactement comment chaque pièce fonctionne?

      Si vous voulez tout comprendre, Lua est votre jeu. Si vous voulez beaucoup de choses déjà construites pour vous, je ne peux pas vous conseiller comment choisir parmi PHP / Python / JSP / Rails, etc.

      plus sur lua et python à qui La langue est préférable d'utiliser, Lua ou Python?


7 commentaires

Bonjour Norman, voudriez-vous ajouter une petite comparaison entre Lua la langue de la typographie statique / dynamique ... Strong / semaine Tapant, etc. ... merci!


"Ruby est un peu de conception de langues plus propre". Comparé à quoi? Je dirais que c'est plutôt incohérent par rapport à Lua ou à Python. C'est toujours un design très élégant, mais je n'appellerais pas 7 (selon la manière dont vous comptez) différents types de fonctions anonymes propres. Bonne réponse autrement.


@Troelskn: critique équitable. J'ai appris les petites années il y a des années et quand je regarde Ruby, je ne vois vraiment que Smalltalk ...


@Ben: Je ne pense pas que je suis qualifié pour parler en détail des différences de types de types --- ils sont tous dynamiques. Je ne sais pas quels types PHP a ces jours-ci.


Veuillez lire ceci: Linuxjournal.com/article/3882 . Je ne pense pas que Python soit complexe. Au contraire. C'est juste que c'est si facile et il est si puissant que vous pouvez faire des choses très complexes. C'est une différence énorme à partir de ce que vous dites. Avec Python, sa grande qualité peut être son inconvénient: les gens peuvent écrire des choses incroyablement puissantes, mais s'ils sont trop intelligents pour vous, vous ne pourrez peut-être jamais comprendre ce qu'ils ont fait (alors je suis (pas très malinvère)). Et beaucoup de produits gratuits ont été fabriqués par des personnes intelligentes si difficiles à comprendre.


Mais la langue python elle-même n'est pas "trop ​​gros" et non "trop ​​complexe". Je ne peux pas laisser les gens dire ça! ;)


@Olivier: J'ai lu le papier d'Eric et j'ai lu les papiers de Guido. Python est une bonne langue, mais par comparaison avec Lua (qui est ce que l'affiche originale a posé une question importante et complexe. Je me tiens à ma réponse.



3
votes

Je viens un peu tard ... mais je voulais jeter dans une autre langue: haxe

Pourquoi?

  1. Haxe est une langue open source, conduite par une communauté assez petite, mais active

  2. haaxe est une chaîne de plate-forme indépendante ... Les cibles sont:

    • Flash Player 6-8 et 9-10 BYTECODE ou ActionScript Code source 3
    • code source JavaScript
    • Code source PHP
    • NEKOVM Bytecode ou code source Neko (Nekovm est un VM léger et extensible, adapté aux applications de développement serveur et de bureau)
    • Code source C ++
    • Le code source Java Android est actuellement travaillé sur

      Cela signifie que comme un développeur Web, vous pouvez écrire à la fois des clients riches ainsi que des serveurs dans la même langue ... Le même code peut être réutilisé ultérieurement pour les applications de bureau / mobile

    • Haxe est une langue très expressive et puissante, mettant en vedette:
      • Fonctions de première classe (fonctions anonymes et méthodes, qui sont les mêmes en haxe) et les fermetures ainsi que les éventuelles avec des paramètres (un peu comme des types algébriques) permettant d'utiliser des approches fonctionnelles
      • Bon système de type, y compris les génériques, le sous-tytyping structurel, etc. ... Pour simplifier son utilisation, le compilateur a une inférence de type très utile, ce qui garantit que le code est strictement tapé, mais vous permet d'économiser beaucoup de redondance (type de variable est déterminé. Par initialisation, type de retour de fonction par type d'expressions retournées) ...
      • API de plate-forme inter-plateforme, y compris tout de tableaux dynamiques, à la réflexion / introspection et à un package de télécommande, qui vous échappe d'envoyer des objets entiers du client au serveur, d'une plate-forme à une autre ...
      • Design de langage cohérent et radical ... Bien sûr, il a quelques défauts, mais ceux-ci proviennent principalement du fait, qu'il cible des plates-formes extrêmement différentes ...
      • Les filles l'aiment et ça va te rendre réel riche ...: D

        La plus grande faille sur Haxe est que cela permet de coder non typégié, au coût de la mise en œuvre spécifique de la plate-forme de code non typ ... Lorsque bien dactylographié (ce qui n'est pas beaucoup de travail avec Haxe en fait), le code sera exécuté De la même manière sur toutes les plateformes ... sinon, le résultat varie en fonction de la manipulation d'exécution de la plate-forme elle-même ...

        Pour le mettre en quelques mots: c'est une grande langue, qui vous permet de cibler de nombreuses plateformes ... c'est jeune, c'est de la croissance et vous pouvez participer ...


0 commentaires

1
votes

En ce qui concerne les cadres Web Lua, il y a aussi Luci . Il est principalement utilisé pour les petits systèmes embarqués. Nous venons de commencer un projet en l'utilisant, donc je ne peux donc pas commenter trop de choses en ce moment. Nous faisons simplement des écrans de configuration simples similaires à ceux qui sont déjà fournis comme des exemples, donc je suis sûr que ce sera suffisant pour nos besoins.


0 commentaires

1
votes

Si ce n'est que la langue, alors je suis d'accord avec Norman. Si le cadre de développement Web est important pour vous, alors vous devez envisager Ruby car ROR est un cadre très mature. J'aime Python, mais il semble y avoir de nombreux cadres à choisir, aucun d'entre eux n'est dominant. Cherrypy, Django, Pylons, Web2py, Zope 2, Zope 3, etc. Un indicateur important pour moi est qu'il y a plus d'emplois ROR sur le marché que tout autre (langue, cadre).


1 commentaires

+1 pour souligner la demande d'emploi ROR