近段时间,微软内部正在用新技术不断刷新内部应用,譬如其使用 Rust 取代 C/C++ 编写 Windows 驱动;放弃了 Electron 框架而采用 Edge WebView 2 来重写 Teams;WordPad 停止更新,官方建议采用 Microsoft Word 或者 Windows 记事本;Microsoft Store 的 Web 版本中放弃旧的 React 代码库取而代之使用的是 Shoelace、Lit、Vite 和 C# ASPNET 后端的现代 Web 版本......
当前,这家科技巨头在“Windows 客户端已弃用功能”列表中又添加了一名新成员——VBScript。微软计划在未来的 Windows 版本中逐步淘汰已使用了近 30 年的 VBScript,“最初,VBScript 按需功能将被预安装,以便在您准备淘汰 VBScript 之前可以无缝使用,直至后续被完全删除。”
诞生于 27 年前,13 年未更新
作为一种脚本语言,VBScript 于 1996 年首次亮相,凭借易于学习、与 Windows 环境无缝集成、可用于网页编程等方便的功能特性,它在 Windows 平台曾被广泛使用,尤其是在网页脚本和自动化任务方面。
“微软 Visual Basic Scripting Edition 在各种环境中实现了自动化脚本,包括在 IE 中进行 Web 客户端脚本编程以及在 Microsoft Internet Information Services 中进行 Web 服务器脚本编程,”微软在其帮助文档中解释道。
这也成为很多程序员的编程的回忆:
我的入门语言便是 VBScript;
在曾经看《计算机是怎样跑起来的》这本书时,我使用 Visual Basic Scripting Edition 复现了“剪刀石头布”小游戏。
遗憾的是,一方面,随着 2006 年 PowerShell 的推出,VBScript 黯然失色,很多人将其看成被滥用的安全噩梦;另一方面,微软从未设法让其他浏览器制造商支持 VBScript,因此在微软专有的环境之外,Web 开发人员倾向于使用 JavaScript 来执行客户端任务,使用 VBScript 的用户越来越少。
最终,VBScript 的最新版本停留在了 2010 年 5.8 版本。
如今,微软宣布在过渡期,VBScript 将作为按需安装使用,其中功能按需 (FODs) 是 Windows 操作系统中的可选功能,如 .NET Framework(.NetFx3)、Hyper-V 和 Windows Subsystem for Linux,它们不会默认安装,但可以根据需要随时添加。
试图拯救 VBScript 的开发者
面对这种情况,曾经有不少 VBScript 爱好者不愿放弃,试图挽救。
据 TheRegister 报道,2017 年,微软软件工程师 Zhihua Lai 创建了一个名为 IsVBScriptDead.com(https://isvbscriptdead.com/)的网站,他在网站开篇便写到,「VBScript 或 VBA 既没有消亡,也没有垂死,它仍然是一种非常稳定的脚本语言」。
然而,两年后的 2019 年 8 月,微软已经表现出不想再用 VBScript 的预兆,其在 IE 中禁用了 VBScript,并在 2022 年 6 月淘汰了 IE 浏览器,因此 VBScript 仍然活跃且运行良好的说法变得更加站不住脚。
尽管如此,最后更新于 2020 年 12 月 31 日的 VBScript 网站坚持称:"VBScript 可能看起来已经过时,而对 VBScript 的支持已经停止,但它仍然在许多地方使用。Windows 管理员可能会发现学习/编写 VBScript 比 Powershell 脚本更容易。"
现在随着微软最新举措的发布,彻底证实了 VBScript 即将彻底消亡,这也意味着依赖于VBScript 的 Microsoft Deployment Toolkit(MDT)迎来了结束。现在,MDT 已经收到通知,不再支持 Windows 11。
另外,Microsoft 还默认禁用了 Windows 10 上 Internet Explorer 11 中的 VBScript。
VBScript 为何会走向末路?
截至目前,微软并没有透露弃用 VBScript 的细节,但是不少开发者猜测,它可能与微软早些时候停用 IE 浏览器有关。
从外部来看,微软计划停用 VBScript 也有可能是出于安全担忧,正如上文所述,VBScript 是不少安全工程师的噩梦,它成为恶意软件传播途径之一。
此前,有不少黑客使用 VBScript 来分发恶意软件感染用户的计算机,包括臭名昭著 Lokibot、Emotet、Qbot,以及最近的 DarkGate 等恶意软件。
而从内部来看,VBScript 是一个 Windows 特定的技术,无法跨平台运行。随着移动设备和其他操作系统的普及,这使得它在多平台环境中变得不切实际。与此同时,外部如 JavaScript、PowerShell 和 Python 等更强大、更现代的脚本语言和技术出现,VBScript 变得过时显而易见。
面对 VBScript 的淘汰,不少网友似乎“喜闻乐见”:
大约 20 年前,我曾使用过它来编写一些脚本,用于操作和报告其他内容的文本文件输出。如果我当时使用的是 Linux 系统而不是 Windows 系统,我本可以使用 awk,但当时使用的是 Windows,我不被允许安装不是原本就存在的东西。
我对它的记忆很模糊,但我确实记得它... 糟糕透了。我没有再次体验的愿望。
我怀疑它不会被怀念,除了一小部分人,他们继承了一些古老的脚本,必须对其进行逆向工程和重写成其他不那么晦涩的东西。
你是否使用过 VBScript?对于它还有什么样的印象?
参考:
https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features
https://www.theregister.com/2023/10/10/microsoft_says_vbscript_will_be/