可能会有很多人和露露我一样,对于代码一窍不通,无法直接从这堆代码中感受到这一群完成登月计划的大神们到底有多厉害。还是让我们回到阿波罗计划的时期来看看当时计算机发展的状况: 事实上那个时候晶体管计算机还没发展完善,阿波罗飞船上包含着许多不同的计算机模块,比如避障模块是A公司产的,中央处理器是B公司产的……为了给不同的模块编程,项目组的大神们少说得掌握各个都会三五套汇编语言。就像现在动不动就能在C++,Python,Java,atv,PHP,C语言中转换自如的高级码农。 而且,大神们在做的事情是给一个火箭写代码。火箭代码可是没法在使用中发现错误再修改的呀,你总不能每改一段代码就发一颗新火箭吧,大概连马斯克也还没法做到这么壕...
只能用类似答题卡一样的打孔卡片来测试代码,想来火箭和飞船的程序员们通过纸笔度过了很多不眠不休的夜晚。
有这样一张图在程序员的圈子中广为流传,是一位著名的女程序员站在阿波罗计划的源代码旁边:
是的,她这就是大名鼎鼎的 Margaret Hamilton 玛格丽特·汉密尔顿 比起网络上永远无法分清楚长相的网红们,图片中的Margaret Hamilton才是码农心目中真正的女神。 她作为阿波罗项目中的首席工程师,领导了人类历史上最伟大的软件工程(注意,此处没有之一)。 而且“软件工程”最初的概念,也正是Margaret提出来的。 虽然Hamilton是一个码农,但她在运营中承担重要角色。她经常带她的女儿Lauren进入到计算机实验室,有一天,atv,Lauren恰好碰到一个按钮,然后把阿波罗的预发射程序植入到一个正在运行的计算机中去,这一下让整个系统卡死。
虽然上司否决了整个想法,辩称宇航员绝不会犯这种错误,但Hamilton还是在系统中添加了一段错误监测代码,以便在真实的飞行过程中能够阻止这种错误。而且在阿波罗8号中,宇航员的确犯了这么一个错误。幸运的是因为Hamilton的这段代码,避免了飞船出现死机现象。 人类实现的第一个卡尔曼滤波器(%……&#@我知道你也不懂卡尔曼滤波是什么,但是只要知道我们所有人用的手机以及现在非常火热的无人机的飞控系统,是一定少不了它的)是在阿波罗计划中实现的,作者是斯坦利施密特,不过我猜玛格丽特作为首席工程师也是参与讨论和开发的,代码一定也在这一摞厚厚的纸当中。 其实还有最重要的一点,是的我就是那么肤浅。Margaret真人特别漂!亮!!在1969年就已经引领了黑丝连衣裙的流行女神装扮,中年之后依然知性优雅。 时至今日,NASA开发的软件仍然是最前沿的。现在,NASA的许多软件将可面向公众使用,任何人都可以免费下载,修改,甚至用于商业用途。 是的,我已经打算循着代码开始造火箭了。 (责任编辑:本港台直播) |