博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是lua?
阅读量:7101 次
发布时间:2019-06-28

本文共 1272 字,大约阅读时间需要 4 分钟。

 lua是门新兴的语言,额,其实也不是刚出来,好几年前大家就在学怎么用了。它的出现主要是搭了游戏产业的快车,也多被用来做游戏开发。

 

关键是,已经连续好几个月,lua的使用频率都在编程语言排行榜上跻身前20了!

 

先讲讲我知道的一些应用。

首先是在 iOS 下写游戏,《愤怒小鸟》就是用lua写的;同时,也好多用其它语言在为Iphone写游戏的程序员,添加lua到游戏开发中去,让过程更简单。当然,Lua最著名的应用是在暴雪公司的网络游戏《魔兽世界》中----在网上可以找到好多用lua做的wow小工具。

然后是一些小的程序,这个和我的目标一致,一些简单的测试用例可以用lua来写,比如可以在百度找得到的‘康泰串口程序’,还在百度文库发现一篇,有在用lua开发测量仪器上位机测试程序的例子(好处是用c写完一些固定的调用后,用lua简单配置一下,又是另外一个测试程序,写完就可以用)。

还有在嵌入式开发上的应用,在C程序中田间C实现的解释器,程序大小只增加200K!要知道,游戏开发里面,lua是留给不懂程序开发的策划用的,你就能想想,lua往上的开发会是怎样的容易。在思科开源路由器方案中openwrt中,有开发一个叫luci(Unified Configuration Interface)的config接口,暂时不知道里面是怎么用的,但是,它提供的web服务是基于lua。还有,有人讲,busybox也打算开发一个lua版本的。

 

讲点其它细节。

lua是动态语言,它的解释器现在有用各种主流语言完成的各种版本,c、java...应有尽有。你的程序需要做config吗?lua应该是个不错的选择。或者,找现成的lua解释器过来,你可以再添加好你的库,完全直接执行脚本也行。

lua的解释器最初是用c实现的,lua的开发者说,lua最初是被开发用来做C不擅长的事。

有人把它和python作比较,可能是应用领域的关系,那个家伙讲,他觉得lua会比python好用。在lua的官网可以看到他们吹水记录,不贴连接了。

网上下的某PPT里这么讲,Lua最引人注目的特点:

--以极小 的体积和简单 的语法提供相对全面的功能。
--以简洁 的API实现与宿主语言最方便 的接口。

 

不过,希望用它干什么‘大事’的可能会有些失望。它的开发者是这么讲的:

Lua 没有打算被用来进行大型的程序设计,相反,Lua 定位于中小型程序设计,通常是作为大型系统的一部分,常用于一个或少数程序员开发的情况,甚至是由非程序员进行的开发。所以,Lua 避免了过分的冗余和过多的人为限制。如果你不希望一个对象的内部结构被访问,那么就不要去访问它们。

 

“以极小的体积和简单 的语法提供相对全面的功能”这句还是很诱惑人的,你可以慢慢去发现它到底提供了哪些“相对全面的功能”。

如果是想学习一门C/C++以外的其它语言玩玩,推荐lua。

 

好吧,看到有人做的 Lua Template 解释器:https://github.com/henix/slt2。这是要拿来做 WEB 应用的节奏。

转载地址:http://oxkhl.baihongyu.com/

你可能感兴趣的文章
数据结构学习笔记【持续更新】
查看>>
2018AI行业地图丨CB Insights:这100家AI初创公司募资额超百亿
查看>>
【bootstrapValidator 不验证】使用bootstrapValidator 验证效果不起作用
查看>>
机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
查看>>
easyui datagrid 列的内容超出所定义的列宽时,自动换行
查看>>
jenkins构建一个maven项目[五]
查看>>
Python调用C/C++程序
查看>>
《七年失败的程序之路》读后感
查看>>
html中label宽度设置、非替换元素和替换元素
查看>>
iOS编程(双语版)-视图-Frame/Bounds/Center
查看>>
C++ code Summary --- 2015.11.8
查看>>
liunx之:wps for liunx的安装经验
查看>>
使用exp导出报错EXP-00091
查看>>
一个开发需求的解决方案 & Oracle临时表介绍
查看>>
【转】maven仓库快速镜像
查看>>
STL - 移除(remove)和释放(erase)集合元素
查看>>
AI 发展简图(1950~2016)
查看>>
SAP HUM HUPAST 界面里的Packing Station何处定义?
查看>>
C/C++使用VOID指针保存结构体数据到二进制文件并且读取
查看>>
Servlet Servlet的装载三种情况
查看>>