如果微软没有放弃 Visual Basic,它能否替代 Python?
更新于:2025-03-24 11:57:35

请各位同学抓紧手机和手纸,调整好姿势,讲故事时间到啦!

1990 年的时候,如果你想编写一个 Windows 程序,最主流的方法是直接使用原始 Win32 API。

等等!我为什么非要编写一个 Windows 程序呢?

因为这时候恰好处于一个神奇的过渡时期

------ 微机(Microcomputers)正式在商业世界中占据主导地位,而 Windows 3.0 取得了巨大的成功,第一年就卖了 400 万份...... 市场是真的需要各种 Windows 应用程序!

回到开头的 “用原始 Win32 API” 编程!

这通常意味着 WndProc() 外加一大堆 Switch Case,以便 handle 各种 WM_PAINT 消息。这是一种非常糟糕(复杂、繁琐)的编程方式,一点也不友好,特别是对大公司!大公司搞的可都是 enterprise apps(企业级应用),这玩意可不是闹着玩儿的。而且,因为大公司 “养” 了相当数量的大型机程序员,这些人现在玩不转了,怎么办?

救世主 Visual Basic 来了......

对于 “数百万担心微机入侵的大型机 COBOL 程序员来说”,Alan Cooper 回忆道,“Visual Basic 基本上成了他们的安全网” ------ 与 C/C++ 和低级 Win32 API 的陡峭学习曲线不同,Visual Basic 提供了一个更简单的抽象层。

这个 Alan Cooper 是 Visual Basic 中 “可视化” 那部分的爸爸,也有人说他就是事实意义上的 VB 之父。他跟 Bill Gates 的故事其实挺复杂的,这里不多聊。

至于那个 “安全网”,就是字面意思上的安全网,工地上都有,防止你失足摔死的......

有了 Visual Basic:

  • 要设计 UI,可以将组件拖放到所见即所得的画布上;
  • 要向 UI 元素添加行为,选中并从下拉列表中选择一个事件处理程序即可。

同志们突然又行了!大家都可以快速编写 Windows 应用程序啦!

“你知道,多年来,人们会来找我,对我说:‘你拯救了我的职业生涯’”

------ Alan Cooper

而对于许多第一次使用电脑的年轻人来说,Visual Basic 也是他们首次接触的 “编程语言”,VB 的易用性让他们迅速感受到了编程的力量和乐趣......

......

至于 Visual Basic 取得成功的另一个重要原因,是 Cooper 团队做出的一个设计决策

------ 与 Ruby 一样,Visual Basic 也有一个控件面板,每个控件都作为单独的 “动态加载 DLL” 实现,这个自定义控件接口叫 VBX,后来发展成了一个火热的第三方市场。

上面说的那个 Ruby,是 Microsoft 团队和 Cooper 携手后给项目起的新代号(原代号是 Tripod),这个 Ruby 跟后来日本人搞的那个 Ruby 完全无关。

至此,Visual Basic 彻底火了,而整个故事中最激动人心的部分也就讲完了......

......

接下来,Microsoft 又要开始玩 “非受迫性失误” 了......

20 世纪 90 年代末,为了应对 Sun Java 的竞争,Microsoft 将重心挪到了名为 .NET 的新开发框架和通用语言运行时(common language runtime)。

他们积极(甚至可以说是玩命)推动开发人员采用 .NET,而 Visual Basic 则被彻底重写,从一种过程语言转变为一种更适合新框架的面向对象语言。

Visual Basic 6.0 的后续版本被称为 VB.NET,于 2002 年发布,它彻底改变了原产品的精神,并最终为 Visual Basic 敲响了丧钟。

那这个钟是怎么敲的呢?

  • VB.NET 是一种更复杂、功能更全面的编程语言;
  • 与 Microsoft 的新玩具 C# 共享许多复杂的概念,什么线程啦、继承啦、多态性啦。

当你变的学习曲线很高,学习难度很大,关键是...... 你还不提供从 “经典” VB 迁移到 “高级” VB.NET 的可靠路径(虽然发布了移植工具,但不靠谱)!!!

那么,大家都跑了呗,不跟你玩了 ------ 2006 - 2007 年,Visual Basic 系列的开发者使用率下降了 35%。

Microsoft 事实上辜负了开发人员的信任,面对从头开始使用 VB.NET 或转向 JavaScript 和 PHP 等新的 Web 原生语言,大多数人选择了后者。

这里转一篇当年的文章,作者是一位 .NET 讲师:

几乎所有的 Visual Basic 6 程序员都对 Visual Basic 6 的表现感到满意。他们乐于做一名公交车司机:下午 5 点(或者天气特别好的话是 4 点半)下班回家,而不是工作到午夜;周末能和家人一起玩乐,而不是拖着疲惫的身躯回到办公室。他们并不为 Visual Basic 6 缺少运算符重载或多态性而感到惋惜,所以也没怎么抱怨。

然而,Microsoft 听到的声音来自那 3% 的 Visual Basic 6 程序员,他们积极渴望成为战斗机飞行员。这些人花时间参加各种会议,在 CompuServe 论坛上发帖提问,回应文章。他们不满足于仅仅幻想用一枚响尾蛇导弹击中在交通中突然变道的汽车,而是要求 Microsoft 在他们的 “巴士” 上安装加力燃烧室、导弹、反制措施和抬头显示器。而 Microsoft 也照做了。

......

行了,故事讲完了,开始答题!

如果微软没有放弃 Visual Basic,而是将其地位放到与 C# 平等......

上面不是说了嘛,Microsoft 在他们的 “巴士” 上安装加力燃烧室、导弹、反制措施和抬头显示器......

所以...... 不好说是谁放弃了谁......

它能否替代 Python?

Python 3 替代 Python 2 的过程,倒是有点儿像 C# 取代 VB.NET 的过程......

微软将 F# 作为数据科学的语言是妙笔还是败笔?

当市场采用一项新技术时,用户会遵循一种模式,我先画个图~

  • 绿色部分:早期采用者 ------ 喜欢尝试新技术的人;
  • 蓝色部分:实用主义者 ------ 只关心使用技术来完成某件事的人;
  • 橙色部分:保守主义者 ------ 实用主义者的一种,但更厌恶风险;
  • 灰色部分:老顽固 ------ 主动避免新事物的人。

从 “早期采用者” 转变为 “实用主义者" 是非常困难的,很多技术都死在这一步了。

因为 “实用主义者" 有个特质,他们通常会观察其它 “实用主义者",看到大家都用了,我再用!于是容易出现 “一哄而上” 或 “一哄而散” 的情况。

不信你来个 “扪心自问”,想想自己是怎么从 Windows 7 换到 Windows 10 的,而且今天的你可能仍在顽强的说服自己 ------ 没必要升 Windows 11~

“实用主义者” 不会根据 “哪种技术更好” 来做出技术决策,他们更看重所谓的 “群体安全”!

F# 好不好,是不是妙笔,其实一点儿都不重要!

在像我这种 “实用主义者” 撞上南墙、切实的感受到痛苦、且真正的无计可施之前,反正我是不会对 F# 感兴趣的,因为 C# 真的非常好。

主要是,F# 的推销对象貌似就是我这种 C# 开发者吧,好像是这样的,不是吗?