在这篇文章中,我将向你解释为什么要使用Lua。我写这篇文章最初的动机是由于Lua邮件列表中的一则消息 “why isn't Lua more widely used?” 。针对这个消息的回复各种各样,有的说是因为缺少类库,而我更赞同另外一个观点,那就是大部分人都不喜欢自己动手 (do it yourself)的方式来解决问题。我常常把Lua比作Arch Linux。这也就注定了Lua是一个小众产品。下面我将列出几条为什么我要使用Lua的理由:
公司主营业务:成都网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出化德免费做网站回馈大家。
1. 可以和 C/C++ 集成
我的编程经历不长,但是我已经使用过很多种语言了,包括Lisp,Scheme,Python,Perl,Bash,VBA,SQL等等。但是它们没有一个可以像Lua那样可以和C混着使用。C语言的API非常的干净和直观,你花一个下午的时间就可以上手了。如果你对这个感兴趣的话,你可以看看“PIL's section on the C API” 。
为什么这个特性很重要呢?首先,如果你有现成的C/C++类库的话,你可以很容易的在Lua中调用这些API。或者你也可以写一个脚本让Lua在C中执行。这也意味着Lua的程序不会有速度问题。如果你还是觉得Lua不够快的话,你可以用C完全重写这段代码。虽然别的语言的程序也可以用C重写,但是我还没有发现谁能比Lua更方便的做到这一点。
2. 快速、简洁
相比于其他语言,Lua的实现是非常高效的。也许是因为Lua使用的是“基于寄存器的虚拟机” 而不是基于堆栈的虚拟机。或者说使用Lua的开发者都非常的牛逼。不管怎样,你几乎不需要顾虑Lua代码的性能问题。
但是如果你对性能还是不满意的话,你可以尝试使用LuaJIT:
“LuaJIT是公认的运行最快的动态语言的实现,并且对内存的使用少,虚拟机占用低于125K,JIT编译器占用不到85K (在x86环境中)。”
LuaJIT可以几乎和C代码饿速度媲美。不管怎样,如果你还是对速度不满意的话,你可以试试我在***点中提出的建议。
3. 教育作用
虽然这不是一个编程语言的功能,但是我发现使用Lua让我对计算机科学的整体了解有所提高。比如说,这篇文章是关于 Lua 5.0 的实现的,让我对虚拟机是如何实现的有了一个了解。阅读源代码让我大开眼界。我认为这一切都得益于Lua有条不紊的改进
4. 函数式编程
Lua提供了函数式编程的架构,让编程更加的有趣。例如 anonymous functions, higher order functions, lexical closures,proper tail calls等等。这些特性不是语言的一些语法糖,而是Lua从底层就整合了这些特性。比如说,Lua的每一个方法都是一个值(比如数字2,或者字符串“ktr”),也就意味着每一个方法都是匿名的。你只要给它取个名字,然后你就可以调用它了。你可以给print重新赋值:
print = math.sin
你可以利用这个功能创建沙箱。如果print是一个危险的操作,你可以替换成你自己的print方法或者从全局中删除这个方法。
5. 任何东西都是一张表
在Lua中,任何一个变量类型都是一张表,例如Array,Hash,“module”或者全局变量等等。也就是说你可以“require”一些模块(类似Python的import语句)并且把结果当错table来处理。在Python中,你可以 __import__('...') 一些模块,然后返回值的变量就可以通过类似 var(module) 的方式来访问。在Lua中,你可以通过 module[var] 的方式来访问模块中的变量。我这里提到Python是为了强调不同之处,说明Lua更容易使用。
这也让你学习Lua的语法更加快速。你不用担心list和dictionary、package有什么不同。
6. 一致性
不知你是否意识到,Lua是非常一致的语言。它的很多功能都是做的恰到好处。比如说,Lua没有“for”循环直到Lua 4.0,也就是Lua语言发布7年以后。这是因为while循环更为通用,而且语法更简洁。Lua的开发团队相对来说比较保守,他们不接受patch,所以Lua的进化比较缓慢,但是比较平稳。你知道所有的功能都是有规划的在进行,也就意味着你不能指望你所期待的功能可以被很快的实现。
7. 可移植性
关于这一点我不会讲很多细节,但是Lua基本上可以在任何环境中运行。Lua的代码是按照“Clean ANSI C”的标准编写的,所以如果你有一个C的运行环境,你就可以运行Lua。
总结:Lua是一门非常简单但是强大的语言。
原文链接:http://www.oschina.net/news/26081/why-i-choose-lua
【编辑推荐】
本文标题:为什么我选择Lua?
当前网址:http://www.mswzjz.com/qtweb/news2/191002.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联