金磊 发自 凹非寺
量子位 | 公众号 QbitAI
一段时隔整整50年的源代码,更是让微软这家科技巨头起家的源代码,正式被公开了——
Altair Basic,整整157页,由比尔盖茨亲自撰文发布。
在文章的开头,比尔盖茨对于这段代码做了这样的高度总结:
- 在Office、Windows 95、Xbox甚至人工智能问世之前,Altair Basic早已诞生
Before there was Office、Windows 95、Xbox or AI,there was Altair Basic.
毕竟涉及Basic这门古早编程语言,以及个人计算机的发展源头,网友们在看到比尔盖茨的分享之后,也是感慨不已。
有人这样点评到:
- 代码如诗,历史如画。
- 想象一个“故障艺术展”:每个bug都是点睛之笔。
也有与现在AI大模型结合的感慨,同样是认为诗意满满:
- 有趣的是,我们竟在一代人的时间里,从BASIC语言跨越到了训练万亿参数AI模型。
- 若能以GPT-5将那段开启个人计算革命的代码转化为艺术,想必会颇具诗意。
也有网友认为,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
除了内容本身,网友们还纷纷评价起了比尔盖茨这篇文章的设计:
- 博客设计得真棒啊!
和以往发布截然不同的是,鼠标所到之处,几乎都会被翻转成代码符号。
嗯,也是跟主题非常应景了。
源代码下载地址:
https://images.gatesnotes.com/12514eb8-7b51-008e-41a9-512542cf683b/34d561c8-cf5c-4e69-af47-3782ea11482e/Original-Microsoft-Source-Code.pdf
博客地址:
https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code