1998年10月24日,伴随着火箭的轰鸣,美国宇航局的深空一号成功升空。
深空一号肩负着NASA的重要使命,旨在验证未来行星际探测所需的十几项新技术。
在深空一号飞行了2.4亿公里以后,突然发生了一个故障,有个进程不工作了。
地面人员非常紧张,赶紧召来软件团队商量对策。
软件团队在会议绞尽脑汁,激烈争论,最后决定对深空一号的软件进行调试。
调试?到底该怎么调试?
软件可不是部署在某个机房里,而是位于距离地球2.4亿公里的航天器中,距离之远即使是光也需要半个小时才能跑个来回。
但是NASA的工程师们却成功地解决了这个问题,原因就是深空一号上的控制软件是用Lisp写的!
1
要想了解整个事情的来龙去脉,必须把时间拉得长一些。
1988年,罗恩来到NASA的JPL(喷气推进实验室,钱学森是创始人之一),在自主机器人的人工智能组工作。
JPL当时制定了一个火星探测的计划,希望能到达火星,并且采样返回。
任务庞大而艰巨,预算有数十亿美元,罗恩他们要做的是火星车原型的研制。
这些原型有大有小,有重达一吨,像SUV的Robby :
也有小巧玲珑,像个玩具车的Tooth:
为了让火星车能自主避障,在火星漫游,必须要给它配套一个强大的软件,让它具备一个强大的大脑。
用什么编程语言呢?
在80年代,没有Java, 没有Python,没有JavaScript,航天器主要是用汇编编写的。
而罗恩他们决定尝试一个新语言:Lisp。