OpenWrt 下的开发语言

一般情况下,以嵌入式设备开发为例,推荐使用CLua作为开发的首选语言;

横向对比

  • C的执行效率很高,非常适合做底层开发;
  • Lua虽然是解释性语言,执行效率也很高,其解释器非常小,小于200KB,特别适合嵌入式等存储资源紧张的环境;
  • C适合做硬件与底层功能的研发,Lua则适合做上层的应用研发。

举例说明

示例一:研发一个TCP Server

使用C,即使是非常熟悉CSocket的编程人员,也需要30分钟的时间;

而使用Lua,即使是新手,在依赖环境满足的情况下,也只需要15分钟的时间就能完成。

示例二:处理Fast-CGI请求

使用C来实现,需要大量的精力处理越界,并需要提前限定许多边界条件才能完成最基础的字符串解析;而使用Lua来实现,从STDIN读取数据开始,到正常解析一条命令,不会超过50行代码。

以上两个例子,不是说Lua就比C好,而是想告诉读者,针对不同的任务,需要选择合适的语言来实现,事半功倍。

示例三:处理“封包”和“解包”操作

使用C来实现,可以使用unionstruct来处理“封包”和“解包”操作,读取和解析都很方便;

使用Lua来实现,则可以使用table.concat方法来处理“封包”操作,使用string.sub来处理“解包”操作,也很方便。

results matching ""

    No results matching ""