老尸 发表于 2015-1-14 20:47:22

CentOS教程之为何我选择 Lua ?

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!在这篇文章中,我将向你说明为何要应用Lua。我写这篇文章最后的念头是因为Lua邮件列表中的一则新闻“whyisntLuamorewidelyused?”。针对这个新闻的答复各类各样,有的说是由于缺乏类库,而我更赞成别的一个概念,那就是年夜部门人都不爱好本身着手(doityourself)的方法来处理成绩。我经常把Lua比作ArchLinux。这也就注定了Lua是一个小众产物。上面我将列出几条为何我要应用Lua的来由:


1.可以和C/C++集成
我的编程阅历不长,然则我曾经应用过许多种说话了,包含Lisp,Scheme,Python,Perl,Bash,VBA,SQL等等。然则它们没有一个可以像Lua那样可以和C混着应用。C说话的API异常的清洁和直不雅,你花一个下昼的时光就能够上手了。假如你对这个感兴致的话,你可以看看“PILssectionontheCAPI”。

为何这个特征很主要呢?起首,假如你有现成的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让我对盘算机迷信的全体懂得有所进步。好比说,这篇文章是关于Lua5.0的完成的,让我对虚拟机是若何完成的有了一个懂得。浏览源代码让我年夜开眼界。我以为这一切都得益于Lua有条不紊的改良

4.函数式编程
Lua供给了函数式编程的架构,让编程加倍的风趣。例如anonymousfunctions,higherorderfunctions,lexicalclosures,propertailcalls等等。这些特征不是说话的一些语法糖,而是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的方法来拜访模块中的变量。我这里提到Python是为了强调分歧的地方,解释Lua更轻易应用。

这也让你进修Lua的语法加倍疾速。你不消担忧list和dictionary、package有甚么分歧。

6.分歧性
不知你能否意想到,Lua长短常分歧的说话。它的许多功效都是做的适可而止。好比说,Lua没有“for”轮回直到Lua4.0,也就是Lua说话宣布7年今后。这是由于while轮回更加通用,并且语法更简练。Lua的开辟团队绝对来讲比拟守旧,他们不接收patch,所以Lua的退化比拟迟缓,然则比拟安稳。你晓得一切的功效都是有计划的在停止,也就意味着你不克不及期望你所等待的功效可以被很快的完成。

7.可移植性
关于这一点我不会讲许多细节,然则Lua根本上可以在任何情况中运转。Lua的代码是依照“CleanANSIC”的尺度编写的,所以假如你有一个C的运转情况,你就能够运转Lua。

总结:Lua是一门异常简略然则壮大的说话。
欢迎大家来到仓酷云论坛!

小女巫 发表于 2015-1-16 23:02:40

CentOS教程之为何我选择 Lua ?

我想即使Linux高手也很难快速准确精练的回答你。

简单生活 发表于 2015-1-25 18:22:24

未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。

透明 发表于 2015-2-3 17:19:40

眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。

爱飞 发表于 2015-2-9 05:49:50

直到学习Linux这门课以后,我才知道,原来我错了。?

飘飘悠悠 发表于 2015-2-27 04:47:09

在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。

愤怒的大鸟 发表于 2015-3-8 23:03:13

未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。

分手快乐 发表于 2015-3-16 21:45:51

其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。

第二个灵魂 发表于 2015-3-23 09:20:32

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
页: [1]
查看完整版本: CentOS教程之为何我选择 Lua ?