正确认识LUA在WEB开发上的特长

  在此前我发表过两篇文章,主要介绍LUA在WEB开发上的尝试和LUA的性能测试。其中它的性能测试是蛮不错的,普通的逻辑运算确实比PHP强,但一旦连接数据库的处理,那么这个优势就缩小了,但也基本有1.5~2倍的处理效率吧 ;) 但这点性能提升好像不足以让我们从应用非常普遍的PHP转到LUA上进行开发吧~包括我自己也只是在项目中的一小块应用上使用了LUA来处理。

  那么LUA如此之简单,很多操作库都需要自己开发来实现。值得吗?当你认识到LUA的真正意义,你会知道这是值得的。

  第一点:你可以用C或LUA本身来实现需要的操作库,如:数据库操作、模板、图片处理、文件处理等等。

  第二点:随心所欲的书写代码,没有什么你是无法实现的。Pool、Hook、Filter等都是非常简单的实现,PHP要实现这些功能却有点难度咯。其中WordPress博客系统上的Hook、Filter应用比较多,正是因为WordPress提供了这样的开发模式,它的插件数量非常的多,并且要开发一个WordPress也是很简单的事情。重点是写WordPress插件,不需要修改它系统本身的代码。正是这样插件才能广泛的流行和安装。如果插件需要修改系统代码来实现,这只能算是个 Hack ,这就无法做到很好的兼容性了。

  Yo2 正在努力开发一个LUA的WEB开发框架, 进一步降低从PHP转入LUA开发的门槛。

  贴一个很简单的LUA代码示例:

function aF()
    return 'b'
end

function aF_filter(b)
    if b == 'a' then return 'aaa' end
    return 'cc'
end

addFilter('aF',aF_filter)

print(aF())

  函数aF的返回值将被aF_filter过滤为cc输出。其中 add_filter 是LUA开发框架提供的函数(框架还包括数据库操作、模板操作、分布式文件操作等等功能唷~)