计算机技术最早是由美国佬发明出来的,世界上的绝大多数主流编程语言也是诞生在北美或者欧洲的发达国家。即使是现在,中国或者印度这样的发展中国家的编程开发工作者也没有拿得出手的编程语言。但是唯有一个发展中国家是例外,远在南美洲的巴西人,在踢足球和跳桑巴之余,发明出了一款风靡全世界的编程语言——Lua。
一、Lua的诞生
Lua是由巴西的一个委员会设计的,这个委员会只有三个人,他们都是里约热内卢的天主教大学的同事:RobertoIerusalimschy,LuizHenriquedeFigueiredo,和WaldemarCeles。
里约热内卢天主教大学和巴西石油公司有一些合作项目,需要一个领域特定语言(DSL)来处理数据输入和数据配置。
当时有的编程语言要么不容易嵌入,要么语法过于复杂。三人找不到合适的编程语言,于是年大家一合计,干脆创造一个新的编程语言吧!于是Lua就诞生了。
Lua短小精悍,直到Lua5.3也只有不到1万行C代码!包含了I/O功能的二进制包也只有多K。(顺便说一句,想深入学习C语言和语言设计的,Lua是个极好的范例)它移植性很好,有着清晰而简单的语法,是一个非常优秀的、可扩展的嵌入式语言。
二、Lua的困境
Lua虽然在巴西石油公司用得不错,但是出了石油公司就默默无闻了。在巴西本地,很少有程序员对Lua感兴趣,无论是偏见还是实用主义,大家都倾向于向外看,寻求世界上最流行的技术来解决问题,这点和中国的情况很相似。
三、Lua初出茅庐
在巴西本国发展受阻之后,Lua团队分析认为:“Lua必须在国外取得成功才能在国内获得认可。”年,先后在美国的《Software:PracticeExperience》杂志和《Dr.Dobb’sJournal》杂志发表文章,介绍Lua这门可扩展的嵌入式语言。
当时一位叫Bret的游戏程序员正陷于苦闷当中。他希望有一种自定义的脚本语言,把游戏引擎和逻辑给分离开,这样就可以轻松地编写游戏逻辑。但是,自己公司的脚本语言SCUMM却不够用,苦恼之时,Bret发现了《Dr.Dobb’sJournal》杂志上面关于Lua的介绍。Bret看后,激动万分,如获至宝。
随后在Bret在游戏编程中使用了Lua,并且还实现了Lua中并不支持的协程。虽然只有一个游戏使用Lua语言,很难说明什么,但这次确实是Lua首次在世界上展露头角。
四、Lua的继续发展
直到年,游戏开发者的盛会GameDevelopers’sConference在美国的圣何塞召开。在这次会议上Bret给各位同行介绍了Lua语言:Lua这个脚本又小又快,我只用了1天就嵌入到了游戏中。
这一下子把整个房间的激情点燃了,游戏程序员们纷纷在本子上做记录,围着Bret,向他打探Lua的细节。经此一役,Lua一战成名,在游戏界迅速成燎原之势,《半条命》、《模拟城市》、《魔兽世界》、《愤怒的小鸟》等一大批著名游戏都开始使用Lua。
五、Lua的大放光彩
随着Lua知名度越来越高,更多人认识到了Lua满足了一种全世界广泛存在的一个需求:让用户改变软件的行为,而不用深入到软件的内部。不仅游戏可以用Lua,其他领域也可以用:比如TeX排版设置语言实现LuaTeX、键-值数据库Redis、文本编辑器Neovim和Web服务器Nginx。甚至Google拼音输入法都支持Lua脚本。
Lua还可以嵌入到硬件当中,三星的电视,思科的路由器,Verizon的机顶盒,德州仪器的计算器,罗技的键盘都是Lua大施拳脚的场所。随着物联网的发展,Lua肯定还会有爆发式增长。
六、Lua的发展对中国开发者的启发
和企业合作--找到广泛存在的需求--发明编程语言--面向全球推广--返回国内。Lua的语言的发明者走出了一条漂亮的“曲线救国”的道路。实际上如果Lua要是诞生在美国硅谷,可能发展用不着这样曲折。
不过好在当今的互联网已经非常发达,只要创作者能够做到像Lua一样,漂亮的解决一个广泛存在的问题,并真正面向全球,互联网自动就能产生快速传播的作用。
遗憾的是,虽然中国的互联网产业发展了二十多年,热闹非凡,到目前为止,中国还没有一个世界流行的编程语言,不但没有,还出现了“木兰”这样套壳造假的丑闻。希望有朝一日,国产的编程语言能堂堂正正的崛起!