华为|巴西的编程语言都占领全世界了,中国怎么就不行呢?( 二 )



恰恰是《Dr. Dobb’s Journal》这本深受程序员喜爱的杂志的报道 , 彻底改变了Lua的命运 。
时任《冥界狂想曲》这款游戏的首席程序员Bret正陷于苦闷当中 。

他希望有一种自定义的脚本语言 , 把游戏引擎和逻辑给分离开 , 这样就可以轻松地编写游戏逻辑:
actor guybrush walk-to banana-treewait-for-actoractor guybrush say-line “Mmm bananas...”actor guybrush face-cameraactor guybrush say-line “Wish I had a banana-picker”

但是 , 自己公司的脚本语言SCUMM却不够用 , 苦恼之时 , 同事给他递来一期《Dr. Dobb’s Journal》杂志 上面有正是关于Lua的介绍 。
Bret看后 , 激动万分 , 如获至宝 , 立刻给Lua开发团队发了一封邮件 , 大意如下:


Lua牛掰!
你好啊 , 我读了Dr. Dobb’s关于Lua的文章 , 它在每个方面都超出了我的期望 , 它的优雅和简单把我给震住了 , 祝贺你们开发了这么一个思虑周全的编程语言 。
对了 , 我是卢卡斯艺术娱乐公司的程序员 , 正在开发一个冒险类游戏 , 我决定用Lua来替换掉公司的脚本语言 。
Lua的开发者看到这封来自美国的邮件肯定是非常开心的吧 , 全球化的策略终于看到了一点成功的曙光 。
Bret说到做到 , 他真的在《冥界狂想曲》中使用了Lua , 并且还实现了Lua中并不支持的协程 。
但是 , 只有一个游戏采用Lua并不能说明什么 , 几年后的事情才真正让人震撼 。
31998年 , 游戏开发者的盛会Game Developers’s Conference在美国的圣何塞召开 。
《绝地武士》游戏引擎的程序员 , 也卢卡斯艺术娱乐的Rob Huebner作为主讲 , 讲述了如何在游戏中使用脚本语言 。
这个主题特别吸引人 , 现场爆满 , 来了两三百人 。
Rob讲解了脚本语言给游戏开发带来的好处 , 也不厌其烦地介绍了如何从头实现自己的脚本语言:词法分析、语法分析、优化等等 。
听众有点儿沮丧:实现一个这样的脚本语言太难了 。
在提问环节 , Rob来了一个大转折 , 他指着Bret说:其实不用那么麻烦 , 有现成的 , 他已经在《冥界狂想曲》这款流行的游戏中使用Lua了 , 让他来说说吧 。
Lua ? 这是个什么东西?大家面面相觑 。
Bret站了起来 , 说了自己的经历:Lua这个脚本又小又快 , 我只用了1天就嵌入到了游戏中 。
这一下子把整个房间的激情点燃了 , 游戏程序员们纷纷在本子上做记录 , 围着Bret , 向他打探Lua的细节 。
经过此役 , Lua一战成名 , 在游戏界迅速成燎原之势 , 《半条命》、《模拟城市》、《魔兽世界》、《愤怒的小鸟》等一大批著名游戏都开始使用Lua 。

随着Lua知名度越来越高 , 更多的人认识到 , Lua满足了一种全世界广泛存在的一个需求:让用户改变软件的行为 , 而不用深入到软件的内部 。
不仅游戏可以用Lua , 其他领域也可以用:比如TeX排版设置语言实现LuaTeX、键-值数据库Redis、文本编辑器Neovim和Web服务器Nginx 。 甚至Google拼音输入法都支持Lua脚本 。
Lua还可以嵌入到硬件当中 , 三星的电视 , 思科的路由器 , Verizon的机顶盒 , 德州仪器的计算器 , 罗技的键盘都是Lua大施拳脚的场所 。
随着物联网的发展 , Lua肯定还会有爆发式增长 。
4和企业合作-->找到广泛存在的需求-->发明编程语言-->面向全球推广-->返回国内 。
Lua的发明者走出了一条漂亮的“曲线救国”的道路 。
如果Lua诞生在创新的高地 , 如美国硅谷 , 它的发展肯定会快得多 , 因为在这里有项目、有人、有组织 , 能帮助它提升在全球的知名度 。