(谭浩强教授关于basic发展的观点,我很同意,不知大家怎么想。)
大多数人已取得这样一种共识:程序设计应该是计算机应用人员的一项基本功,也是大学生在校学习期间的一项基本训练。学生通过学习程序设计,可以具体地了解计算机是怎样进行工作的,知道计算机能做什么和不能做什么,而不致于在使用计算机时知其然而不知其所以然。在程序设计课程中所接触到的一些基本概念(如选择、循环、子程序、数据类型等)在后续课程中都会用到,它们是必备的基础知识。只有掌握程序设计的知识,才能具有一定的开发能力。这是大学生和一般操作人员的重要区别。
选择何种语言要具体分析
选用什么高级语言,本来不是一个大的原则问题。因为语言只是一种编程工具,只要能解决问题,对培养学生工作能力有利即可。切忌片面性和“一阵风”。例如,有人一听BASIC就认为“低级”,一听C就认为“高级”,不问什么专业、不管学生基础,一律要求学生学C甚至C++。我认为这种做法缺乏具体分析。高级语言的选择,应取决于语言的功能、专业的性质、将来工作岗位的需要、学生的基础以及设备条件等。不能简单地说哪一种语言“高级”,哪一种语言“低级”,只能说哪一种语言适合于哪个领域和哪类对象。正如马路上有小汽车、大卡车、公共汽车、摩托车、自行车、三轮车等,各有各的用途,决不能由于有了小汽车就取缔其它车辆。我先后研究过多种计算机高级语言,也曾编著过BASIC、FORTRAN、COBOL、PASCAL、C等教材,并在中央电视台先后讲授过以上各种语言。常有人问,“你认为哪一种语言最好?”,或“你为什么介绍这么多种语言? 介绍一种不就可以了吗?”,我的回答是:“谁也代替不了谁,各取所需。”多年来,无论在国内还是在国外,BASIC语言一方面得到广泛的应用,又同时进行着激烈的争论。谁也不能否认,BASIC语言在我国计算机教育和普及中起到了重要的作用,成千上万人从学习BASIC入手,迈进了计算机应用的大门。对于广大初学者来说,他们对BASIC语言的“易学易用”的优点感触至深。
发展地看待BASIC
许多人对BASIC语言的了解和指责仍然停留在早期的BASIC上,例如“功能差,只有17个语句”、“非结构化,养成不良好的编程习惯”等等。其实,从1964年BASIC语言诞生以来,BASIC已经历了四个发展阶段(或称之为BASIC的四代)。第一代BASIC指最早期(1964~70年代中期)的、只有十几个语句的BASIC,常称为基本BASIC。第二代BASIC是指微机出现初期的BASI C(70年代中期到80年代中期),其代表为GW-BASIC和Microsoft的BASIC(即MS-BASIC)。第三代BASIC是在八十年代中期出现的结构化的BASIC语言,其代表为True BASIC、Quick BASIC、Turbo BASIC 。第四代BASIC是在Windows环境下编程使用的BASIC(90年代),其代表为Visual BASIC、GF A-BASIC、CA-REALIZER等。第四代BASIC的特点是以图形界面取代过去的字符界面。
BASIC语言在发展过程中,在实现其先进性的同时,始终保持“易学易用”的特点。因而BASIC语言始终拥有最广泛的用户,这决不是偶然的。我建议那些动辄指责BASIC语言“低级”的同志,首先了解一下BASIC语言的发展状况,深入剖析每一代BASIC语言的特点与功能,把它与其它语言作全面的比较,然后作出符合实际的结论,切忌以偏概全。在学术问题上应遵循“百花齐放,百家争鸣”的方针,允许多种思路、多种风格并存,在实践中不断总结经验,实现推陈出新,切忌用简单的行政手段来处理有争论的学术问题。有的地区宣布以后等级考试不考BASIC语言;有些学校道听途说“BASIC过时了”,未征求第一线教师的意见,就决定取消BASIC课程,改学C语言 (或其它语言),这在部分教师中引起波澜。许多学校(尤其是文科院校和部分非重点大学)的老师打电话给我,说“学生学BASIC,容易接受。现在不让学 BASIC,学什么好? 学生都学C语言,学起来有困难。”我曾接触一位重点大学的文科学生,学C语言学得稀里糊涂。看来不分对象普遍学习C语言,事与愿违。我去年去北美访问了解到:美国全国性的证书资格考试ICCP (Institute for Certificatio n of Computing Professionals)把BASIC和FORTRAN、COBOL、PASCAL、C、ADA等并列作为开考的程序设计语言,应试者可以任选其中之一应试。我国国家教委组织的全国计算机等级考试的二级大纲中,仍然规定BASIC为可选语言之一。全国计算机软件人员水平考试初级程序员级,也包括考 QBASIC。
有些同志对一些开BASIC的学校说:“怎么你们还在学BASIC?”言下之意是太低级了。但愿这样的误导不再出现。应该允许不同学校、不同专业根据情况自由选择。从培养学生程序设计知识和基本应用能力的要求来看,学好第三代BASIC所取得的效果,并不亚于学习FORTRAN 。
BASIC语言仍然是“大众语言”
在过去几十年里,BASIC语言在普及计算机知识和应用中起过重要的作用,这是任何人所不能否认的客观事实。现在已有了许多功能很强的计算机语言(例如有各种版本的PASCAL语言可供教学使用,有各种界面友好的C语言可供开发人员使用),历史悠久、曾风靡一时的BASIC语言还有它的优势和市场吗? 如果认真地对各种语言的特点、发展历史及其作用作深入的、实事求是的分析,答案应当是肯定的。
现在的BASIC语言已远非30年前的BASIC初期版本可比。它的主要功能与其它优秀的语言相比毫不逊色。而且BASIC语言无论如何发展,始终恪守BASIC创始者的宗旨——为群众着想,因而,BASIC决不会“寿终正寝”,而是和其它现代语言一起迎接新的时代。
据了解,Microsoft公司仍然把BASIC语言作为其向用户推荐的程序设计语言。他们宣称:在不久的将来,微软公司将利用BASIC完成大部分应用程序的可视程序设计,同时要将BASIC语言作为一种中央控制语言使用,使用BASIC程序调用多种应用程序的数据与功能。此外,BASIC语言也将作为其它软件中的内嵌语言使用。他们认为,“BASIC语言由于具有最高的知名度,将仍然是熟知它的专业程序设计人员和实力用户的首选语言”。当然,它指的是第三代和第四代的BASIC。
由于各种高级语言有许多共同的特点,因而无论学习哪一种语言都很容易举一反三地学习和掌握其它语言。由于BASIC语言既容易学习,又有广泛的应用价值,因而当前它仍然是“大众语言”。QBASIC是当前普及BASIC的较佳版本,目前在我国,第二、三、四代BASIC都在流行,都有众多的用户。第一代简单的BASIC早已淘汰了,使用第二代BASIC的人逐渐转向第三代BASIC。由于条件限制,目前使用第四代BASIC的人还不多。QBASIC是 Microsoft公司开发的、作为MS-DOS5.0版的一个组成部分免费提供给用户的,因此不存在版本问题,也不需要去购买。QBASIC是 BASIC语言不断发展的产物。它是第二代BASIC(如BASICA和GW-BASIC)的现代化超集。它与第二代BASIC语言兼容(用BASIC或 GW-BASIC语言写的源程序可不加修改或只作少量修改就可在QBASIC环境下运行)。QBASIC是Quick BASIC的子集,但包含了Qucik BASIC的主要功能。它采取解释执行方式。QBASIC是一种现代化语言,是完全结构化和模块化的语言。与第二代BASIC相比,主要扩充了以下一些功能:
1.扩充了数据类型。除整型、实型、双精度型、字符型外,增加了长整型、定长字符串型变量。2.提供了新的选择结构IF-ELSE-END IF和多分支选择SELECT CASE结构。3.改进了循环结构,除了FOR-NEXT循环外,还增加了WHILE循环(WHILE-WEND结构)和DO循环(DO WHILE-LOOP,DO UNTIL-LOOP结构)。4.可以不设行号,也可以使用行号(为了与第二代BASIC兼容),但行号与执行顺序无关。5.具有良好的编辑环境,界面友好,可以使用键盘和鼠标。6.提供“联机帮助”,在编辑过程中可以随时查询“帮助信息”。7.提供了“分步执行”和“跟踪”等调试工具。8.采用先进的解释程序,使程序运行比一般BASIC快许多。除了没有指针外,其功能与PASCAL相仿,但学起来却容易得多。
学习使用QBASIC后,如果想开发应用程序,可以学习使用Quick BASIC。Quick BASIC采取编译方式,因而有更高的效率,能生成可执行文件和建立常用的过程库,提供更强的调试工具,使用户对程序设计环境有更强的控制能力,增加一些新的菜单选项等。而这些功能对大部分初学者来说,可能是暂时用不到的。因此,对广大初学者和学生来说,选学QBASIC是适宜的。许多学校用QBASIC 进行教学都取得较好效果。学会了QBASIC,是很容易掌握Quick BASIC的(二者的内容和语法规则基本一样)。
再进一步说,在Windows环境下运行的Visual BASIC与QBASIC完全兼容,也就是说,用QBASIC所写的程序可以用于VisualBASIC。QBASIC不仅是供初学者训练用的,而且有很强的实用价值。投入学习QBASIC的时间和精力不会白费。除了可以向Visual BASIC过渡以外,Microsoft的字处理应用程序Word for Windows以及Word for OS/2都附加了和QBASIC很相像的宏语言,称为Word BASIC。Mic rosoft还计划在它的一个或多个操作环境中将QBASIC的子集作为统一的语言。也就是说,用户将能用QBASIC控制计算机总体运作,用 QBASIC编写的应用程序在新的环境下仍能工作。因此,学习QBASIC将使广大初学者迈入程序设计的大门,并为以后的计算机开发作好准备。
因此,我以为,以QBASIC作为GW-BASIC和BASICA的更新版本,向广大计算机爱好者推荐是合适的。目前看来,QBASIC是没有程序设计经验的电脑爱好者学习程序设计的较佳起点。QBASIC是BASIC的天然传人,BASIC的大旗将继续高高飘扬。
(1996年8月16日 《电脑报》)