比尔·盖茨自曝15岁雪地徒步已开始用BASIC编程!回忆与保罗·艾伦为Altair编写BASIC,用PDP-10模拟器开发,开启Micro-Soft的传奇。早期 Traf-O-Data 经验和 Monte Davidoff 的数学包功不可没。云原生时代,AI代码加速,大佬早已身体力行!
译自:Bill Gates, Paul Allen, and the Code That Started Microsoft
作者:David Cassel
1968年,13岁的比尔·盖茨告诉他的朋友保罗:“也许有一天我们会拥有自己的公司。”
半个多世纪后,69岁的比尔·盖茨花时间反思了这一切是如何发生的。
甚至在2018年回顾时,他还记得他和保罗·艾伦在青少年时期“几乎把所有空闲时间都花在了摆弄我们能找到的任何电脑上”。这两个青少年一起找到了一些编程工作——为西雅图一家公司新安装的PDP-10大型机做测试员,以及为波特兰一家公司的工资系统做COBOL程序员。甚至在盖茨高中毕业之前,他们就参与了一个电力网的代码工作——在温哥华的一个地下设施里,他们是40人编程团队的一部分。
因此,在本月早些时候,在他的个人网站上的一个特殊网页上,盖茨分享了他们在1975年共同编写的原始源代码,这些代码成为了他们新公司Micro-Soft的第一个产品。
但在今年早些时候,盖茨分享了一个关于年轻程序员取得巨大成功的励志故事中鲜为人知的事实。
他实际上在1971年就开始编写代码了——当时他15岁。
在《华尔街日报》上发表的他的新回忆录的摘录中,盖茨回忆说,从13岁起,他就和童子军的四个朋友一起在西雅图周围的山上进行长途徒步旅行。(“我们经常连续走七天或更长时间……”)在1971年的一次100英里、为期六天的徒步旅行中,下雪了。“我记得这次旅行是因为那天我感到多么寒冷和痛苦。”
因此,15岁的盖茨思考了那台新到的PDP-8,它被借到了他的私立学校。它重80磅。它花费8500美元。但与他们通过电话线访问的遥远的大型机不同,“PDP-8的设计是供一个人直接使用的,而且足够小,可以放在你旁边的桌子上……”
盖茨认为这是一个形成时期,当时他已经开始渴望一份“有意义”的职业。因此,15岁的比尔·盖茨给自己设定了一个挑战:对于这台新电脑,他将尝试编写一个BASIC编程语言的版本。“我眼睛盯着地面,艰难地跋涉着,研究我的[公式]评估器,努力解决执行操作所需的步骤……
“我会想象代码,然后尝试追踪计算机将如何遵循我的命令……在那天的剩余时间里,我的脑海里沉浸在我的编码难题中……
“这是迄今为止我写过的最好的代码。”
具有讽刺意味的是,盖茨在他的回忆录中回忆说,当9月份高中重新开学时,那台PDP-8已经不在了,“我从未完成我的Basic项目。但我在那次徒步旅行中编写的代码,我的公式评估器——以及它的美丽——一直伴随着我。
“三年半后,我是一名大学二年级学生……”
事情就是这样发生的,当保罗·艾伦冲进盖茨的宿舍,带来了关于一台新的Altair个人电脑的消息时,“我知道我们可以为它编写一种BASIC语言;我们已经有了一个良好的开端。”
盖茨在他的回忆录中写道,“我做的第一件事就是回想起那糟糕的一天……并从我的记忆中检索我编写的评估器代码。我把它输入到电脑里,并以此播下了将成为世界上最大的公司之一和一个新产业的开端。”
它既简单又具有深刻的影响——但从他青少年时期的样子来看,有一条清晰的线索。“成年后意识到,当你剥去所有的岁月和所有的学习时,你大部分的本质从一开始就在那里,这真是一个奇迹,”盖茨写道。
他补充说,直到今天,“我仍然感到同样的期待感——一个孩子保持警觉并渴望理解这一切。”
Allen的传记回忆说,1975年是他“无所事事的时候……我在霍尼韦尔有一份没有前途的工作,一间糟糕的公寓,还有一辆烧机油的’64年款克莱斯勒New Yorker……”但盖茨本月的博客文章重新发布了那张传奇的《大众电子》杂志封面,他说这张封面改变了他的生活。MITS即将发布Altair,一种新型家用微型计算机。“当Paul和我看到那张封面时,我们知道两件事:PC革命迫在眉睫,我们想从一开始就参与其中。”
Steven Levy在他的书《黑客:计算机革命的英雄》中写道,他们拿着一本解释8080芯片指令集的手册(加上《大众电子》杂志文章中的原理图),一头扎进了他们的项目中。
Allen在他的传记中写道:“如果我们年纪更大或更了解情况,Bill和我可能会被我们面前的任务吓退。”
“但我们还年轻,足够天真,相信我们也许能成功。”
这比听起来更鲁莽。Allen后来资助了新墨西哥州自然历史和科学博物馆的一个展览,该展览回忆了Bill和Paul如何“想象一个程序员的国度涌向MITS”。因此,他们首先打电话给公司负责人Ed Roberts,“声称有一个BASIC编程语言的版本几乎可以用于Altair。 “他们没有,而且Roberts肯定知道他们没有。他每天接到十个电话,都是来自那些拥有“几乎准备好”的BASIC的人,他的标准回答是,“第一个带着可用的BASIC出现的人将获得合同。”
即使在这里,他们的成功也建立在另一项青少年技术壮举之上。“我们没有Altair计算机运行的Intel 8080芯片,”盖茨在他的网站上回忆道,“所以Paul开始编写一个程序,在哈佛大学的PDP-10大型机上模拟一个。”
根据Allen的传记,这也有其高中时代的根源。当盖茨还在上高中时,他为一家测量汽车流量的公司找到了一份数据处理工作。为了找到一种自动化方法,Allen首先购买了一个8008芯片(360美元),然后在他的大学大型机上模拟了这个芯片。这两位年轻的程序员最终与华盛顿大学的学生Paul Gilbert一起创建了一台“Traf-O-Data”机器(用于读取收集到的有关交通模式的数据)。
Allen回忆说,他们在未来的几年里继续使用那个模拟器,并且在微软的早期仍然在使用它。
一项惊人的编码壮举还在前方。1975年,他们拼命地赶着为Altair完成他们的BASIC代码,他们的朋友Monte Davidoff编写了数学包。(“我们日夜编码了两个月,”盖茨回忆说,“来创建我们说已经存在的软件。”)
根据Walter Isaacson在2013年发表的一篇文章,深夜,Allen会在输入一行代码时睡着,然后在几个小时后醒来,“眯着眼睛看着屏幕,眨两次眼,然后准确地从他离开的地方继续。”
微软官方博客上的一篇纪念文章分享了这张年轻的Paul Allen的档案照片。
但直到最后一刻,当他终于登上飞往阿尔伯克基的飞机时,Allen才突然意识到他们没有编写一个引导加载程序,让Altair读取他们的纸带。根据Allen后来在阿尔伯克基的展览,他“拿出他的笔记本,迅速潦草地写下一个汇编语言的加载程序,然后手动将其翻译成Altair可以理解的1和0。”
但他们的代码真的能运行吗?Levy写道,MITS只有一台具有4K内存的机器,“而且几乎不能工作……”
命运攸关的时刻到来了,Allen在阿尔伯克基博物馆的展览回忆说,“电传打字机开始发出咔哒咔哒的声音,因为它将纸带拉过纸带阅读器。加载程序可能花了十五分钟……”
然后Allen开始输入他的第一个测试命令。“令所有人惊讶的是,该软件运行了。”
盖茨向Levy回忆说,“他们非常兴奋”,因为即使在MITS,“也没有人见过这台机器做任何事情。” 剩下的就成了历史。MITS同意授权它,使其成为一家名为Micro-Soft的新公司的第一个产品。(Altair是一台微型计算机,他们的目标是提供它的软件。)
在他的网站上,盖茨写道:“这么多年过去了,我仍然对看到它感到兴奋。”