金磊 发自 凹非寺
量子位 | 公众号 QbitAI
一段源代码时隔整整 50 年,这是让微软这家科技巨头起家的源代码,如今它正式被公开了。
Altair Basic 有 157 页,是比尔盖茨亲自撰写并发布的。
在文章的开头,比尔盖茨对于这段代码做了这样的高度总结:
因为涉及到 Basic 这门古老的编程语言,并且与个人计算机的发展源头相关,所以网友们在看到比尔盖茨的分享之后,都感慨不已。
有人这样点评到:
也有与现在AI大模型结合的感慨,同样是认为诗意满满:
有网友认为,Altair Basic 代码的公开,对无数程序员的编程之路产生了影响。
Altair Basic 背后的故事,其各种细节,都被比尔·盖茨详细地讲述出来。
为保留文章的“原汁原味”,我将以第一人称展开对比尔盖茨的回忆。
Altair Basic,奠定微软基础的代码
我写过的最酷的代码
1975 年,我与保罗·艾伦一同创立了微软。我们之所以这样做,是因为坚信“让每个家庭、每张办公桌都拥有一台计算机”这一愿景。
五十年后的今日,微软持续进行创新之举。它使得生活变得更加便捷,同时也让工作变得更为高效。
能挺过半个世纪是很了不起的成就。如果没有史蒂夫·鲍尔默和萨提亚·纳德拉这样优秀的领导者,也没有多年来所有微软员工的付出,我们是无法达成这一目标的。
尽管对周年庆充满期待,但抵达这一里程碑却令我百感交集。
我时常喜欢回顾微软的过往历史,也会畅想它的未来发展。然而,令人难以置信的是,在我的生命历程中,微软这个如此重要的部分竟然已经延续了长达半个世纪之久!
一切仿佛就在昨天。那时我和保罗正弓着身子在哈佛计算机实验室的 PDP - 10 前。我们在编写着将会成为我们新公司首个产品的代码。
这段代码至今仍是我写过最酷的代码。
盖茨和保罗在湖滨中学读书时,就深深爱上了计算机
微软的诞生故事,竟始于一本杂志。
1975 年 1 月,《大众电子》的封面刊登了 Altair 8800。这台个人计算机套件是由 MITS 小型电子公司打造的,具有突破性。它承诺为爱好者提供计算能力。
当我和保罗看到封面时,我们立刻明白两件事:
当时几乎没有个人计算机。我们知晓,开发出能让人们对 Altair 进行编程的软件,会将人机交互方式彻底改变。
我们联系了 MITS 的创始人埃德·罗伯茨,告知他我们已经为 Altair 8800 的芯片开发出了 BASIC 编程语言的版本。
当下存在一个真实的问题,那就是我们仅仅是“声称”了,然而实际上并没有真正去做到。
所以,是时候开始开展工作了。
BASIC的基础
BASIC 语言是在 1964 年由达特茅斯学院的两位教授发明的。其设计初衷是为了让那些没有计算机经验的人能够轻松地掌握编程。
人们无需具备太多学习或技术天赋,就能够用 BASIC 来编写自己的软件。这些软件涵盖的范围很广,从支票簿管理程序到井字棋游戏都有。
这是我和保罗学会的第一门语言(至今仍被使用)。
BASIC这类计算机语言与英语等人类语言有着相同本质。
你可以用英语在咖啡馆进行点单,同时也能够用 BASIC 命令让计算机运行程序、解算数学题或者执行其他任务。
改写BASIC
不过有个关键问题:计算机本身并不懂BASIC语言。
它们虽然能理解的语言复杂又反直觉,但编程难度极高。
为了填补这个差距,我与保罗开始研发 BASIC 解释器,此解释器能够把代码逐行转化为计算机能够执行的指令。
我们曾考虑开发一种编译器,这种编译器会一次性翻译整个程序,然后再运行。然而,最终我们选择了采用解释器的逐行翻译模式。
这对编程新手更友好,因为能实时反馈代码错误,方便随时修正。
当发现自己的方法行之有效时,我感受到了无与伦比的成就感。
我数学成绩一直都很优秀。在这个过程里,我察觉到了数学所需要的逻辑思维以及解题能力。这些对于学习计算机编程是很有帮助的。
我和保罗曾与里克·韦兰同窗,他后来成为微软的第二号员工
一切就绪,准备开始
在方向和思路定下来之后,我和保罗决定分头行动。
当时我们没有用于 Altair 计算机的 Intel 8080 芯片。因此,保罗开始在哈佛的 PDP - 10 大型机上进行模拟程序的编写工作。
这样我们就能在没有实体Altair的情况下测试软件。
我负责编写程序的主代码。另一位朋友蒙特·大卫多夫开发了数学运算模块。
为了实现“已开发完成”的承诺,我们在两个月的时间里,不分昼夜地持续进行这套软件的编写工作。 我们连续两个月持续不断地编写这套软件,目的是兑现“已开发完成”的承诺。 为了达成“已开发完成”的承诺,我们两个月来一直昼夜兼程地编写这套软件。
哈佛PDP-10的主机
但在这个过程中,也存在一个问题。
当时计算机的内存价格是比较昂贵的。像 Altair 的扩展内存,它的价格往往比主机还要高。所以,每一个字节都显得格外珍贵。
我们设想:如果能够把 BASIC 代码压缩到仅仅 4KB 这么小的容量。这样一来,用户既可以运行 BASIC 编程,又能够保留足够的内存去运行自己编写的程序,同时还能够省下一大笔开销。
为了实现这个目标,我采用了一些优化技术,其中包括紧凑数据结构以及高效算法。
这就如同是有趣的解谜游戏。我们在赶工交付 Altair BASIC 时,压力变得很大。然而,攻克内存限制的这个过程,却着实令人着迷。
微软的诞生
我们经历了无数个不眠之夜,其中保罗甚至在飞往阿尔伯克基的航班上都完成了部分代码。之后,我们终于做好了向 MITS 总裁埃德·罗伯茨展示 BASIC 解释器的准备。
演示非常成功,MITS 同意给予这款软件授权,这对我和保罗来说是一个重要的转折点。
Altair BASIC 成为了新公司的第一款产品。那时我们给公司起名为“Micro-Soft”,后来去掉了连字符。
这段代码竟引领微软五十年的创新历程,想来令人惊叹。
在 Office 出现之前,一切始于最初的源代码;在 Windows 95 出现之前,一切始于最初的源代码;在 Xbox 出现之前,一切始于最初的源代码;在 AI 问世之前,一切始于最初的源代码。
即便时隔多年,重读这些代码依然让我心潮澎湃。
One More Thing
除了内容本身,网友们还纷纷评价起了比尔盖茨这篇文章的设计:
以往发布的情况与之截然不同。鼠标所到的地方,几乎都能被翻转成代码符号。
嗯,也是跟主题非常应景了。
源代码下载地址:
博客地址: