有没有什么上古的程序代码至今依然没被更替?
很有意思的话题,看到这个话题第一眼我脑海中浮现这样一幅画面:
一位白发苍苍、走路颤颤巍巍的老爷子,步履蹒跚地爬上阁楼,艰难地翻出一本页已泛黄的厚厚的书,慢慢拂去上面沉积多年的尘埃,故事就这样开始了。
很久很久以前,西方资本主义国家发明了程序、代码用以发展科技。所以,至今依然没被更替的上古程序代码,本文举两个骨灰级程序做代表。
MOCAS
公开资料能查到的、公认的、最古老的、目前仍在运行的计算机程序是 MOCAS,读音:猫卡斯。
1958 年,美国国防部推出了一套电子合同管理系统,该系统被称为机械化合同管理服务(Mechanization of Contract Administration Services),即 MOCAS。 该系统旨在使用最新的计算和输出技术(也就是计算机技术)来跟踪进行中的合同和供应商的付款。
62 年后的今天,它仍在运行。
MOCAS 由 COBOL 编写,它刚刚设计出来的时候,交互只能通过打孔卡来进行。可想而知,那个年代,存储设备还很原始,毕竟连软盘也是在 13 年后的 1971 年才由 IBM 发明出来。
啥是打孔卡?下面就是一张打孔卡的图片:
你可能会问,既然还在运行,如果想要使用的话,还是要通过打孔来交互么?
当然不是,美国国防部后来开发了一套新的用户界面来连接 MOCAS,这也就是为什么这套系统还能运行。据说这套系统现在已经集成了很多其他的软件包,这也让它更不可替代。
所以,维护这套系统的程序员是不是可以世袭了?他们写代码的时候应该不能简单的 Ctrl+C、Ctrl+V 吧,而且社区也不是很活跃,只能寄希望于文档完善了。
我之前分享过一篇“千年虫”的文章,不知道 MOCAS 是怎么躲过的千年虫危机。
Apollo-11
阿波罗 11 号(英语:Apollo 11)是美国国家航空航天局的阿波罗计划中的第五次载人任务,是人类首次登月任务,历时 8 天 13 小时 18 分 35 秒,绕行月球 30 周,在月表停留 21 小时 36 分 20 秒。还记得那句著名的“这是我个人的一小步,人类的一大步”吗?就是出自这个任务中的指令长阿姆斯特朗之口。
在Github 上搜索“Apollo 11”,你就会找到阿波罗 11 号制导计算机(AGC)中指令模块(Comanche055)和登月模块(Luminary099)的原始代码。AGC代码其实早已公之于众,最初是由技术研究员罗恩·伯基(Ron Burkey)在 2003 年上传到网络。他根据 MIT 在网上发布的原始硬拷贝的扫描件进行了转录,也就是一行一行地手动打出来。
下图为阿波罗登月计划软件工程主管玛格丽特·汉密尔顿(Margaret Hamilton),旁边是与她著作等身的 AGC 代码文件。何其震撼,尤其是在那个年代。
闲来无事可以翻翻 AGC 源码,用它学习编程的话就算了,毕竟是这种汇编类的语言,比较晦涩,不过看看几十年前的程序员写的注释,还是很幽默的。这里随便摘几段,和大家一起品读一下有趣的灵魂。
拜拜,下次再来哟。
搞定了么?搞定了,所以,返回吧。
临时的,临时的,临时的。
结果,却一直临时到了现在。
更多有趣的内容,大家可以自行去翻看源码发掘。
到如今,写下这些代码的程序员,应该都是老爷爷/老奶奶了吧。没想到在代码里竟然看到了岁月的痕迹与时间更替的沧桑感。
总结
好了,关于至今依然没被更替的上古程序代码,本文就先和大家分享这两个。
在查资料的过程中,笔者深深震撼于前辈们对计算机世界所做的贡献,用堪称简陋的工具敲出传世的代码。在开发工具越来越发达的今天,撸码效率高了,但对于大部分程序员来说搬砖更多的只是为了赚钱,敲代码变成了一个糊口的技能而已。
我们是不是该偶尔停下来,扪心自问,我那有趣的灵魂而今在何处?
祝大家搬砖顺利。
编辑 | Bottle
版权声明: 本文为 InfoQ 作者【极客时间】的原创文章。
原文链接:【http://xie.infoq.cn/article/4c0ca5ce76c23dde582d6972f】。未经作者许可,禁止转载。
评论