OpenWrt 下的开发语言
一般情况下,以嵌入式设备开发为例,推荐使用C
和Lua
作为开发的首选语言;
横向对比
C
的执行效率很高,非常适合做底层开发;Lua
虽然是解释性语言,执行效率也很高,其解释器非常小,小于200KB,特别适合嵌入式等存储资源紧张的环境;- 而
C
适合做硬件与底层功能的研发,Lua
则适合做上层的应用研发。
举例说明
示例一:研发一个TCP Server
使用C
,即使是非常熟悉C
和Socket
的编程人员,也需要30分钟的时间;
而使用Lua
,即使是新手,在依赖环境满足的情况下,也只需要15分钟的时间就能完成。
示例二:处理Fast-CGI
请求
使用C
来实现,需要大量的精力处理越界,并需要提前限定许多边界条件才能完成最基础的字符串解析;而使用Lua
来实现,从STDIN
读取数据开始,到正常解析一条命令,不会超过50行代码。
以上两个例子,不是说Lua
就比C
好,而是想告诉读者,针对不同的任务,需要选择合适的语言来实现,事半功倍。
示例三:处理“封包”和“解包”操作
使用C
来实现,可以使用union
和struct
来处理“封包”和“解包”操作,读取和解析都很方便;
使用Lua
来实现,则可以使用table.concat
方法来处理“封包”操作,使用string.sub
来处理“解包”操作,也很方便。