有人使用Lua构建Web应用程序吗?

我来自一个使用Java和PHP构建Web应用程序的背景。

问题:有人在构建Web应用程序时使用过Lua吗?

如果使用过,使用Lua与使用PHP或Java构建Web应用程序相比有哪些优缺点(例如web服务器支持,性能,代码维护等)?

原文链接 https://stackoverflow.com/questions/2046572

点赞
stackoverflow用户248797
stackoverflow用户248797

有很多项目使用Lua进行web开发。

比如,纯Lua开发的HTTP和wiki引擎Nanoki

或者是基于Kepler构建的Sputnik

虽然如此,Lua仍然是一种比较"自助式"的环境。

2010-01-12 10:48:51
stackoverflow用户248838
stackoverflow用户248838

我现在正在使用 Lua 构建一个 Web 应用程序!不知道曾经被称为“自己动手做”的软件开发者发生了什么,又是因为太懒,又是被臃肿的支持库培养出来的,还是别的什么原因?实际上,正如其他人指出的,存在着不错的支持,只是没有像 Python 这样的规模。Lua 是迄今为止最快的脚本语言(特别是有了 www.luajit.org),在语言设计方面比任何其他同类语言都要更加优秀和简洁。这对于长期维护至关重要。

对于那些使用 lighttpd 作为他们的 web 服务器(包括我在内)的人来说,额外的好处是 Lua 的全部功能可用于 mod_magnet 脚本,对于同步请求处理/重写会很有用。

2010-01-12 11:46:21
stackoverflow用户35018
stackoverflow用户35018

如其他人所提到的,Lua 是一种“自己动手做”的环境。它非常快速并且与 Perl、PHP、Python、Ruby 相比非常省内存,特别是如果您正在使用LuaJIT。而且它非常容易与 C/C++ 代码集成。通常这些点对于典型的 Web 应用程序来说是无关紧要的,因为其性能通常受数据库限制。而且在您不真正关心 C/C++ 集成且不想自行构建的情况下,您更想要在现有框架的基础上构建。因此,我认为 Lua 不适合典型的 Web 应用程序。同时,Lua 在某些利基应用程序中表现出色。例如,我们公司专门从事构建用于广告服务的高性能 HTTP 服务器。因此,我们所使用的是以 C++ 为基础重新编写的自己的 HTTP 服务器,它将 Lua 作为业务逻辑的脚本语言进行集成。这使我们能够快速使用 Lua 进行业务逻辑的定制,相对于如果使用纯 C++,我们所需要做的内容少得多。同时,我们总有一个选择,即在 C++ 中执行性能关键部分。如果我们使用任何其他脚本语言,我们肯定会发现它会更慢,占用更多内存,并且通常更难与 C++ 代码集成。同时,我们并不真正关心使用其他脚本语言时丰富库支持的损失,因为我们所从事的领域非常专业化,通常那些库对其来说是无关紧要的。

2010-01-12 12:51:57
stackoverflow用户248973
stackoverflow用户248973

优点:快速,体积小,优雅,容易将其绑定到 C 库上。

缺点:有时你必须自己编写库,而在 Python 中你可以免费获得。

http://luanova.org/上有关于 Lua 网络开发的多篇优秀文章。

2010-01-12 15:03:25
stackoverflow用户249590
stackoverflow用户249590

我用 Lua 编写了几个网站。第一个是一个供我的《魔兽世界》公会使用的袭击计划器(这通常是你开始学习 Lua 编程的方式...)。我使用了 mod_lua 和 Apache 2.4 的 alpha 版本。另外两个是为客户开发的小型竞赛网站,使用了 WSAPI、Nginx、Spawn-fcgi 和 Orbit。这个设置非常快,比 mod_lua 和其他我见过的任何东西都要快。这些页面会像缓存一样立即显示!这种经历非常愉快,Lua 使你可以快速提高生产力。但你最好要有良好的组织和规划。当涉及到 Web 开发时,Lua 缺少很多内置功能,所以你经常需要自己实现,这可能会变得混乱。因此,我建议在开始之前计划好你需要的东西。我使用了自己的 Lua "ORM" 与 MySQL 和 Lua 页面的 forked 版本作为模板。如果你想尝试 Lua+Wsapi+Nginx 的组合,请查看这里:http://mascarenhas.github.com/2009/10/24/wsapi-nginx-fcgi.html 我认为这是最好的设置。

2010-01-13 07:45:31
stackoverflow用户251784
stackoverflow用户251784

lighttpdmod_magnet 是非常优秀的平台,但我建议你首先查看Kepler Project。这是一个相当不错的开始。

你可以将你的 PHP/Java 背景派上用场。

2010-01-16 02:29:41
stackoverflow用户2826084
stackoverflow用户2826084

我们非常成功地使用lua实现了我们的后端功能。您也可以查看针对嵌入式设备的JUCI WebGUI,它使用lua实现后端功能。您可以查看代码如何与lua/C后端进行交互:https://github.com/mkschreder/juci

但请注意,此后端是纯jsonrpc后端,因此不像php或cgi页面那样创建任何html。如果您所做的全部工作是处理和响应json请求,则lua非常完美。您还可以在php中使用lua编写应用程序的后端,或者完全使用javascript进行主应用程序。

我认为,如果您想在生成html的地方使用lua,您会发现它缺少许多功能,但如果您将其限制在纯功能后端实现上,那么您会发现它非常有效。

2016-01-17 17:10:41