现在的程式开发人员穿着总是一派轻松,手边不乏提神饮料,大尺寸萤幕永远开着多组 code 视窗,并伴随着喀搭喀搭的键盘敲击声。但在 1985 年,当时的开发人员需要先在纸张上写下程式,经过手工转译为程式语言后,才会输入至电脑内。对照目前环境,30 年不到的时光里,差异宛如隔世。

程序员 John Graham-Cumming(以下简称 John)在自己网站中发表了一篇“How I coded in 1985”的文章,述说当时在纸上手写 code 的那段往日时光,并展示当时的亲笔手稿。

当年某间专门生产自动化贴标签机器的公司,面临机电、输送带等自动化工程整合,需要有人撰写控制程式而找上了 John 就读的学校。当时 John 负责在 KIM-1 单板电脑上编撰程式语言,KIM-1 以 MOS 6502 处理器为基础,使用的程式语言为 Tiny Basic。

▲KIM-1 具备计算机般的输入装置,而整个 MOS 6502 也因为价格便宜,成为当时许多嵌入式系统采用的控制核心元件。

由于当时的 KIM-1 缺乏组译器(Assembler)存在,而 KIM-1 的输入装置只有一组如同计算机的 16 进位小键盘与 6 码显示萤幕,这代表从撰写程式到输入机器的流程极为复杂,所有的编码都只能以手工方式输入。

John 必须先在纸上写出 code(蓝色文字)后再转译为 machine code(红色文字),并制定每一组指令在内存上的绝对与相对位址。而手边没有电脑的 John 还要负责所有 code 的 16 位元计算,完成整个程式码后,才将 machine code 手动输入至 KIM-1 内部。

▲手写编码的过程复杂,在最终版本出现前,应该会浪费一堆纸涂涂改改。

对当时的程式人员来说,整个开发过程实在很辛酸,KIM-1 只具备非常基本的 debug 功能,一旦出错要修改就不是这么容易,因此绝大部分的 debug 过程都是在 John 的脑袋中模拟执行。

事实上,KIM-1 在1985年时已经不是顶尖的单板电脑,但诸多嵌入式系统仍会采用这种低价的解决方案。这也让 John 学到了一生受用的两件事:

即便不从事程式开发工作,相信这两条原则放诸四海而皆准。 John Graham-Cumming 的经验也让人再次赞叹,短短不到30年的科技发展是如此迅速;而未来又会如何发展呢?让我们继续看下去~

比对本译文与台湾当时的时空环境 1985年是民国74年 我当兵前1983/民国72年 当时台湾已外销APPLE II clone版数百万台了. 我毕业专题即在 APPLE II 上制作 add-on 界面卡 它的CPU 就是 6502 都早就是用键盘敲程式的.

原文作者是那一国的(共党铁幕?) 还在手写是有点夸张!