整整157页,比尔·盖茨亲自公开微软起家的源代码:Altair Basic


图片来源:Gates Notes

  博文原文:Celebrate 50 years ofMicrosoft with the company’soriginal source code

  金磊发自凹非寺 | 量子位公众号 QbitAI

  一段时隔整整 50 年的源代码,更是让微软这家科技巨头起家的源代码,正式被公开了——

  Altair Basic,整整 157 页,由比尔盖茨亲自撰文发布。

Image

  在文章的开头,比尔盖茨对于这段代码做了这样的高度总结:

在 Office、Windows 95、Xbox 甚至人工智能问世之前,Altair Basic 早已诞生。
Before there was Office、Windows 95、Xbox or AI,there was Altair Basic.

Image

  毕竟涉及 Basic 这门古早编程语言,以及个人计算机的发展源头,网友们在看到比尔盖茨的分享之后,也是感慨不已。

  有人这样点评到:

代码如诗,历史如画。

想象一个“故障艺术展”:每个 bug 都是点睛之笔。

Image

  也有与现在 AI 大模型结合的感慨,同样是认为诗意满满:

有趣的是,我们竟在一代人的时间里,从 BASIC 语言跨越到了训练万亿参数 AI 模型。

若能以 GPT-5 将那段开启个人计算革命的代码转化为艺术,想必会颇具诗意。

Image

  也有网友认为,Altair Basic 代码的公开,影响了无数程序员的编程之路:

Image

  而关于 Altair Basic 背后的故事,其中的各种细节,也被比尔盖茨娓娓道来。

  (为保留文章的“原汁原味”,比尔盖茨的回忆将以第一人称展开。)

  Altair Basic,奠定微软基础的代码 —— 我写过的最酷的代码

  1975 年,我和保罗·艾伦创立了微软,因为我们坚信“让每个家庭、每张办公桌都拥有一台计算机”的愿景。

  五十年后的今天,微软仍在不断创新,让生活更便捷、工作更高效。

  能挺过半个世纪是一项非凡成就,若没有史蒂夫·鲍尔默、萨提亚·纳德拉这样的杰出领导者,以及多年来所有微软员工的付出,我们绝不可能实现这一目标。

  尽管对周年庆充满期待,但抵达这一里程碑却令我百感交集。

  我总爱回顾微软的历史并畅想它的未来,但难以置信的是,我生命中如此重要的部分竟已延续了半个世纪!

  一切恍如昨日——我和保罗还弓着身子在哈佛计算机实验室的 PDP-10 前,编写着将成为我们新公司首个产品的代码。

  这段代码至今仍是我写过最酷的代码。

Image

  △ 盖茨和保罗在湖滨中学读书时,就深深爱上了计算机

  微软的诞生故事,竟始于一本杂志。

  1975 年 1 月的《大众电子》封面刊登了 Altair 8800,这台由 MITS 小型电子公司打造的突破性个人计算机套件,承诺为爱好者提供计算能力。

  当我和保罗看到封面时,我们立刻明白两件事:

  • 个人计算机革命即将爆发
  • 而我们必须抢占先机

  当时个人计算机几乎不存在。我们知道,开发能让人们为 Altair 编程的软件,将彻底改变人机交互方式。

  于是我们联系 MITS 创始人埃德·罗伯茨,声称已为 Altair 8800 的芯片开发了 BASIC 编程语言版本。

  但当下却存在一个实实在在的问题:我们只是“声称”,并没有真的做到。

  所以,是时候开始开展工作了。

  BASIC 的基础

  BASIC 语言由达特茅斯学院的两位教授于 1964 年发明,它的设计初衷是让毫无计算机经验的人也能轻松掌握编程。

  无需太多学习或技术天赋,人们就能用 BASIC 编写自己的软件——从支票簿管理程序到井字棋游戏无所不包。

  这是我和保罗学会的第一门语言(至今仍被使用)。

  BASIC 这类计算机语言与英语等人类语言有着相同本质。

  正如你可以用英语在咖啡馆点单,也能用 BASIC 命令计算机运行程序、解算数学题或执行其他任务。

Image

  改写 BASIC

  不过有个关键问题:计算机本身并不懂 BASIC 语言。

  它们虽然能理解的语言复杂又反直觉,但编程难度极高。

  为弥合这个鸿沟,我和保罗着手开发了 BASIC 解释器——它能将代码逐行翻译成计算机可执行的指令。

  我们曾考虑开发编译器(一次性翻译整个程序再运行),但最终选择了解释器的逐行翻译模式。

  这对编程新手更友好,因为能实时反馈代码错误,方便随时修正。

Image

  当发现自己的方法行之有效时,我感受到了无与伦比的成就感。

Image

  我数学成绩向来优异,因此在这个过程中,我也发现了数学所需的逻辑思维与解题能力,对学习计算机编程大有裨益。

Image

  △ 我和保罗曾与里克·韦兰同窗,他后来成为微软的第二号员工

  一切就绪,准备开始

  在方向和思路定下来之后,我和保罗决定分头行动。

  当时我们没有 Altair 计算机使用的 Intel 8080 芯片,于是保罗开始在哈佛的 PDP-10 大型机上编写模拟程序。

  这样我们就能在没有实体 Altair 的情况下测试软件。

  与此同时,我负责编写程序的主代码,另一位朋友蒙特·大卫多夫则开发数学运算模块。

  为了兑现“已开发完成”的承诺,我们连续两个月昼夜不停地编写这套软件。

Image

  △ 哈佛 PDP-10 的主机

  但在这个过程中,也存在一个问题。

  当时的计算机内存价格昂贵——Altair 的扩展内存往往比主机还贵,因此每个字节都弥足珍贵。

  我们设想:若能将 BASIC 代码压缩到仅 4KB,用户就既能运行 BASIC 编程,又能保留足够内存运行自编程序(还省下大笔开销)。

  为了达成这个目标,我运用了紧凑数据结构和高效算法等优化技术。

  这就像有趣的解谜游戏,虽然赶工交付 Altair BASIC 让我们压力倍增,但攻克内存限制的过程实在令人着迷。

  微软的诞生

  历经无数不眠之夜后(保罗甚至在飞往阿尔伯克基的航班上完成部分代码),我们终于准备好向 MITS 总裁埃德·罗伯茨展示 BASIC 解释器。

  演示大获成功,MITS 同意授权这款软件——这对我和保罗而言堪称转折点。

  Altair BASIC 成为我们新公司的首款产品,当时我们将公司命名为“Micro-Soft”(后来去掉了连字符)。

Image

  这段代码竟引领微软五十年的创新历程,想来令人惊叹。

  在 Office、Windows 95、Xbox 乃至 AI 问世之前,一切始于最初的源代码——

  即便时隔多年,重读这些代码依然让我心潮澎湃。

  One More Thing

  除了内容本身,网友们还纷纷评价起了比尔盖茨这篇文章的设计:

博客设计得真棒啊!

  和以往发布截然不同的是,鼠标所到之处,几乎都会被翻转成代码符号。

  嗯,也是跟主题非常应景了。

Image

  源代码下载地址:Original-Microsoft-Source-Code.pdf

  博文地址:Celebrating 50 years of Microsoft