2010-01-12 22 views
6

Vengo de un fondo de Java y PHP para crear aplicaciones web.¿Alguien ha usado Lua para crear una aplicación web?

¿Alguien ha usado Lua antes de construir un aplicaciones web?

Pregunta: En caso afirmativo, ¿cuáles son los pro's & con los de usar Lua frente a PHP o Java para una aplicación web? (por ejemplo, soporte del servidor web, rendimiento, mantenimiento del código, etc.).

+1

Lo que significa que Lua parece ser el equilibrio perfecto entre Python y Ruby. – TeddyK

+0

Bueno, es decente, supongo http://lua-users.org/wiki/LuaVersusPython –

+0

Entonces, ¿Lua es mejor para las aplicaciones web que PHP? Si es así, ¿por qué? – TeddyK

Respuesta

2

Existen bastantes proyectos que usan Lua para el desarrollo web.

Por ejemplo, Nanoki, un motor HTTP y wiki desarrollado en Lua puro.

O Sputnik, que se basa en la parte superior de Kepler.

Dicho esto, Lua es mucho, hmmm, "hágalo usted mismo" tipo de entorno.

6

¡Estoy usando Lua ahora mismo para crear una aplicación web! ¿Qué pasó con los desarrolladores de software que "hágalo usted mismo" obtuvieron un mal nombre, demasiado perezosos, destetados en hinchados megabytes de bibliotecas de soporte, o qué? En realidad, como han señalado otros, hay un apoyo decente, simplemente no en la escala de Python, por ejemplo. Lua es por mucho el lenguaje de scripting más rápido (especialmente con www.luajit.org alrededor), y mucho, mucho más limpio que cualquier otro diseño de su liga. Esto es vital para el mantenimiento a largo plazo.

Para aquellos que utilizan lighttpd como su servidor web (yo incluido), la ventaja adicional es que todo el poder de Lua está disponible para mod_magnet guiones, útil para el manejo de las peticiones síncrono/reescritura-en-esteroides.

+3

No hay nada intrínsecamente incorrecto en "hacerlo usted mismo", pero si tiene que implementarlo todo usted mismo, tendrá que dedicar mucho tiempo a esas cosas, y como todos sabemos, el tiempo es dinero. También existe el problema de que debes tener en cuenta muchos problemas de seguridad que las bibliotecas manejan por ti, pero a cambio, puedes reaccionar inmediatamente si hay un error, que no siempre es el caso con una biblioteca: a menudo tiene que esperar que se actualice. –

+1

¿El diseño de Lua es más limpio? Me rendí en el tutorial de Lua después de descubrir que es similar a Python, pero la sintaxis no es tan legible. Por cierto, Google está haciendo una implementación en C++ de Python que debería ejecutarse 5 veces más rápido. –

+0

[Lua vs Python] (http://stackoverflow.com/questions/356160/which-game-scripting-language-is-better-to-use-lua-or-python). Película en 11. –

7

Como otros mencionaron Lua es el tipo de "hágalo usted mismo". También es muy rápido y bastante eficiente en la memoria en comparación con Perl/PHP/Python/Ruby, especialmente si está usando LuaJIT. Y es muy fácil de integrar con el código C/C++. Por lo general, estos puntos son irrelevantes para una aplicación web típica donde el rendimiento suele estar restringido por la base de datos. También donde realmente no te importa la integración de C/C++ y donde realmente no quieres hacer las cosas tú mismo, sino que quieres construir sobre los marcos existentes. Por esta razón, no creo que Lua sea una buena opción para una aplicación web típica. Al mismo tiempo, hay algunas aplicaciones de nicho donde brilla Lua. Por ejemplo, nuestra empresa se especializa en la construcción de servidores HTTP de alto rendimiento utilizados para la observación. Entonces, lo que estamos usando es nuestro propio servidor HTTP escrito desde cero en C++ que integra Lua como lenguaje de scripting para nuestra lógica comercial. Esto nos permite hacer la personalización de la lógica de negocio en Lua rápidamente en comparación con lo que teníamos que hacer si era C++ puro. Al mismo tiempo, siempre tenemos la opción de realizar partes críticas para el rendimiento en C++. Si estuviéramos utilizando cualquier otro lenguaje de scripting, estamos seguros de que sería más lento, usaría más memoria y, en general, sería más difícil de integrar con el código C++. Al mismo tiempo, realmente no nos importa demasiado la pérdida de un amplio soporte de biblioteca si usamos otros lenguajes de scripting, ya que el dominio en el que estamos trabajando es bastante especializado, por lo que generalmente esas bibliotecas son irrelevantes para él.

2

Pros: rápido, pequeño, elegante, fácil de hacer su propio enlace a una biblioteca C.

Contras: a veces tienes que escribir tus propias librerías para cosas que obtendrías gratis en Python.

http://luanova.org/ tiene una serie de buenas publicaciones sobre desarrollo web en Lua.

4

He programado algunos sitios web con Lua. El primero fue un planificador de redadas para mi gremio de World of Warcraft (así es como comienzas a programar en Lua ...). Usé mod_lua con una versión alfa de Apache 2.4 para eso. Otros dos fueron sitios de concursos pequeños para clientes, desarrollados con WSAPI, Nginx, Spawn-fcgi y Orbit. Esta configuración es muy rápida, más rápida que mod_lua y cualquier otra cosa que haya visto. ¡Las páginas se mostrarían instantáneamente como si estuvieran en caché! La experiencia fue muy agradable y Lua te hace rápidamente productivo. Pero será mejor que estés bien organizado. A Lua le falta muchas baterías cuando se trata de desarrollo web, por lo que a menudo tiene que implementar las suyas propias y se puede volver complicado. Así que te sugiero que planifiques lo que necesitarás antes de comenzar. Usé mi propio Lua "ORM" con MySQL y una versión bifurcada de Lua Pages para las plantillas. Echa un vistazo aquí si quieres probar Lua + Wsapi + Nginx: http://mascarenhas.github.com/2009/10/24/wsapi-nginx-fcgi.html Creo que es la mejor configuración.

0

lighttpd y mod_magnet son realmente una gran plataforma, pero recomiendo que primero eche un vistazo a Kepler Project. Es un comienzo bastante bueno.

Puede hacer que su fondo de PHP/Java sea útil.

-1

Utilizamos lua con gran éxito para nuestra implementación de back-end. También puede echar un vistazo a JUCI webgui para dispositivos integrados. Utiliza lua para la implementación de backend. Puede ver cómo el código interactúa con el back-end lua/C: https://github.com/mkschreder/juci

Sin embargo, tenga en cuenta que este backend es un backend puro jsonrpc por lo que no crea html como páginas php o cgi. Lua es perfecto si todo lo que haces es manejar y responder a las solicitudes json. También puede tener la aplicación principal en php y usar lua para escribir la aplicación en el back-end. O la aplicación principal completamente en javascript.

Creo que si va a utilizar lua en los lugares donde desea generar html, entonces encontrará que carece de muchas características, pero si lo limita a la implementación de backend puramente funcional, entonces encontrará que funciona muy bien .

+0

Gracias por responder y contribuir a Stack Overflow, sin embargo, eche un segundo vistazo a la pregunta, ya que parece estar fuera de tema de acuerdo con [ayuda/tema]. Al contestar una pregunta fuera del tema, parece que está bien hacer tales preguntas; no es así.Las preguntas fuera del tema pueden cerrarse y luego eliminarse, lo que anularía su contribución. –

Cuestiones relacionadas