BASIC四十年介绍
BASIC四十年介绍
你知道吗? BASIC 语言今年四十岁了。和只有九岁的 Java 语言以及只有三岁的 C# 语言相比, BASIC 可以算是程序设计语言中的长辈了。可奇怪的是,某些程序员居然坚持认为 BASIC 是所有语言中最“幼稚”的语言,这不是在颠倒黑白吗?话说回来,就算 BASIC 语言长得嫩一点,那也是人家保养有方、青春永驻啊!现在, BASIC 家族的支持者遍布全世界(在下不才也勉强算一个),未来的 BASIC 语言更没理由衰微——依我看, BASIC 多半会变成程序设计领域里的“老顽童”,嘻嘻哈哈之余,没准儿还会练就一身绝世的武功;这其中的原因嘛,很简单:在过去的四十年里, BASIC 几乎每天都充满了活力,这样一种健康活泼、激情无限的语言当然会在新世纪里大有作为!
? 名门正派
四十年前的 1960 年代是程序设计领域混沌初开的时代。在那个时代里,使用高级语言编写程序的人并不多见,可供选择的高级语言也寥寥无几。 Fortran 语言、 Algol 语言和 COBOL 语言异常繁琐,思想超前的 LISP 语言又在执行效率上表现不佳。用今天的眼光看, 1960 年代的程序员和学习程序设计的大学生们的确苦不堪言。
为了让程序设计和学习程序设计的过程变得更加轻松和愉快, 1960 年代早期, Dartmouth 学院的 J. Kemeny 和 T. Kurtz 开始设计一种新的语言。他们为这种新语言定下的设计原则包括:
? 简单,尽可能地简单
据说, J. Kemeny 和 T. Kurtz 这种尽量追求简单的设计理念来自爱因斯坦的科学哲学观。在理论物理学领域,爱因斯坦毕生所持有的斯宾诺莎式的哲学信仰及其在理论研究中对简洁和优雅的追求历来都为科学史家们所称道。今天,我们已经很难判断, J. Kemeny 和 T. Kurtz 在设计 BASIC 语言时是否具备了爱因斯坦那样深邃的哲学思辨精神;但毫无疑问的是, BASIC 语言的两位创始人把爱因斯坦的思维方式发挥到了极致,他们在摒弃繁冗、追求简约方面的实践非常成功:早期的 BASIC 语言只有 14 条语句,但它却能解决当时已知的大部分计算问题。 BASIC 在语法上的简洁与 Fortran 、 Algol 和 COBOL 语言的繁琐形成了鲜明的对比。
? 像英语,尽可能地像英语
从现代英语中借鉴关键词和语法规则并不是 BASIC 的创举, Fortran 语言已经在这一点上为后来者做出了很好的表率。不过, BASIC 语言的设计者对此显然更为注重,这甚至可以从“ BASIC ”这个语言名称上反映出来。人们通常认为, BASIC 这个名字只是一系列单词的缩写,但少数研究者指出, BASIC 这个名字似乎与 C. K. Ogden 的一项发明有关。 1930 年,为了让非英语国家的英语学习者更快地具备英语交流能力, C. K. Ogden 别出心裁地发明了一种只有 850 个单词和几十条语法规则的“简化版英语”,并将其命名为“ Basic English ”。尽管这门奇怪的英语并没有像 C. K. Ogden 最初所设想的那样成为一种全球通行的“世界语”,但 C. K. Ogden 对英语进行简化以方便交流的思想在事实上促成了今天“商务英语”、“科技英语”等现代英语形态在全世界的流行。从这一点看,程序设计领域里的 BASIC 语言的确与 Basic English 有一定的血缘关系,这种血缘关系也在事实上为 BASIC 语言的流行铺平了道路——对于第一次接触程序设计的人来说, BASIC 语言中的英语语法和英语单词看上去显然要比 LISP 语言中层层叠叠的括号亲切得多。
1964 年, BASIC 语言正式诞生。关于这种新语言的名称, J. Kemeny 和 T. Kurtz 给出的官方注解是: BASIC 是“初学者通用符号指令代码( Beginner's All Purpose Symbolic Instruction Code )”的缩写。第一个 BASIC 语言运行环境由 J. Kemeny , T. Kurtz 和几个学生在 GE 系列计算机上实现,并成为了 Dartmouth 学院为 GE 系列计算机开发的分时软件系统 DTSS 的一部分。
从语法特征上看,这种新的语言继承了 Fortran 和 Algol 语言的许多优点,其代码的外观与 Fortran 语言非常接近。但与以往大多数高级语言不同的是, BASIC 语言是一种“交互式”的语言。也就是说,大多数 BASIC 语言程序以解释的方式运行,人们用不着预先编好全部代码并使用批处理的方式提交给计算机处理;使用 BASIC 语言时,我们可以在一种更加舒适、更加人性化的环境下,一边键入代码,一边观察代码的执行结果,并随时对代码进行修改和完善。 BASIC 语言的交互式特征被后来的许多解释型语言和脚本语言所借鉴。一个最典型的例子是, Smalltalk 语言的许多实现(如 VisualWorks )不但继承了 BASIC 语言交互式编程的基本特征,而且还更进了一步,把语言的编辑和运行环境、类库、调试界面、功能插件都整合在了一个可以充分交互的集成环境里。
初生的 BASIC 语言首先在教学实践中取得了成功。从 1964 年开始, J. Kemeny 和 T. Kurtz 在 Dartmouth 学院使用 BASIC 语言讲授程序设计课程。学生们对这种入门型语言的印象极为深刻,他们认为,掌握 BASIC 语言非常容易,在掌握了 BASIC 语言之后,学习 Fortran 等的高级语言也变得相对简单了。应当说, J. Kemeny 和 T. Kurtz 设计 BASIC 时的设想大多被后来的教学实践所证实。很快,其他一些开设计算机课程的院校陆续将 BASIC 语言纳入了教学计划,研究人员也在随后的几年内将 BASIC 语言移植到了好几种不同的计算机系统上。
J. Kemeny 和 T. Kurtz 在 Dartmouth 学院实现的 BASIC 语言被人们称作 Dartmouth BASIC 。在随后的几十年里, BASIC 语言的两位创始人,以及他们的同事和学生们一直致力于对语言本身的语法特性进行优化和改进。 1983 年以前, Dartmouth BASIC 已经陆续发展了七个版本。在 J. Kemeny 和 T. Kurtz 眼中, 1964 年的 BASIC 语言还远未成熟,那时的 BASIC 还只是一组编有行号的指令序列,其中还穿插着惹人生厌的 GOTO 和 GOSUB 语句。由 E. W. Dijkstra 发端,于 1970 年代兴起的结构化程序设计运动不但催生了 Pascal 等一大批结构化程序设计语言,也为 BASIC 语言的进一步发展指明了方向。 1971 年, Dartmouth BASIC 新增了带参数、可调用的外部子程序功能, A. Luehrmann 还为 Dartmouth BASIC 实现了一个交互式的图形库,这让 BASIC 语言在结构化的道路上前进了一大步。 1976 年, Dartmouth BASIC 第一次拥有了完整的结构化语法规则。 S. J. Garland 在 Dartmouth BASIC 的基础上,实现了一种完全符合结构化编程思想的 SBasic 语言( SBasic 是“ Structured Basic ”的缩写)。从这一年起, Dartmouth 的学生们编写 BASIC 程序时,就已经不再需要行号和 GOTO 语句了。 1979 年, Dartmouth BASIC 第一次引入了“包”(有时也被称为“组”)的概念,这是一种类似于 Ada 语言的“包”结构的语法特征,它可以使 BASIC 语言拥有初步的数据封装能力。
1983 年, Dartmouth 学院的一些学生说服 J. Kemeny 和 T. Kurtz 将 Dartmouth BASIC 语言变成一种商业软件在市场上销售。为此,一家名为 True BASIC 的公司正式成立,公司推出的产品也叫 True BASIC ,它其实是由 Dartmouth BASIC 第 7 版演化而来的。最早的 True BASIC 可以在 IBM PC 和 Macintosh 计算机上运行,既能以解释方式执行 BASIC 代码,也能将其编译成机器语言,以提高运算速度。从问世的那一天起, True BASIC 就是一种纯粹的结构化程序设计语言,它在后续的每一次版本变迁中都始终不渝地坚持走结构化的道路,并一直遵循着 BASIC 语言历来奉行的简约主义精神。今天, True BASIC 已经发展出了 DOS 、 MacOS 、 Windows 、 Unix 和 Linux 等多种版本,并提供了图形、声音、窗口操作、数学运算等丰富的功能库。
和其他主流程序设计语言的发展规律相仿, ANSI 和 ISO 等标准化组织也先后为 BASIC 语言制定了相关的标准。这包括 ANSI 于 1978 年, ISO 于 1984 年通过的“最小化 BASIC 语言标准( Standard for Minimal BASIC )”,以及 ANSI 于 1987 年, ISO 于 1991 年通过的“完整的 BASIC 语言标准( Standard for Full BASIC )”。 ANSI 和 ISO 组织制定 BASIC 语言标准时的主要依据是 Dartmouth BASIC 和 True BASIC 。在今天我们可以见到的所有 BASIC 语言产品中,与 ANSI 和 ISO 的 BASIC 语言标准吻合得最好的自然也是 True BASIC 了——这句话的另一句潜台词是:很遗憾,除了 True BASIC 以外,目前市场上的其他 BASIC 语言几乎都与 ANSI 和 ISO 的标准相去甚远。
毋庸置疑, True BASIC 以及 ANSI 、 ISO 的 BASIC 语言标准代表了 BASIC 语言的“名门正派”。但不幸的是,“名门正派”在市场上并没有取得应有的成功。正如本文后续部分将要提到的那样,从 1970 年代 BASIC 语言在个人电脑市场上崭露头角开始, J. Kemeny 和 T. Kurtz 就几乎在普通程序员的心中消声匿迹了。当 Microsoft 把 BASIC 语言当作“摇钱树”卖给了几乎所有个人电脑用户的时候, Dartmouth 学院的研究者们只会在实验室里指责市场上的 BASIC 都是些过时的垃圾;当 QuickBASIC 、 Turbo Basic 等非 Dartmouth 血统的结构化 BASIC 语言在市场上通行无阻的时候, True BASIC 尽管身出名门,却无法抢到哪怕 10% 的市场份额;当 Visual Basic 、 VBScript 和 Visual Basic .NET 羽翼渐丰的时候, ANSI 和 ISO 的标准也早已失去了应有的效力……很多人抱怨 Microsoft 不遵循 ANSI 和 ISO 的 BASIC 语言标准,以至于市场上的各种 BASIC 至今无法统一,但却很少有人问一问 Dartmouth 学院的研究者们,为什么不能把“名门正派”的产品尽快推向市场?为什么总是让先进的技术和先进的标准在纸面上停滞不前?为什么在 Microsoft 已经成为了事实上的标准制定者之后,还要坚持所谓的“正统观念”?
当然,我没有指摘 J. Kemeny 和 T. Kurtz 等人缺乏商业头脑的意思。我只是想告诉大家, BASIC 语言的发展史中确实存在这样一个悖论:一方面, BASIC 语言在计算机领域,特别是个人电脑中四处开花,迅猛发展;另一方面, BASIC 语言的实现版本千差万别,程序员们莫衷一是。也许, BASIC 语言天生对“简约”的追求与现实中软件系统的复杂性是一对永恒的矛盾。当 Microsoft 等实用主义者发现类似的矛盾难以调和的时候,他们会粗暴地修改 BASIC 语言的语法规则和设计理念,并用一种折中了“简单”与“实用”的新版本向“名门正派”发起挑战。到 1980 年代的时候,这种挑战已经发展到了让 BASIC 语言的创始人们坐立不安的地步。 1984 年, J. Kemeny 和 T. Kurtz 出版了《回到 BASIC ——语言的历史、堕落和未来( Back to Basic: The History, Corruption, and Future of the Language )》一书,并在书中鲜明地指出,所有 Dartmouth 学院以外的 BASIC 都或多或少地背离了 BASIC 语言的设计初衷,它们都是“浪迹街头的 BASIC 语言( Street Basic )”,应当尽快“回家”。 J. Kemeny 和 T. Kurtz 所说的 BASIC 的“家”当然是指以 True BASIC 为代表的正统 BASIC 而言。此外,在 1999 年的一篇文章中, T. Kurtz 还对 Microsoft 公司在 Visual Basic 中把原本全大写的 BASIC 名称变成了“ Basic ”这样大小写混合的做法表示了不满。 T. Kurtz 认为,全大写的“ BASIC ”一词才是“初学者通用符号指令代码”的缩写,才能体现出 BASIC 语言面向初学者的设计初衷和精神实质。
J. Kemeny 和 T. Kurtz 维护正统 BASIC 尊严的做法无可厚非,这就像武林中名门正派的高手在旁门左道面前总会摆出满脸矜持以示高人一等一样。但市场规律并非哪个知名学者的一两句“呼吁”所能逆转:从 BASIC 祖师爷召唤 BASIC 回家至今已经整整二十年了, BASIC 语言却在“浪迹街头”的道路上越走越远——这样残酷的现实除了让我们对“名门正派”无限同情以外,还能说明什么问题呢?
? 胜者为王
接下来,我们不妨看一看,那些被 J. Kemeny 和 T. Kurtz 视为“街头浪子”的 BASIC 语言是如何在 Dartmouth 学院以外蓬勃发展起来的。
在 BASIC 世界里, Microsoft 是市场上的实际领导者,也是不折不扣的异教徒。就像几百年前新教在欧洲和北美大陆的迅速兴起一样, Microsoft 在 BASIC 语言市场上的成功也几乎可以用“势如破竹”来概括。
1975 年时,计算机历史上最大的变革——个人电脑的风暴已经蓄势待发了。就在这个时候, Microsoft 公司的两位创始人, Paul Allen 和 Bill Gates 为 MITS 公司生产的个人电脑雏形 Altair 8800 开发了一个 BASIC 语言解释器,这也是 Microsoft 公司的第一件产品。今天,当我们回过头来,再次检视那个英才辈出的年代时,我们不难发现:个人电脑和 BASIC 语言的结合实际上是一种无奈的选择,因为那个时候的个人电脑运算能力都非常有限,根本就无法运行任何复杂的应用,而语法简单、交互性强的 BASIC 语言正好可以满足个人电脑的需要;另一方面,正是个人电脑和 BASIC 语言的珠联璧合造就了 Bill Gates 和 Microsoft 的成功,这大概是因为,当时没有哪个大公司愿意纡尊降贵去编写那么“简单”的 BASIC 解释器,而大学还没有毕业的 Bill Gates 当然不会在意自己的产品是否有足够的技术含量。于是,一个能在 Altair 8800 计算机上运行的,不足 4KB 大小 BASIC 语言解释器揭开了 Microsoft 抢占软件市场的序幕。
1975 到 1979 年间, Microsoft 把自己的 BASIC 语言解释器先后移植到了 TRS-80 、 Commodore 、 Atari 等个人电脑上。 1977 年, Apple 公司的 S. Wozniak 设计 Apple 电脑时,为了让 Apple 电脑也拥有 BASIC 语言运行环境,自己开发了一种只支持整型运算的 Integer BASIC 语言。 Integer BASIC 在功能上远不如 Microsoft 的同类产品强大。于是, 1977 年底 , Microsoft 和 Apple 又共同为 Apple II 开发了名为 Applesoft 的 BASIC 语言解释器。不过, 1979 年以前, Apple 计算机内置的 BASIC 语言解释器仍然是 Integer BASIC , Applesoft 仅以磁盘方式发售。 1979 年,著名的 Apple II Plus 计算机中才第一次内置了 Applesoft 。随着 Apple II Plus 在商业上的成功, Microsoft 几乎为当时市场上的所有个人电脑提供了 BASIC 语言解释器。
1981 年, IBM PC 的出现掀起了个人电脑发展的新高潮。众所周知, Microsoft 为 IBM PC 提供了磁盘操作系统 PC-DOS ,同时, Microsoft 也用 MS-DOS 的名称为其他 PC 兼容厂商提供一模一样的操作系统软件。 PC-DOS 内嵌了一个名叫 BASICA 的 BASIC 语言解释器。 BASICA 代表“高级的 BASIC ( Advanced BASIC )”,尽管它一点也不高级,还不具备结构化语言的特征。类似地, MS-DOS 中也内嵌了一个同样的 BASIC 解释器,只不过名字变成了 GW-BASIC (有人说 GW 在这里是“ Gee Whiz ”的缩写,也有人说 GW 其实代表了 Bill Gates 的名字 Gates William )。值得注意的是, BASICA 和 GW-BASIC 都是捆绑在 DOS 系统中销售的免费软件——不用说,这也是 Microsoft 的一贯“伎俩”了。
BASICA 和 GWBASIC 既非结构化语言,执行速度也不快,但却与 DOS 系统一道占领了 PC 市常 1982 年, Microsoft 首先解决了 PC 机上 BASIC 语言运行速度慢的问题,他们为 IBM 开发了一种 BASIC 语言编译器 BASCOM 1.0 。
1984 年, Apple 公司推出了第一种具备图形界面的个人电脑 Macintosh , Microsoft 也相应地开发出了专用于 Macintosh 电脑的 BASIC 语言解释器 MS-BASIC 1.0 for Mac ,包含编译功能的 MS-BASIC for Mac 也在不久后上市。
1985 年, True BASIC 语言的提醒下, Microsoft 推出了一种完全结构化的 BASIC 语言—— QuickBASIC 1.0 。 QuickBASIC 有一个强大的集成开发环境,既包含 BASIC 代码的解释功能,也包含编译功能。与 True BASIC 追求简约的设计思路略有不同, QuickBASIC 在设计上更注重语言功能的完整和执行效率的提高。正如其名称所暗示的那样, QuickBASIC 几乎是那个时代里运行速度最快的 BASIC 语言,但其在语法上对“正统” BASIC 语言的背叛也成为了 Microsoft 为 T. Kurtz 等人诟病的原因之一。 QuickBASIC 的最终版本是 1988 年发布的 QuickBASIC 4.5 。随后, 1989 年, Microsoft 以新的名字推出了两个功能更丰富的 BASIC 开发环境,即 BASIC PDS ( PDS 在这里代表“专业开发系统”)的 7.0 和 7.1 版本。 1991 年, Microsoft 又在 MS-DOS 5.0 中捆绑了只包含解释功能的 QuickBASIC 的简化版本 QBasic 1.0 。
胜者为王。 Microsoft 公司在 BASIC 市场上取得了空前的成功,也自然成为了市场的领导者和 BASIC 语言标准的实际制定者。在 Microsoft 看来, Dartmouth 学院里的人过于迂腐,而 ANSI 和 ISO 的 BASIC 语言标准又不能为我所用,此时, Microsoft 所能做的就是不断用新的 BASIC 产品抢占市场,并不断按照自己的思路对 BASIC 语言进行改造。也许,从理论上很难讲清楚 Microsoft 的做法对 BASIC 语言的发展是利大于弊,还是弊大于利,但从市场角度看,胜利者的做法总是对的。无论如何,从 1980 年代起, BASIC 语言已经沿着 Microsoft 的方向一去不返了。
除了 Microsoft 以外,在 BASIC 语言市场上获得过成功的公司屈指可数。 Borland 公司可以算一家。要不是 Borland 在推出了 Turbo Basic 之后,因为公司内部原因而放弃了 BASIC 市场的话, Microsoft 后来的 Visual Basic 也许就不会有一览众山小的架势了。 1987 年,在开发工具领域毫不含糊的 Borland 公司成功地推出了 Turbo Basic 1.0 。 Turbo Basic 的原型是 1980 年前后由 B. Zale 开发的 BASIC/Z 。 Turbo Basic 和 QuickBASIC 非常类似,在某些功能上还更胜一筹。遗憾的是, 1989 年, Borland 发布了 Turbo Basic 1.1 后便放弃了该产品线。 Turbo Basic 的最终命运是, B. Zale 收回了自己的产品,并独立将其发展为今天的 PowerBASIC 。
? 脱胎换骨
如果说, Microsoft 的 GW-BASIC 和 QuickBASIC 仅是在商业上取得了成功,而没有为 BASIC 语言引入更多新思想的话,那么,从 Visual Basic 到 Visual Basic .NET 的历程应可算是 Microsoft 为 BASIC 语言所做的最大贡献了。
Visual Basic 是最早在商业上获得成功的一种快速应用开发( RAD )工具。它的出现背景是, 1985 年问世的 Windows 操作系统在 1990 年代迅速普及,程序员对于快速图形化应用开发的需求越来越强烈。 1987 年, A. Cooper 和他的同事们在 Microsoft 编写了一个可视化开发工具的原型,它就是 Visual Basic 的前身。 1991 年, Visual Basic 1.0 问世。 Visual Basic 集成了 QuickBASIC 的语法特性、编译功能和 A. Cooper 的可视化开发环境,允许程序员在一个所见即所得的图形界面中迅速完成开发任务。这对以往几十年里程序员们所熟悉的“编码-编译-连接-运行”的开发体验来说,的确是一个脱胎换骨的变革。
1992 年, Microsoft 又特意为当时仍占有相当市场份额的 DOS 操作系统发布了 Visual Basic 1.0 的 MS-DOS 版。与 Windows 版本类似,程序员可以在 VB 中通过鼠标点击和拖曳开发出基于事件驱动模型、拥有窗口和菜单机制的 DOS 程序。此后不久, DOS 退出了历史舞台,这个版本的 Visual Basic 也成了 Microsoft 在 DOS 环境下发布的惟一的一款可视化开发工具。
1993 年, Microsoft 发布了 Visual Basic 3.0 。这一版本的 Visual Basic 支持 ODBC 、 OLE 等高级特性。 1995 年发布的 Visual Basic 4.0 不但支持 Windows 95 系统下 32 位应用程序开发,而且为 Visual Basic 引入了类( Class )等面向对象概念。 1998 年发布的 Visual Basic 6.0 是 VB 向 VB.NET 转变前的最后一个版本,也是传统 Visual Basic 中功能最全、应用最广的一个版本。
更震撼人心的变革发生在 2001 到 2002 年间。 Microsoft 以无比惊人的勇气进军 .NET 平台,同时也为程序员带来了一大堆让人应接不暇的新技术和新概念。伴随着 .NET 平台的横空出世, Visual Basic 又经历了一次脱胎换骨的革命。为了实现 .NET 一统江湖的伟大构想, Microsoft 甚至不惜让新版本的 Visual Basic .NET 放弃与传统 VB 程序的兼容。在 Visual Basic .NET 中,我们看到了完整的面向对象特性,看到了 .NET 风格的内存管理和异常处理机制,看到了对 ASP.NET 、 Web Form 和 Web Services 等新技术的支持,同时也遗憾地看到,已有的大量 Visual Basic 代码必须经过改动才能在 .NET 平台上顺利运行。
2002 年正式发布的 Visual Basic .NET 让 BASIC 语言第一次拥有了和 C++ 语言、 Java 语言一样强大的语法功能,使 BASIC 语言可以和业界最主流的运行环境 .NET 站在一起并肩战斗,也让四十年前 J. Kemeny 和 T. Kurtz 为 BASIC 语言确立的“简单至上”的精神实质丧失殆荆今天,我们看到的 Visual Basic .NET 已经成了多种语言特征的混合体,在这个 Microsoft 一手塑造的巨人身体里,既有早期 BASIC 的单纯外貌,也有 QuickBASIC 的实用主义风格,既有 .NET 平台的无所不能,也有大多数面向对象语言都具备的复杂语法……我不知道 Microsoft 还会为 Visual Basic .NET 引入哪些风格特性,我只知道, Microsoft 手中的 BASIC 语言已经越来越难以体现“初学者通用符号指令代码”的原始内涵了。
? 风雨江湖
Visual Basic .NET 并不能代表 BASIC 语言的一切。在某种意义上, Microsoft 为 VBScript 语言及其相关技术所做的努力更能反映出 BASIC 语言的发展趋势。
从 1993 年开始, Microsoft 为 Office 软件提供了一种与 Visual Basic 类似的应用开发环境—— Visual Basic for Applications 。它是 Visual Basic 的一个子集。从应用角度看,它为 Office 用户提供了一种定制应用软件功能的可编程方法,我们可以把它看成是脚本化 BASIC 语言的前身。 1995 年,为了满足 Internet 和 IE 浏览器的应用需求,也为了和 JavaScipt 语言展开竞争,脚本语言 VBScript 正式诞生。
VBScript 语言对 Visual Basic 做了最大程度的简化,尤其是对数据类型进行了大刀阔斧地合并。这使得 VBScript 语言在某种程度上与 J. Kemeny 和 T. Kurtz 所提倡的正统观念靠得更近了些。最重要的是, VBScript 为程序员们提供了一种远比 JavaScript 、 csh 、 ksh 、 Perl 、 Python 等其他脚本语言简单,也更容易为程序员们所掌握的脚本语言。在 Windows 平台上,配合 Microsoft 的 ActiveX 、 ASP 等技术体系,程序员们可以用 VBScript 语言迅速完成包括原型开发、文件管理、 Web 应用、数据库访问等在内的大多数日常任务。就像当年交互式开发环境的普及一样,脚本语言正逐渐成为最近几年里程序设计语言发展的又一个亮点。 VBScript 语言将脚本语言的学习难度降到了最低点,这也许表明, BASIC 语言在脚本语言的世界里还会有更大的作为。
此外,如果走出 Microsoft 营造的 BASIC 王国,我们仍然能在许多场合找到各种充满活力的 BASIC 语言:首先,许多提供二次开发功能的商业软件(如群件系统、工作流管理系统和数据仓库系统)都将 BASIC 或 VBScript 语言作为首选的开发环境;其次, PowerBASIC 、 REALbasic 、 FutureBasic 、 OmniBasic 等为数众多的商业软件仍然在 Microsoft 的王国外围坚守着自己的阵地;再次,随着开源运动的蓬勃发展, wxBasic 、 XBasic 、 Yabasic 、 SmallBASIC 、 Bywater BASIC 等开放源码的 BASIC 语言解释器和编译器为程序员们发掘 BASIC 语言的潜力提供了最好的资源…… BASIC 的江湖依然是一派风云变换的热闹景象。有人说,这反映了 BASIC 语言的无秩序和不规范;但混乱未必就是坏事,谁又能断言,这种混乱的起因不会是 BASIC 语言天生就具有的那种旺盛生命力呢?
? 天下大势
《三国演义》说,“天下大势,分久必合,合久必分”。今天, BASIC 的境况看上去比三国割据的形势更为微妙:一方面, Visual Basic .NET 已经成为了 Microsoft 阵营中事实上的 BASIC 语言标准;另一方面,在 Microsoft 王国之外,层出不穷的 BASIC 变种也实在让人们难以取舍。
未来的 BASIC 语言需要统一吗?未来的 BASIC 语言将会以什么样的方式统一? BASIC 语言的创始人能看到 BASIC 回归到简约、优雅的理想状态吗?也许,我们没必要认真寻找这些问题的答案;只要 BASIC 这个程序设计领域里的“老顽童”能不断为我们带来快乐,能让我们永远保有一颗童心,我们就非常满足了——为什么一定要让 BASIC 承担太多的责任和期望呢?