微软诞生50周年,比尔盖茨亲自公开微软起家的源代码:Altair Basic!

微软诞生50周年,比尔盖茨亲自公开微软起家的源代码:Altair Basic!

Datawhale分享

作者:比尔·盖茨,编辑:机器之心

1975 年 4 月 4 日,比尔・盖茨和保罗・艾伦在美国新墨西哥州阿尔伯克基市创立了微软公司。到今天,半个世纪过去了,微软早已成长为一家超级科技巨头。

近日,比尔・盖茨亲自撰文回忆了微软的诞生和他们的第一笔业务,同时还通过一份 157 页的 PDF 文件分享了他们为这项业务编写的 Altair BASIC 源代码。

顺带一提,比尔・盖茨这篇博客的风格相当炫酷,值得访问原文一观。

  • 博客地址:https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code

1975 年,保罗・艾伦(Paul Allen)和我创造了微软,因为我们相信我们的愿景:每张办公桌和每个家庭都应该有一台计算机。

现在,已经过去了五十年,微软仍在继续创新,让生活更轻松、工作更高效。微软成立 50 周年是一个巨大的成就,而这一切都离不开史蒂夫・鲍尔默(Steve Ballmer)和萨蒂亚・纳德拉(Satya Nadella)等杰出的领导者,以及多年来在微软工作的许多人。虽然我很高兴庆祝这个周年纪念日,但达到这个里程碑却让人感到苦乐参半。我总是喜欢回顾微软的历史,梦想它的未来。但也很难相信,我生命中如此重要的一部分已经存在了半个世纪!

我和保罗在哈佛的计算机室里面弯腰操作 PDP-10 的场景还恍如昨日,那时候我们编写的代码成为了我们新公司的首款产品。

保罗和我还是学生时就已经爱上了计算机

直到今天,那些代码依然是我写过的最酷的代码。

微软的故事始于一本杂志:《大众电子(Popular Electronics)》1975 年 1 月刊。当时这本杂志的封面图展示了 Altair 8800。

这个杂志封面改变了我的生活

Altair 8800 来自一家名为 MITS 的小型电子设备公司,是一款开创性的个人电脑套件,目标是为计算机爱好者带来计算能力。当保罗和我看到那本杂志的封面时,我们明白了两个关键:个人计算机(PC)革命即将来临,我们要参与进去成为基础。

Altair 8800

当时,PC 几乎还不存在。保罗和我知道,如果创造可以让人们编程 Altair 的软件,就可以彻底改变人们与这些机器的交互方式。因此,我们联系了 MITS 的创始人 Ed Roberts,并告诉他我们有编程语言 BASIC 的一个版本可用于 Altair 8800 运行的芯片。

但事实是:我们当时还没有写出那个软件。是时候开始工作了。

BASIC 的基础

BASIC 由达特茅斯学院的两位教授于 1964 年发明,其目标是让没有计算机经验的人也能轻松学习。只需很少的学习或技术能力,人们就可以用 BASIC 编写自己的软件 —— 从支票核对程序到井字游戏。BASIC 是我和保罗学习的第一门语言(至今仍在使用)。

我一直是个数学很好的学生;我发现数学所需的逻辑和解题能力能帮助我学习计算机编程。

像 BASIC 这样的计算机语言与英语或任何其他语言具有相同的用途。就像你可以用英语在咖啡馆点咖啡一样,你可以用 BASIC 告诉计算机运行程序、解决数学问题或执行其他任务。

转译 BASIC

但有一个问题:计算机不会说 BASIC。而它们确实能用的语言又非常复杂且不直观,因此用它编程非常困难。为了填补这一空白,保罗和我开始着手创建一个 BASIC 解释器(interpreter),它可以在程序运行时逐行将代码翻译成计算机可以理解的指令。

我们考虑创建一个类似的工具,称为编译器(compiler),它可以先翻译整个程序,然后一次性运行。但我们认为解释器的逐行方法对新手程序员很有帮助,因为它会立即对代码提供反馈,让程序员能够随时修复任何错误。

当你发现你的方法有效时,那种感觉棒极了

保罗和我与 Ric Weiland 一起上学,他后来成为微软的第二名员工。

开始

保罗和我决定分头行动。

