lua学习之前传

脚本语言?

  由于业务需要,手游开发逻辑由脚本语言lua实现,所以从此开始lua学习之路。接触lua之前对脚本语言的认识停留在下面的几个关键字:

  bat批处理,html貌似是脚本语言?解释型语言?

认识太浅薄了,先来了解下脚本语言。

 首先知之为知之,不知百度(维基)之。wiki的解说如下:

  脚本语言(Script language,scripting language,scripting programming language)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。

好吧,也就是它是编写-运行的解释型语言。

简单就是它的特性:

  • 语法和结构比较简单
  •   学习和使用比较简单
  •   修改完成后保存下,就可以重新运行,不需要bulabula的编译了,容易修改。

不过简单的情况下,性能当然不如C,C++等编译型语言。

那么为什么网游开发要用脚本语言?

百度下的资料只有一些边边的理由:WOW伟大的自定义界面系统的关系,脚本语言闻名一时,或者简单的说用lua开发比较适合网游经常要修改的节奏。

这些理由当然是不够的,幸好找到了网易大神赖勇浩的CSDN博客,解释very的好,所以摘录如下:

  脚本在游戏业中找到自己的一席之地,是因为网游市场需要一个快速开发方案来避免C/C++开发带来的项目高成本和高风险。那么,具体而言脚本相对于C/C++这类编译型语言有什么优势呢?

  1. 易于学习、代码可维护性强。通常脚本的语法都非常简单,也没有太多高阶的特性,学习的门槛较C/C++低得多。如Python号称只需要花一个下午即可学会。这使得游戏开发公司可以招聘完全没有脚本编程经验的新手,通过低成本的培训,迅速走上工作岗位。除易于学习外,脚本代码也有更好的可维护性(尽管写出没有人看得懂的Lua代码也非难事)。因为脚本不会有很多高阶特性(如C++里的模板元编程就是高阶特性),所以脚本程序员有更多精力关注架构、模式、重用和测试,从而提高了代码的质量;相应地,没有那么多让人困惑的高阶特性,也使得代码“简洁”不少。
  2. 降低开发成本。如第一点所言,脚本易于学习,使得游戏开发公司可以大量应用新手,是降低成本的有效手段。那么如何来保证新手写的代码的质量呢?这需要我们辩证地看问题。从经验上看新手写的程序无论用什么言语,bug肯定不少。但一个C新手编写的代码和Python新手编写的相同功能的代码相比,C版本应该会有更多的bug。由于C程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除bug方面脚本也有先天的优势,这使得脚本在低成本的同时能够更好地保证代码质量。
  3. 形成人才壁垒。软件开发行业是一个动荡的行业,无数的程序员都在跳槽和谋划跳槽的状态中过日子。使用脚本开发,形成人才壁垒是游戏业减少人才流动的有效手段。因为脚本现在除了在游戏业中大红大紫外,并没有在其它行业形成杀手级应用(虽然在web开发方面也有燎原之势,但终究不似在游戏业中的地位高尚)。这就让游戏程序员很少会考虑非游戏业的职位,而其它行业的程序员却可能会因为脚本的易学习性转投游戏业。脚本除了能有效形成行业间的人才壁垒外,也能有效地形成企业间的人才壁垒。因为现有的脚本种类繁多,不同公司往往有不同的选择,甚至有些公司使用自己开发的脚本语言。程序员从公司A跳槽到公司B可能就要学习使用另一种脚本,这提高了跳槽的成本,从而使人才流动减少。

  其实第3点我认为现在效果差了,毕竟程序员不可能只懂一门脚本语言,都不是笨蛋,脚踏N条语言才有跳槽的本钱。再说天朝的程序员都有一颗跳槽的心,和他是不是脚本程序员无关了。(个人吐槽)

他的博客中还提到了脚本发展趋势,网游的生产组装化将导致脚本语言的普及。博文写于2007年,现在看来已经是了,网游是脚本语言的时代。不然不会有此博客了。

  
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值