很难想像图上的庞然大物,其实是早期的计算机。而这位优雅的女士则是被誉为“COBOL 之母”的葛丽丝 · 霍普。
她发现了计算机上的第一个 bug,也创造了计算机史上的最大 bug。
从小喜欢拆闹钟的耶鲁女博士
为了搞清楚闹钟的构造,你会把正常工作中的闹钟拆掉吗?
儿时的霍普不仅拆了家里的闹钟,还一口气拆了七个。好在霍普的妈妈并没有因此责怪她,还鼓励她得到与儿子相同的教育机会。
1934 年,霍普成为耶鲁大学 233 年校史上的首位数学女博士。毕业后霍普参与了美军研究项目,主要研究一种用来计算火箭的自动顺序控制计算机。
“第一个计算机 bug”竟是一只飞蛾
1946 年,霍普发现了第一个电脑上的 bug。
在 Mark II 计算机上工作时,电脑不能正常运作了,霍普和整个团队都搞不清楚为什么。
后来才发现,是一只飞蛾意外飞入了一台电脑内部而引起的故障。终于把问题解除了,霍普在日记本中记录下了这一事件。
“First actual case of bug being found.”
“计算机飞蛾”似乎不能引起共鸣。这里的“actual bug”更像是研究者采用了 “bug”(原意“虫子”)在俚语中表示“出问题”的意思。
喜欢考究的人可能会发现,用 “bug” 来形容技术问题的发展始末有些曲折,来源很可能也并非霍普。电气电子工程师学会 IEEE 则将 “bug” 一词的引入归功于爱迪生,在他 1870 年左右的笔记中可以看到用“bug”来指代“机器故障”。
可见,记笔记有多么重要。
“千年虫”,时间停止的一天
霍普的那个年代,硬件极其昂贵。霍普便采用了 6 位数储存日期,代表年份的前两位“19”被忽略掉。由于 Cobol 语言的影响日益扩大,这样的习惯被延续下去。
2000 年的“千年虫”也因此而诞生。西班牙的停车场计费表坏了,法国气象局公布了 1900 年 1 月 1 日的天气预报,澳洲的公共汽车验票系统崩溃......全球花了上亿的美金用来升级系统。
有人调侃:“在上个世纪,软件业者从来没想过他们的代码和产品会跨入新千年。”
“霍普其实深藏着一颗海盗的心”
霍普的最大贡献是发明了世界上第一个编译器,名字叫做 A-0。机器只认得一种语言,便是 0 和 1 。霍普想设计一种类似英语语法的翻译程序,让程序把英文翻译成机器码,让机器执行,这便是如今的“编译器”。
但是当时所有人都告诉她机器只能做计算,计算机是不懂英语的。霍普只好自己通过演讲筹集资金来完成这一计划,她甚至设计出英文版、德文版和法文版的编译器。
霍普一生留下很多名言,其中一句她最喜欢:“一艘船停在港口是安全的,但这并不是造它的原因。”
生日快乐
今天
2017 年 12 月 9 日
是葛丽丝·霍普 111 岁诞辰
让我们一起向这位
把代码成为诗歌的前辈
致敬