Windows 3.1 平台上的 Visual Basic
摘要
关于 Visual Basic 在 Windows 3.1 上兴衰的回顾,探讨比尔·盖茨的雄心以及微软在个人计算领域的霸主地位。
<p><a href="https://lobste.rs/s/xpdod3/visual_basic_on_pc_w_windows_3_1">评论</a></p>
查看缓存全文
缓存时间: 2026/06/27 03:48
# 在运行 Windows 3.1 的 PC 上使用 Visual Basic
来源:https://stonetools.ghost.io/visualbasic-win31/
开发 (https://stonetools.ghost.io/tag/development/)
苹果并非唯一一个创造出备受喜爱的可视化编程环境,却又在其最受欢迎时将其夺走的公司。
在运行 Windows 3.1 的 PC 上使用 Visual Basic
如果我深入挖掘自己的内心,真正地自我反思,我会发现自己根本不具备比尔·盖茨和埃隆·马斯克这类人所拥有的某种特质。我想我们大多数人都满足于知道自己曾触动过一两个生命,帮助让某个人的存在变得更愉快一些,并对宇宙给予的这些微小奇迹心怀感激。
而另一些人似乎在获取影响力、权力和财富方面永无止境。对他们来说,仅仅引导一个行业还不够,他们必须*成为*那个行业。在这场零和博弈中,他们的渴望没有上限。
在马斯克成为第一个(我咽下这个词)*万亿富翁*之前,盖茨曾是连续几十年的世界首富 (https://en.wikipedia.org/wiki/Timeline_of_the_world%27s_richest_person?ref=stonetools.ghost.io)。和马斯克一样,他在 1999 年跨过了一个特定的金钱里程碑,成为“首位净资产超过 1000 亿美元的人”,按 2026 年的货币计算约为 2000 亿美元。他是如何赚到这笔钱,又是如何使用的,这已成为无数纪录片 (https://archive.org/details/triumph_of_the_nerds)、书籍 (https://en.wikipedia.org/wiki/Barbarians_Led_by_Bill_Gates?ref=stonetools.ghost.io)、电影 (https://www.dailymotion.com/video/x9z8no4?ref=stonetools.ghost.io)、采访 (https://www.youtube.com/watch?v=wvhW8cp15tk&ref=stonetools.ghost.io)、证词 (https://www.justice.gov/atr/videotaped-deposition-excerpts-bill-gates?ref=stonetools.ghost.io) 和可怕的传闻 (https://thehill.com/homenews/house/5918057-bill-gates-epstein-interview-oversight-committee/?ref=stonetools.ghost.io) 的主题。我认为媒体至少可以在与我们今天讨论相关的一点上达成一致:比尔·盖茨一心要掌控整个个人计算领域。
他曾在台上,面对行业专业人士,当着媒体的面,大声说出过这一点。Jacqui Morby 在 *The Computer Chronicles* (https://youtu.be/Tdj8gh9GPc4?si=zIeiwZ2f2daZ-hyE&ref=stonetools.ghost.io) 中重述了这个故事。“加里(基尔代尔)站起来(在 Rosen 论坛小组讨论中)谈论了他对 CP/M 的计划以及公司的方向,然后评论说:‘嗯,这是一个非常大的市场,容纳得下很多公司。’比尔·盖茨打断他说:‘不,只会有一家公司。’”
比尔·盖茨与加里·基尔代尔并肩而坐的照片。盖茨显得紧张、蜷缩、身体前倾、双臂交叉。基尔代尔则向后靠着,双腿交叉,双手交握,面带愉悦的微笑。我们不妨思考一下盖茨与基尔代尔的肢体语言。这难道不是真鲨鱼与鱼饵的感觉吗?他似乎并不特别热衷于创造创新事物,而更想确保微软对别人的创新能有所回应。在苹果合作开发初代 Macintosh 软件时,Andy Hertzfeld 回忆了一个故事 (https://folklore.org/Shut_Up.html?sort=date&ref=stonetools.ghost.io),讲的是盖茨深入询问与微软正在构建的商业应用无关的系统细节。不久后,Windows 1.0 发布,这让史蒂夫·乔布斯非常沮丧 (https://folklore.org/A_Rich_Neighbor_Named_Xerox.html?sort=date&ref=stonetools.ghost.io)。乔布斯不会是最后一个因微软“拿走”创意 (https://en.wikipedia.org/wiki/GO_Corporation?ref=stonetools.ghost.io) 而感到被坑的人。
左侧是 Macintosh System 1.0;Windows 1.0 只能“平铺”窗口。Windows 2 将获得 Mac 的可重叠、可调整大小的窗口,这导致苹果 CEO 约翰·斯卡利对微软提起诉讼,尽管他此前已授予微软使用 Macintosh“视觉显示”的权利,前提是微软不得停止支持 Macintosh。另一个盖茨采用的策略是吸收,这是获取自己缺乏的玩具的经典捷径。看看艾伦·库珀的故事 (https://youtu.be/BOKtFr_YOxk?ref=stonetools.ghost.io)。巧合的是 (https://news.ycombinator.com/item?id=44211749&ref=stonetools.ghost.io),当 *HyperCard* 在 1987 年首次亮相时,一个可视化应用构建器的想法“突然跳入他的脑海”,这恰好是由于微软宣布采用 DLL(动态链接库),任何人都可以轻松访问核心操作系统功能。库珀认为这是一个独特的基础,可以用来构建一种“构建套件” (https://web.archive.org/web/20170309062139/https://www.cooper.com/alan/father_of_vb.html),为你的企业梦想的 DOS 可视化外壳服务。不喜欢默认的 Windows 外壳?自己构建一个!
微软工程师加布·纽维尔对库珀展示的这个构建套件(当时称为 *Tripod*)印象非常深刻,并安排了一次向盖茨的演示。来自瑞安·卢卡斯撰写的精彩文章《Something Pretty Right》。
> “这让他大吃一惊,他从未见过类似的东西,”库珀回忆盖茨的反应时说道,“他曾一度转向他的随从问道:‘为什么我们做不出这样的东西?’”
“为什么我们做不出这样的东西?”在我看来,作为一名业余心理学家,这句话的措辞非常能说明问题。把这句话交给 1000 名演员,你会得到 1000 种不同的表演,在挫败与渴望之间平衡张力。作为一个超级有钱人,盖茨想要的东西没有得不到的。就像有人付钱给别人帮他们的 RPG 角色升级 (https://gizmodo.com/elon-musk-admits-to-paying-people-to-play-video-games-for-him-2000552872?ref=stonetools.ghost.io) 一样,100 万美元和一份合同之后,*Tripod*(更名为 *Ruby*)就归他所有了。
虽然库珀坚称 *HyperCard* 对 *Tripod* 的创作没有影响,但盖茨肯定*是*想到了它。在他为 *BYTE Magazine*(1989 年 10 月号,*Visual Basic* 将于 1991 年首次亮相)撰写的文章《BASIC 的 25 岁生日》中写道:
> HyperCard 提供了一个有趣的例子,展示了这种可视化编程与更标准的过程式编程的结合。(HyperTalk)让你能够创建与卡片以及卡片链接的信息相关的过程……它构成了过程式编程和对象级编程之间的一个可理解的中间步骤。
> —— 比尔·盖茨,为 BYTE Magazine 所写
*Ruby* 被改造成了一个与 *Tripod* 只有些许相似的东西。它定制的脚本语言被一种 BASIC 变体取代,程序的目标不再是构建基于 Microsoft DLL 的外壳,而是为微软自己的外壳 Windows 3.0 构建应用程序。*Visual Basic* 诞生了,可以说这是一个比库珀最初设想更为深远的产品。该给予认可的时候就要给予:盖茨看到了库珀自己都未能看到的潜力。
> 回首往事,库珀对盖茨的战略眼光印象最为深刻。“我以为我写出了一些相当酷的软件,”库珀说,“但没想到它会成为今天微软成功核心的编程控制面板,我从未想象过……这就是比尔·盖茨之所以为比尔·盖茨的原因。”
> —— 出自《GO TO》,作者史蒂夫·洛尔
之前,我深入研究了 (https://stonetools.ghost.io/hypercard-mac/) 苹果的 *HyperCard*。*Visual Basic* 为我们提供了一个有趣的机会,可以从微软的角度审视一个类似的第一方可视化编程解决方案。与 *HyperCard* 一样,*Visual Basic* 也有自己的专门杂志 (https://archive.org/search?query=subject%3A%22Visual+Studioand+Visual+Basic+Magazine%22),并且在微软于 2008 年停止支持后,仍激励了无数开发者。直到最近 2023 年 (https://visualstudiomagazine.com/articles/2023/02/08/language-update.aspx?ref=stonetools.ghost.io),微软还不得不就其“经典” *Visual Basic* 的支持计划发布官方声明,该产品仍在维持大量定制遗留应用的运行,这是 *HyperCard* 无法做到的。
当时的微软与苹果之战几乎迫使人选择立场,但实际上,双方都有值得相互学习的地方。
---
## 历史背景
一张设计类似 90 年代初微软软件包装的图片,底部以瘦高的字体写着“Microsoft Visual Impact”。上方是一个时间线,展示了微软 BASIC 的历史。1964 年:BASIC 诞生,由 John G. Kemeny 和 Thomas E. Kurtz 创建。1976 年:BASIC 进入家用微型计算机领域。比尔·盖茨和保罗·艾伦创立微软,将 BASIC 带到 Altair 8800。1983 年:GW-BASIC,“gee whiz” BASIC 的缩写。摆脱 ROM 芯片的限制,增加了编译器。1985 年:QuickBASIC。行号变为可选。包含编译器,可构建原生 .exe 文件。1991 年:QBASIC。精简版 QuickBASIC,移除编译器,保留 IDE 和调试工具。1991 年:可视化时代开始。Visual Basic 1.0 发布,售价 199 美元,荣获 BYTE 杂志卓越奖。1992 年:Visual Basic 2 和 Visual Basic for DOS。VB2 增加了 VGA 彩色图像支持和属性面板。VB for DOS 构建 TUI 应用程序,但这是唯一一次发布。1993 年:Visual Basic 3 和 Visual Basic for Applications。纯 16 位产品线的最后一代,增加了 JET 数据库引擎。VB for Applications 将“事件驱动”的自动化编程引入 Office 套件。1995 年:Visual Basic 4。混合 16/32 位,可构建用于自身的插件,以及“类模块”,允许代码独立于窗体上的任何 GUI 元素存在。1997 年:Visual Basic 5。纯 Win32,可编译为原生可执行文件,而之前的版本编译为需要 DLL 运行器的“p-code”。IntelliSense 和 ActiveX 在 VB 中首次亮相。1998 年:Visual Basic 6。“经典”VB 的终结。其文档仍在 learn.microsoft.com 上在线。使用 VB6 构建的应用保证可在现代 Windows 上运行,作为微软“It Just Works”兼容性计划的一部分。重大变化是增加了互联网连接工具。有趣的是,多年来定价保持相当稳定,无论哪一年,标准版、专业版和企业版分别售价约 100 美元、500 美元、1100 美元。大部分定价信息来自关于 **Visual Basic** 家族 (https://socket3.wordpress.com/2016/09/12/visual-basic-early-beginnings/?ref=stonetools.ghost.io) 的精彩文章。
---
## 我的设置
- DOSBox-X 2026.01.02,Windows x64 版本。
- CPU 设置为 Pentium - DOS 报告为 v6.22 - 主机系统文件夹挂载为 C:\ 驱动器,存放 Windows - 1x 缩放
- Windows 3.1,基本安装
- 1024 x 768,32K 色 - DOS 下 `mem` 报告总 RAM 为 `262,144K`,但 Free 仅报告 `1,609K`。今天够用,但 16 位 Windows 应能识别 4MB,而非仅 2MB。
- 一些额外应用程序,用于比较/方便:*Toolbook, Actor, ObjectVision, Acrobat Distiller*
- *Visual Basic 3.0* - 报告为 386 增强模式已启用 - 报告空闲 RAM 为 `60320 KB`
Visual Basic 3.0 是该产品线中最后一个纯 16 位应用程序,也是第一个包含强大数据库功能的版本。产品的真正潜力被解锁了。我觉得这种操作系统/应用程序的组合更符合这个博客的精神。
---
## 让我们开始工作
有很多东西要学。当我学习 *HyperCard* 时,我注意到有一本 1000 页的书在等着我。*Visual Basic* 附带了 3000 页文档,更不用说大量的第三方出版物了;这本身就是一个行业。
作为一个最近又向那个伟大的蓝屏迈进了一步的人,秒针的每一次滴答都轻轻震动着我的骨头。对于这样的大型项目,我必须考虑我能多快上手。考虑到当时培训书籍的脾气,我想正确的第一步是问:“我有多笨?”
左边是《Visual Basic 3 for Dummies》,右边是《The Complete Idiot's Guide to Visual Basic》。选择多多啊!我在博客文章中称自己为“大笨蛋”,我坚持这个说法,但我不喜欢*别人*叫我笨蛋。我可以处理更复杂的材料,但就像我说的,我没有太多时间。我能多快学会 *Visual Basic*?
这些书持续出现的视觉笑点不是封面设计,而是书名。这本是《Learn Visual Basic Now》这听起来*快得令人难以置信*。
《Teach Yourself Visual Basic in 24 Hours》也许如果我不睡觉?
《Learn Visual Basic in a Weekend》我想我星期一就全忘了。
《Learn Visual Basic in Three Days》到星期二也忘了。
系列中的一本日文书《Seven Days Master》,用于学习 Visual Basic 和 Visual Basic for Applications。“Proglaming”听起来有趣,但一周对我来说还是太快了。
《Develop a Professional Visual Basic Application in 14 Days》接近了。
《Teach Yourself Visual Basic in 21 Days》完美。慢到让一个老人跟得上;快到在被强制送入养老院之前能有空余时间完成。如果我不是晚了 40 年,我也会加入出版业,把“我是个大笨蛋”和“我想快点学”结合起来。
一个伪造的书籍封面使用了重新调整用途的 Far Side 漫画,是著名的关于“Thagomizer”的那幅。它被修改成一位尼安德特人指着屏幕,其他人观看学习。屏幕上的标题写着:“Ogg Teach Visual Basic 3 to Neanderthals*”* 注释是:“在月亮消失前”。左上角一个大橙色徽章写着:“A Stone Tools Reference Guide”。底部符合时代的文字写着:“讨厌电脑?你会爱上这本书的!TM”向加里·拉尔森支付的版税将占这个系列任何利润的 100%。### 第一天
我已经很久没有碰过 Windows 3.1 了。有趣的是,我对它的记忆与今天亲手操作的体验并不相符。我记得它要丑得多,尽管它仍然有荒谬地大的标题栏,没有提供多少信息或实用功能。我喜欢 VGA 模式下的那种浅蓝色 (https://youtu.be/Y4xJCwQUQMc?ref=stonetools.ghost.io)。
Windows 3.1 的截图,显示了程序管理器、扫雷和纸牌游戏。“关于程序管理器”窗口已打开,以验证我使用的是 3.11 版,我的空闲内存为 257,203 KB,系统资源空闲率为 75%。它看起来还算漂亮,也许不够有灵感,这是微软和 IBM 为 OS/2 的 Presentation Manager(早于 Windows 2.0)合作的结果。他们的 “联合开发协议” (https://web.archive.org/web/20210815044103/https://www.tech-insider.org/personal-computers/research/acrobat/871126.pdf) 给予了两家公司相当宽泛的权限,可以免版税使用彼此共享的代码。我甚至连法律的边都沾不上,但协议部分内容写道:
> **本协议绝不妨碍**任何一方独立**开发或获取**与代码和文档**具有竞争性的材料和程序,无论其相似性如何**,也不妨碍与其他人做出类似安排。
这给 Windows 2 和 3 在 Windows 1.0 失败后带来了一个不错的升级。最初,就连微软自己 (https://technologizer.com/2010/03/08/the-secret-origin-of-windows/2/index.html?ref=stonetools.ghost.io) 也很难让自己的开发者构建 Windows 应用程序。我猜盖茨那时一定如释重负,拥有一个不仅易于构建 Windows 应用程序,甚至还能带来*愉快*体验的工具。
进入 *Visual Basic*,第一印象是:“我能做到。”
Visual Basic 3 中的一个新建原始项目。顶部是菜单/工具栏,标识了程序,并提供了加载/保存和调试工具。左侧是工具箱,包含可以添加到应用程序的所有图标。
相似文章
我正在撰写 Visual Basic 的发展史,第一章已发布
作者宣布推出长篇的 Visual Basic 发展史系列文章,第一章涵盖了 BASIC 的起源以及 VB 1.0 的开发历程。
IBM PC,第一部分:问世
详细历史记录,讲述1981年IBM个人电脑的发布,描述了20世纪80年代初碎片化的个人电脑市场,以及IBM的进入如何最终使行业标准化。
90年代末至2000年代初黑客工具的情感之旅
怀旧回顾90年代末至2000年代初的黑客工具,如Back Orifice、NetBus、Sub7和Nmap,反思它们的影响以及Windows 98黑客时代。
前微软开发者打造2.5KB记事本克隆版
前微软开发者Dave Plummer用汇编语言构建了TinyRetroPad,一个仅有2.5KB的记事本克隆,复制了Windows XP记事本的功能,不含AI特性,并批评了现代记事本的臃肿。
微软的6502 BASIC现已成为开源软件(2025)
微软正式开源了1976年的原始6502 BASIC源代码,该代码曾驱动早期的Commodore和Apple II计算机,这标志着历史保存的一个里程碑。