Nunca he hecho ningún desarrollo web con Lua. Pero desde que lo preguntaste, ¡sentí curiosidad y encontré este proyecto Sailor! Un marco Lua MVC, que en realidad siento que parece muy prometedor. Si tuviera más tiempo disponible ahora, definitivamente lo probaría.
Sin embargo, no pude encontrar nada en su sitio sobre cómo Sailor maneja la concurrencia. Lua es de un solo subproceso (como también se menciona en las otras respuestas) , pero tiene una huella muy pequeña . Es cierto que no estoy seguro de cómo se manejaría la concurrencia en un marco web Lua. Quizás el marco web generaría una nueva instancia de Lua para cada número X de usuarios, o algo así.
No estoy seguro de si usaría o no Lua para un desarrollo web serio. Actualmente prefiero usar el framework Python Django, pero eso es principalmente porque es el framework con el que me siento más cómodo en este momento. También he trabajado mucho con ASP MVC en el pasado y me he contentado con eso. En este momento estoy aprendiendo Elixir, por lo que podría saltar al marco de Phoenix que parece súper prometedor en mi opinión, especialmente con respecto a la creación de aplicaciones web escalables simultáneas.
¿Por qué elegiría Lua para crear marcos web?
Como dije, nunca probé Lua para el desarrollo web, pero la idea suena entretenida. Trataré de explicar por qué elegiría / no elegiría Lua para el desarrollo web …
- ¿Cuál es la mejor manera de agregar anotaciones a un video en la web que no creó?
- ¿Cuáles son los inconvenientes de usar las API RESTful?
- ¿Qué tecnologías web se utilizan para construir el sitio web tradingview.com?
- ¿Es posible evitar contenido inapropiado en la web?
- ¿Debo usar jQuery o AngularJS con una aplicación web Django?
- Lua tiene una cultura en la que los desarrolladores no comparten gran parte de su código y la comunidad es bastante pequeña, por lo que si quieres hacer algo grande y complejo, tendrás que reinventar muchas ‘ruedas’. Python tiene una comunidad enorme con miles de bibliotecas de alta calidad, por lo que en Python simplemente se recostará en su silla e importará las ‘ruedas’ en lugar de reinventarlas. Sin embargo, hay algunas bibliotecas geniales en Lua como Torch | Computación científica para LuaJIT ..
- En mi experiencia, Lua es una locura rápida en comparación con muchos otros idiomas . Especialmente Python es muy lento en comparación con Lua.
Lua es de un solo subproceso, pero la huella es increíblemente pequeña, por lo que quizás solo sea cuestión de generar muchas instancias de Lua para lograr un mejor potencial de concurrencia.
(Supongo que cualquier marco web serio trataría este problema de alguna manera …) - La pequeña huella de la Lua VM lo hace agradable para hardware barato de bajo rendimiento.
- Lua es un lenguaje muy simple y no detallado. A veces extraño esta simplicidad en otros idiomas. La simplicidad es una gran ventaja en mi libro.
Creo que la mejor razón para elegir Lua para el desarrollo web sería si desea implementar en hardware de bajo rendimiento , pero también podría ser bueno si desea construir algo no complejo que deba ejecutarse súper rápido.
Sin embargo, si lo que quieres es un alto potencial de concurrencia, creo que Elixir Phoenix es la mejor opción .
No importa qué idioma y marco elija, siempre debe considerar si realmente necesita toda esa velocidad y concurrencia. Puede ser que su problema no necesite tanta velocidad, y entonces sería una optimización prematura elegir un lenguaje / marco de alta velocidad en lugar de un lenguaje / marco de alta productividad.
Dicho esto, si Lua es el idioma con el que se siente más cómodo (o tal vez es su único idioma) , entonces creo que debería continuar de inmediato y probar Lua para el desarrollo web.
Gracias por hacer la pregunta, realmente me hizo sentir mucha curiosidad acerca de Lua para el desarrollo web … Y lamento no poder compartir ninguna experiencia práctica, pero espero que al menos puedan usar mis pensamientos.
Una charla del creador de Sailor: