潘正伯教授有关BASIC的问与答(读)

Author: 于泰安 Date: 1995-10-06

        问:完全没有必要把BASIC胡乱划分时代。就象8088、80286、80386微机,它们分别是8位,16位,32位计算机,按说是有质上的区别,但并没有人把它们划分为多少多少代;其它程序语言也一样,如C++比刚创立时的C语言要丰富多了,但人们并不把C++称为第二代C语言,现在还出现了与VB相类似的visual C++(即VC),试想,如果有人也象VB一样把VC称作“第三代C语言”那将是多么的可笑。
        答:把BASIC语言分代是现实生活的需要,不是我凭空杜撰出来的。兹举一例:1990年《软件产业》总第63期上发表了□□□先生的“高校非计算机专业毕业生计算机能力普遍薄弱探究”一文,把“高校非计算机专业毕业生计算机能力普遍薄弱”归咎于“清一色地开BASIC语言课”,并且认为“这对于树立学生‘软件工程'的概念,培养学生严谨的编程作风以及让学生掌握‘自顶向下逐步求精'的结构化程序设计方法都是极为不利的。”我不同意这一观点,给该刊编辑部写了信,该刊在1991年第三期的封底上以“读者来信摘抄”为标题发表了我去信的主要内容,并加了编者的话,全文如下:“国内软件学术界来信中所引述的□□□先生对BASIC看法的同志为数不少,这种看法也并非没有道理,因为不少学校开设的BASIC语言课,报刊杂志上发表的BASIC程序基本上仍是传统的非结构化的BASIC,反对与拥护双方所反对与拥护的分别是两种不同的BASIC。”争论了多日,耗费了不少时间和精力,照《软件产业》编者的剖析,原来是一场误会,而这场误会的源头,出于“BASIC语言”一词的含混,这里就产生了将BASIC分代的必要性。何况后来又出现了一群Windows BASIC,使BASIC分代更趋紧要。
        我给划代提出了四条标准,如果不能从理论上动摇这四条标准,我们按标准划代怎么能说是“胡乱划分”呢?
        您举的两个反例均不恰当,8088就是8088,它不会与286或386相混淆演出上面说的那场“反对”与“拥护”混淆不清的闹剧。至于C语言,它的品种稍多一点,但也远远不能与BASIC品种的繁杂相比。一般习惯上将它划分成两大类,老一些的都归入K&R C,新一些的归入ANSI  C。C++是C的超集,原先叫“含类的C语言”,从83年改名为C++,名称已截然不同,非常明确何需划代?您怎能以这样的例子来否定给BASIC划代的必要性呢?
        问:我刚学BASIC时用的是谭浩强先生的书,学完后觉得BASIC没有多大用处。但当我偶然一次得到一本微软公司的厚达数百页的《BASIC手册》后,我的看法变了,GW BASIC真是太绝妙了,它的命令、语句和函数将近200条。有了GW BASIC,你完全可以让你的计算机“为所欲为”了。我早期开发的一些软件全是用GW BASIC来完成的。而你在“答问”中却将它与库茨等人首次发表的BASIC等同起来,并且宣称“应该尽快赐给第一代BASIC一个‘安乐死'”,对于这种非常极端的看法我是不敢苟同的。
        答:这里提出了两个问题。一是按照什么标准划代。我在“BASIC之树常青”一文中提到:“BASIC是变化最大发展最快的语言。BASIC的发展变化可以从两方面去看:首先是量的变化(下略)。其次是质的变化(下略)。”(请阅1993年9月29日《计算机世界》109~113版)。
        基本BASIC只有17种语句。11种内部函数;QB 4.5的语句和函数已达264种,保留字221个;发展到CA-REALIZER 2.0,语句和函数已达370多种,保留字417个,外加预定义常量593个。然而这一切__量的变化,很难作为划代的标准;只有显著的质的变化才是划代的依据。
        GW BASIC堪称第一代BASIC的集大成者,但因它一不是结构化语言,二不是编译型语言,所以只能将它划归第一代BASIC。
        第二个问题是为什么我提出要“尽快赐给第一代BASIC一个‘安乐死'”?难道不能让它《这里就以GW BASIC为代表)“永葆青春”吗?是的,不能。这里要弄清楚GW BASIC是谁的产品?谁的财产?谁对它操有生杀大权?众所周知,GW BASIC是Microsoft公司所有者的财产,只有他们对此产品操有生杀大权。
        整个第一代BASIC几乎都不是独立的商品,它们通常是作为ROM BASIC,作为操作系统的一个组成部分跟随机器卖给用户的。尽管您对GW BASIC有极高的评价和极深厚的感情,但Bill Gates 和Microsoft公司对它却有着清醒的估计,他们在1986年推出了Quick BASIC。更为“极端”的是他们在1991年推出MSDOS 5时宣布了GW BASIC的死刑__用QBasic取代它作ROM BASIC。从DOS 5面市后,国外用户再也得不到GW BASIC了。所以我在“答问”中明确提出“尽快赐给第一代BASIC一个‘安乐死'”。俗话说“旧的不去,新的不来”,第一代BASIC在世界范围内已经衰亡,这是技术、生产力发展的必然。赶快掌握并使用第二代BASIC(值得推荐的是Quick BASIC 4.5),把您在GW上开发的商品化软件尽快移植到QB4.5中去。到您手头有了4MB以上内存的机器时,您应该尽快掌握并使用第三代BASIC(值得推荐的是CA-REALIZER),为您的商品化软件开发出令人赏心悦目的图形用户界面,且能运行于Windows或OS/2环境下,使它们重新成为深受用户欢迎的软件。
        (1995-09-16于泰安)