Lua学习笔记

转载 2016年08月29日 09:18:33

http://m.blog.csdn.net/blog/wsx199397/30122711 


网上经常看到别人拿luapython来进行对比,但是,本人认为,luapython根本就不具有可比性.原因如下:

    1、两者的定位不同。python的定位在于自身的独立开发,即是说python定位于自己能解决所有的问题。lua定位在与其它的代码,尤其是C++代码进行相互配合的编译,单独的Lua本身没有任何的意义。

   2、站在解决问题的角度上看。python依靠自身越来越强大的库,让编程者能实现越来越多,越来越复杂的问题。lua本身则必须与其它的编译语言结合,才能解决问题。以C+++lua来举例。单独的C++,因为C++的复杂性,在其解决问题提供方便的同时,也给程序员带来了很大的麻烦,这些麻烦主要有两个方面:1C++本身,特别是能用好C++,对程序员就来说就是一个很高的要求。2,在解决复杂问题时,C++程序结构的复杂性和逻辑实现的复杂性,给程序员对程序的改进和维护带来了很大的麻烦。而C++Lua的结合,让C++可以只负责为lua提供各种基本的功能函数库,而Lua调用这些库来实现各种逻辑功能。这种分工可以让程序员将程序中的基本代码库和逻辑实现代码进行分离,使程序的效率和可维护有了很大的提高。所以,如果真的要站在解决问题的角度来对pythonlua进行对比的话。实际上,是C++python进行对比,而与lua无关。

    3pythonC++对比,我觉得pythonC++对比的优势就在于其所提供的基本库,大大的降低了程序复杂度与可维护性对程序员本身的要求。比如,同样的功能,如果是C++来做的话,可能其程序员必须具备三年的经验,如果是python来做,而python又有解决问题所需要的库的话,一个具有一年程序经验的程序员可能就能完成了。但是,同样的,如果是C++Lua结合来解决问题的话,可能就只需要半个高级程序员和一个只有c语言一年经验的程序员就可以了。半个高级程序员负责提供lua的函数库,另一个程序员,只需要用这些代码库实现逻辑就行了。

    综上所述,C+++lua的开发模式,和python源代码库开发+python脚本开发模式其实是一样的。但是站在程序员的角度上来说,C+++lua就更为简单一些,因为除去基本的lua解释代码外,C++可以为lua动态提供各种函数库。而python程序员则必须受制于python所提供的各种功能库。所以,如果解决一些具有普遍性和重复性的问题时,python是有优势的,因为有很多的代码可以不用重写,而C+++lua则必须重构。如果是解决一些非普遍的问题,如果python本身没有提供解决这些问题的库的话,python程序员,就必须走回C++的老路了,哈哈。

相关文章推荐

lua学习笔记

  • 2014年03月05日 11:15
  • 13KB
  • 下载

用lua写Android界面学习笔记

问题描述: 有时候我们的app可能需要动态的更新一个页面,不只是单纯的内容,有可能布局也要改变,所以就考虑到开发过程中用lua脚本动态加载的Android页面,以便可以不重新发布apk,通过服务端控制...
  • AuthorK
  • AuthorK
  • 2016年01月14日 15:24
  • 2821

Lua中文教程学习笔记 (2) 表达式

Lua中文教程学习笔记 (2) 表达式 Lua 中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表构造。 算术运算符 二元运算符:+ - * ...

Lua学习笔记之表达式

Lua学习笔记之表达式 1、  算数运算符 二元运算符:+-*/^(加减乘除幂) 一元运算符:-(负值) 这些运算符的操作都是实数。 2、  关系运算符 、=、==~= 这些操作符返回结...

Lua学习笔记 第八章 编译、执行与错误

Lua是一种解释型语言,区别解释型语言的主要特征并不在于是否能编译他们,而是在于编译器是否是语言运行时库的一部分,即是否有能力执行动态生成的代码。   8.1编译 在Lua中,dofile函数是...

6.lua学习笔记:迭代器和for泛型

1. 迭代器与Closure:     在Lua中,迭代器通常为函数,每调用一次函数,即返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置和下一次遍...

Lua学习笔记 第十六章 面向对象编程

Lua中的table就是一种对象。首先,table与对象一样可以拥有状态;其次,table与对象一样拥有一个独立于其值的标识(一个self)。最后,table与对象一样具有独立于创建者的生命周期。 ...

Lua学习笔记 第二章 类型与值

lua是一种动态类型语言;lua中的8种基础类型是: nil, boolean, number, string, userdata, function,thread, table 函数type()...

Lua学习笔记 第二十一章 I/O库

I/O库为文件操作提供了两种不同的模型,简单模型(simple model)和完整模型(complete model)。简单模型假设有一个当前输入文件和一个当前输出文件,它的I/O操作均作用于 ...

Lua学习笔记(四)

九、编译、执行与错误 Lua尽管是一种解释型语言,但也允许它在运行源代码之前预编译成一种中间形式。但解释型语言的特征在于,编译器是语言运行时的一部分,并且有能力执行动态生产的代码。因此执行编译产生的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lua学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)