BASIC——最理想的初学者语言

Author: 潘正伯 Date: 1998年 第05期 01版

  13年前,《科学的美国人》曾出过一期计算机软件专辑,在专辑中有这么一句:“程序设计语言加上它们的‘方言’至少有几百种,甚至可能有几千种。”1995年,《BYTE》杂志在创刊20周年特刊中发表了《程序设计语言发展简史》一文,文中列出了从1946年到1995年这50年中,在社会上产生过相当影响的程序设计语言,共计四十余种。这些语言中的一部分传到我国,几经筛汰,有些随着教学和应用逐渐得到普及,其中最常见、最流行的莫过于BASIC、PASCAL、FORTRAN和C等几种。
  这几种高级语言中,BASIC被公认是易学、易用、发展快、变化大、覆盖广的初学者语言。特别是在80年代初,当美国出现兼具解释和编译功能的结构化BASIC(即我们称之为第二代BASIC的True BASIC、Turbo BASIC和Quick BASIC)后,BASIC在美国成了最受欢迎的程序设计语言。美国人对它的评价是“Low threshold,High ceiling”(直译为“门槛低,天花板高”,即入门易而潜力大)。
  Windows风行后,程序设计的难度陡然提高,几乎给广大业余程序员带来灭顶之灾。在此期间,一批甩开TXT(文本)状态,采用GUI(图形)状态,能在Windows或 OS/2环境下运行的BASIC(即被称为第三代BASIC的Visual Basic、CA-REALIZER、GFA BASIC和Power BASIC等)如雨后春笋,应运而生。于危厄中解救了一大批非软件专业程序员,使他们很快就能在Windows (OS/2)提供的广阔天地中纵横驰骋,开发他们所熟悉行业的应用软件。事实上,只有各行业的应用软件极大地丰富了,才会有计算机应用领域的真正繁荣。
  近几年来,我们一再呼吁社会各界(尤其是教育界)要重视BASIC的推广与应用。抓住Quick BASIC与第三代BASIC有最好的兼容性这一特点,让Quick BASIC成为计算机专业与非计算机专业学生的入门语言,通过两代BASIC的衔接,解决我国大中专学生和广大计算机用户从DOS向Windows(OS/2)过渡这一棘手问题。经过三年实践检验,证实了这一方案的有效性。
  我们竭力推荐以BASIC为初学者的首选语言,并不意味着我们主张“一花独放”——用BASIC去贬低或取代其他几种常用语言。
  每种经受住时间检验、得到广泛使用的程序设计语言,都有它特定的目标和存在的价值,都有自己的短长。BASIC的特点决定了它是很理想的初学者语言;至于从事繁复的科学和工程计算,则应首推Fortran;结构严谨的算法描述,则属Pascal之所长;而构筑具有良好可移植性的系统,又是C语言的拿手好戏。为了适应多方面的需要,一个好的程序员掌握好几种高级语言和汇编语言是必须的。这就产生了先学的BASIC与后学的其他各种高级语言之间的关系问题。
  这一问题在国内似乎尚未引起计算机教育工作者的注意。翻翻案头上、书店里、书库中各种各样讲授高级语言的教材就会发现,尽管编者不同、出版社不同,教材有新有旧,有详有略,但有一点是共同的:它们都假定自己的读者是计算机程序设计语言的初学者,每本教材都是孤立地讲授自己的这种语言,而且都是从零开始。
  人们获取知识的最好方法莫过于充分利用他已有的知识,通过对比进行学习。一个好的BASIC程序员,他已有的BASIC知识和编程经验是非常宝贵的,这是他掌握其他程序设计语言的一块基石和跳板。更何况几种常用高级语言,在漫长的发展过程中互相渗透、互相借鉴,逐渐形成了你中有我、我中有你的局面。它们中变化最大的是BASIC语言,它最初是从Fortran脱胎而来,以后陆续吸收了其他语言的诸多特点,在程序设计语言“家族”中,它是一个不折不扣的“混血儿”。国外某些计算机教育专家早已注意到了这点,他们发现了掌握BASIC的人可以很快地学会任何一种(哪怕是很晦涩的)程序设计语言。美国的Robert J.Traister在他的《从BASIC一步跳到C++》一书的“前言”和“跋”里分别写下了这样两段话:
  你所具有的BASIC编程知识,在你学习C++和其他任何一种计算机程序设计语言时,是你的无法估价的好帮手。
  如果你会用BASIC编写程序,那么你将很快就能用C++写出同样的程序来。带着你所有的BASIC知识踏上C++的征途吧,你一定会很快适应这种高效编程环境,你很快就会非常乐意并且轻松愉快地用C++这种语言去处理你面临的各种任务,就像你今天用BASIC去处理它们一样。
  我个人对此深有同感。