我们没有 Intel 8080 芯片 —— 这正是 Altair 计算机运行的芯片,所以保罗开始编写一个在哈佛的 PDP-10 主机上模拟 8080 的程序。这样我们不需要真正的 Altair,也能测试我们的软件。

与此同时,我则专注于编写程序的主要代码,而另一位朋友 Monte Davidoff 则负责编写一个称为数学包(math package)的部分。我们日夜不停地编程了两个月,才创造出我们之前扬言已经写好了的软件。

哈佛的 PDP-10

克服困难

那时候,计算机内存很贵。给 Altair 加内存的话,很可能内存会比这台计算机本身更贵,所以每个字节都很重要。我们认为,如果我们能将我们的 BASIC 代码压缩到仅 4 kB,那么使用 BASIC 的 Altair 用户仍然会有足够的内存来运行他们编写的程序(而不必再花更多钱)。

为了满足这一限制,我使用了多种技术来优化内存使用,比如紧凑的数据结构和高效的算法。这是一次有趣的挑战,尽管保罗和我觉得将 Altair BASIC 尽快交付给 MITS 的压力很大,但我也非常开心地想出了让一切都顺利进行的方法。

微软的诞生

最终,许多个不眠之夜之后,我们准备好了,向 MITS 的总裁 Ed Roberts 展示了我们的 BASIC 解释器。

我们的演示非常成功,MITS 同意购买该软件的授权。这对保罗和我来说是一个关键时刻。Altair BASIC 成为我们新公司的第一个产品,而我们决定将公司命名为 Micro-Soft。(我们后来去掉了连字符。)

特别声明:[微软诞生50周年,比尔盖茨亲自公开微软起家的源代码:Altair Basic!] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

上新了!十五运会和残特奥会 “火炬家族” 名称揭晓(全国十五运的开展时间和地点?)

今晚(8月2日),“湾区同心全运同行”十五运会和残特奥会倒计时100天启动仪式在广东深圳举行。活动中,备受瞩目的十五运会和残特奥会火炬、火种灯及火种盆正式亮相。 “本次亮相的火炬名为‘绽放’,火种灯名为‘星…

上新了!十五运会和残特奥会 “火炬家族” 名称揭晓(全国十五运的开展时间和地点?)

小孩扁平足能治好吗(儿童扁平足会自愈吗)

小孩扁平足可以通过足弓支撑训练、定制鞋垫和物理治疗等方式改善。这种情况通常由遗传因素、足部肌肉发育不足或韧带松弛等原因引起。 足弓支撑训练是改善扁平足的基础方法,通过特定的足部运动增强足弓肌肉力量

小孩扁平足能治好吗(儿童扁平足会自愈吗)

广西梧州一居民楼发生火灾致5死 起火原因正在调查(广西梧州居民医保报销标准)

8月3日8时30分许,梧州市龙圩区城南大道一居民楼发生火灾,造成5人死亡。起火建筑为5层砖混结构的居民楼,总建筑面积300平方米。火灾发生在一层,过火面积约20平方米,主要燃烧物质为杂物等。该建筑东面和西面均为民房,南面为空地,北面为街道

广西梧州一居民楼发生火灾致5死 起火原因正在调查(广西梧州居民医保报销标准)

数字政务最后一公里,为何总让第三方机构来跑?(数字政务概念股有哪些)

某市投入重金打造的“智慧城市大脑”终于通过验收,各部门领导纷纷祝贺,庆功宴的喧嚣还未散去,政务大厅里却悄然出现另一番景象:窗口工作人员依旧埋头于成堆的纸质表格,新系统操作界面复杂,响应缓慢,成了被冷落的“数…

数字政务最后一公里,为何总让第三方机构来跑?(数字政务概念股有哪些)

文献分享:用于HER2特异性递送的单链Fab衍生药物偶联物(可以使用文献传递服务的是)

我们观察到Fab-SN38偶联物治疗后对所有HER2阳性细胞系均产生叠加效应,Fab-SN38对HER2阳性细胞是一种有效的选择性细胞杀伤剂。抗HER2Fab和SN38均是针对HER2阳性肿瘤细胞的治疗药物…

文献分享:用于HER2特异性递送的单链Fab衍生药物偶联物(可以使用文献传递服务的是)