程序员都知道的“debug”一词竟出自一位海军女上将

10001011011那是电脑的语言。

你的电脑所做的每件事,包括打电话、搜寻资料库、玩游戏⋯⋯,归结到底,不外乎零与一。归结到底是半导体晶片上微小的电晶体里是否存在着电流。零或一只不过代表断电或通电。

微软 Windows 作业系统占用硬盘20个10亿位单元空间,等于1700亿个0与1。如果将它们列印在 A4 大的纸上,堆叠起来会有四千公尺高。现在你必须透过这些纸张来工作,如果以手动的方式设定每个电晶体。姑且不论这会有多么繁琐,如果拨动每个开关需要一秒钟,那么安装 Windows,将花费五千年的时间

早期电脑真的必须使用相当类似的方法写程式。就拿后来称作「哈佛一号」(Harvard Mark 1)的自动循序控制计算机来说,它长十五公尺,高二点五公尺,布满轮子、转轴、齿轮和开关,内含五百三十英里长的电线。从成卷的打孔纸带接收到指令后便飕飕运转,像一台自动演奏的钢琴。如果你想让它解决一个新的方程式,你得先想清楚哪些开关应该开或关,哪些电线应该接到哪里。然后,你必须打开所有这些开关,插上所有电线,并且在纸带上打出所有的孔。替它写程式是让数学天才绞尽脑汁的挑战,也是一件乏味、重覆、容易出错的手工劳作。

程序员都知道的“debug”一词竟出自一位海军女上将

操作员在给哈佛一号编码

哈佛一号问世四十年后, 比较小巧而且对使用者相对友善的机器, 例如 Commodore 64,进入了校园。如果你和我年纪相仿,你可能还记得小时候打出下列字行的兴奋:

10 print‘ hello world’;

20 goto 10

接着你瞧,粗短、低解析度的“hello world”两字便填满了萤幕。你使用直觉、可辨识的人类语言给电脑下达命令,而电脑也能了解,这似乎是件小小的奇迹。如果你问为何自从哈佛一号之后,电脑会有如此大的进展,其中一个原因肯定是越来越小巧的零组件。但倘若程序设计师无法用近似人类的语言,撰写像Windows 这样的软件,将它转译成最终执行工作的1与0,我们也无法想像电脑现在所能办到的事。

程序员都知道的“debug”一词竟出自一位海军女上将

commodore 64

让这件事开始成真的东西,称作「编译器」。而编译器的故事,得从一名叫葛丽丝·穆雷·霍普的女子说起

时下有许多人讨论如何让更多女性进入科技产业。葛丽丝出生于1906年,当时没有太多人关心就业市场的性别平等问题。幸好葛瑞丝那身为寿险主管的父亲很在意,他看不出女儿有什么理由得比儿子少受教育。因此,葛瑞丝就读好学校,证明她具备数学头脑。由于她的父亲是退役海军少将,她从小就梦想加入海军,当时女人不准当兵,所以她只好勉强接受成为教授。到了1941年,珍珠港遭袭事件将美国卷入第二次世界大战。男性人才被国家征调,海军才开始接受女性人才,葛瑞丝立刻报名。

如果你纳闷海军要数学家何用,想想飞弹的瞄准就知道了。你该从什么角度和方向发射飞弹?答案取决于许多条件:目标距离、温度和湿度,以及速度和风向。这些计算并不复杂,但以人脑运算是耗时的,或许有更快的方式。当葛丽丝中尉于1944年从海军后备军官学校毕业时,美国海军对哈佛教授霍华德·艾肯(Howard Aiken)近日发明的一个笨拙玩意儿感兴趣。那玩意儿正是「哈佛一号」,海军于是派葛丽丝协助艾肯去弄清楚它能做些什么。

程序员都知道的“debug”一词竟出自一位海军女上将

艾肯对于有女性加入团队原本兴趣缺缺,但葛丽丝很快令他刮目相看,她被要求撰写操作手册,其实光是要想出该写些什么,就涉及了大量的错误尝试。一号机经常在开始运作不久后戛然而止,而且不会发出对使用者友善的错误讯息。某次因为一只蛾飞进机器里,让我们从此有了「除错」(除虫)(debugging)这个现代用语。这虫是比喻的说法,更可能发生的是扳错开关、纸带打错孔,而侦错的工作单调乏味、旷日废时。


葛丽丝和同僚开始在笔记本上写满经过测试、可重复使用的编码。到了1951年,电脑已经进步到可以在自身记忆体系统中贮存这些称作「副程序」的区块。葛丽丝后来替一家名为雷明顿兰德(Remington Rand)的公司工作,她设法说服雇主让程序设计师用熟悉的语句呼叫副程序—「像从薪俸中抽取所得税那样描述任务」,按葛丽丝的话说,而非「设法用八进制编码或各种符号撰写过程」。

程序员都知道的“debug”一词竟出自一位海军女上将

葛丽丝·穆雷·霍普

此后,层次越来越多的抽象概念,逐渐将具有人类性格的程式设计师与实体晶片的本质区隔开来,彼此朝着葛丽丝认为合理的方向迈出深化的一步,也就是解放程式设计师的脑力,使之聚焦于思考概念和演算法,而非开关和电线。

葛丽丝对于同僚一开始为何抗拒编译器自有看法,那并非因为他们在乎让程式执行得更快。不,是因为他们乐于享受身为唯一人选的威望,只有他们能代表那些只能购买电脑的凡人,跟天神般的电脑进行沟通;葛丽丝称他们为「大祭司」。葛丽丝认为每个人都应该要能写程式,如今人人皆会,电脑也因此更加有了用处。

程序员都知道的“debug”一词竟出自一位海军女上将

在葛丽丝·穆雷·霍普传奇的一生中,她赢得了无数荣誉和奖励,她先后被40多所大学授予荣誉博士学位。

1971年为了纪念现代数字计算机诞生25周年,美国计算机学会特别设立了"GraceHopper"奖,颁发给当年最优秀30岁以下的青年计算机工作者;1980年Hopper获得国际IEEE组织颁发的首届计算机先驱奖;1991年,布什总统在白宫授予Hopper"全美技术奖",这也是至今美国女性唯一获此殊荣的人;1994年Hopper被追授为"美国女名人",进入"全国女名人堂"。


分享到:


相關文章: