国外程序员的BASIC情结——我的编程生涯始于BASIC

来源:互联网 发布:网站设计优化规划书 编辑:程序博客网 时间:2024/05/18 13:04

关于BASICEdsger Dijkstra曾经说过这么一段话:“那些已经学过BASIC的学生是不可教化的,再去教他们优秀的编程风格注定徒劳无功。他们已经脑残,再生无望,成不了优秀的程序员。”

BASICBeginner'sAll-purpose Symbolic Instruction Code的缩写,意为“初学者的通用符号指令代码”,它是在1964年由美国的两位教授ThomasJohn G. KemenyFortran语言的基础上设计出来的计算机语言系统。这个简单、易学的程序设计语言当时只有17条语句、12个函数和3个命令。——译者注

Edsger WybeDijkstra(艾兹格·迪科斯彻)是荷兰计算机科学家,毕业并就职于荷兰Leiden大学,早年钻研物理及数学,后来转为计算机科学。曾在1972年获得过素有计算机科学界的诺贝尔奖之称的图灵奖,之后,他还获得过1974AFIPS Harry Goode Memorial Award1989ACM SIGCSE计算机科学教育教学杰出贡献奖、以及2002ACM PODC最具影响力论文奖。——译者注

我敢肯定,他是为了达到一定的效果而夸大其辞。我非常欣赏他在1972年写的那篇论文:“The Humble Programmer”(谦逊的程序员),但再怎么样我也不能同意“选错编程语言会损伤程序员的智商”这样卑微的观点。尽管计算机编程语言在不断进化,在我看来,我们面临的最大障碍不是对语言的选择,而是这个现实:不同的程序员可以把FORTRAN程序写得千差万别。拿Pogo的话来说,“我们遇到敌人了,他就是我们自己。

贬斥BASIC确实能带来高人一等的优越感。不过,像很多有一定年纪的程序员一样,我是伴随着BASIC一起长大的。

我以前曾经提到过,早期的游戏机与编程之间的绝妙碰撞发生在Atari 2600这款BASIC编程盒上。我怎能错过这种亲自体验的机会呢?于是,我在eBay上买了一台。

Atari(雅达利)是世界上第一家电脑游戏机公司,曾经创造了年销售额20亿美元的神话。——译者注

我还买了一套Atari2600的键盘控制器。覆盖图是随盒子附送的,而两个控制器并在一起组成了一种原始的键盘。(如果你想知道我拿着网站上的广告收入都做了些什么,现在你知道了……很大一部分就用来购买这些乱七八糟的东西。)

出人意料的是,这台机器的使用说明在网上居然找不到,于是我自己扫描了一份。我把它放在这里:http://www.flickr.com/photos/25885309@N02/sets/72157604661612578。去看一下吧。很有意思的!有人还把这个使用说明抄录成了HTML格式,但缺少了照片和图表,读起来也便无趣许多。

我把Atari2600模拟器里的BASIC编程只读存储器里的东西做了一份拷贝。然后依据机器的使用说明,编写了一个BASIC小程序。

你会发现,关于在Atari 2600上进行BASIC编程,网上所有其他的截屏实际上都是空白的。这也许是因为我是惟一一个对Atari 2600如此痴迷的人,竟然会在它上面尝试编程……这事看起来很痛苦,但谁知道呢,除非你亲自试一试这时髦的玩意儿。过程确实很糟糕!当我很泄气地扔开手中的键盘时,我竟忍不住笑了起来。但我必须承认,在我完成了第一个“程序”之后,我内心深处还真有些小激动,因为我让机器屈从了我的意志。它让我保持自信满满!

我从eBay拿到的包裹里还包含几张手写的编程笔记。我猜,它们是1980年代遗留下来的吧。

难道BASIC不就是这样吗?即使是这款笨拙的Atari 2600上的BASIC,你也能从中发现一些基本的编程概念。难道不是吗?

当然,如果你真心喜欢计算机,你大可不必在这么不起眼的Atari 2600上编程。在家用电脑上玩游戏、编程序的体验要好得多!在相当长的一段时间里,市场上的所有家用电脑都预装有BASIC。不管是第二代苹果机,还是Commodore 64或Atari 800,机器启动后最先映入眼帘的总是BASIC提示符。BASIC成为了编程爱好者的专用语言。

Commodore(康懋达)是与苹果公司同时期的个人电脑公司,曾经创造过一系列奇迹。1994年,Commodore停止生产并宣布破产。——译者注


甚至IBM的个人电脑也预装了BASICA(即Advanced BASIC),或者GW-BASIC,并最终演变成了QBasic(即Quick BASIC)。直到微软推出Windows 2000之后,它们才永久地退出了历史舞台。

事实上,如果你想用那些古老的8位苹果机、Commodore或Atari家用电脑做任何前沿的事情,你就必须学会汇编语言。我不记得有任何编译型语言出现过,直到IBM个人电脑的诞生以及DOS时代的到来,TurboPascal才粉墨登场。编译型语言是深奥的,一般人难以理解,也比较昂贵,直到Turbo Pascal以很低很低的价格(49.99美元)才使其大众化。(顺便说一下,你可能注意到了,Anders Hejlsberg是Turbo Pascal以及后来的Delphi的主要创作者。他现在是微软公司的技术专家,担任C#语言的首席设计师。很多老资历的极客——比如我自己——都对.NET抱有满腔热情,很大一部分原因就在这里。)

即使你没有高超的编程技能、无法成为下一个David Crane或Will Wright,你仍然可以用古老的BASIC编写出很多有趣的游戏和程序。通过使用BASIC,你能轻易知道自己是否喜爱编程,以及你是不是编程这块料。在我们看来,《Creative Computing》就像是程序世界里的圣经。

         

          

在很长很长的一段时间里,只要你对电脑真心感兴趣,你必然会用BASIC编写程序。它就像你呼吸的空气一样,你逃也逃不掉,也是不二选择。每当你把机器启动起来,那个命令行提示符总是眨巴眨巴着盯着你:为什么不敲一些BASIC命令,看看会发生什么呢?随之而来的是一种惊奇的感觉,一切皆有可能,你也就进入了计算机那无限宽广的天地!就这样,千千万万的程序员生涯从这里启程了!

BASIC并不会使人脑残——Dijkstra 言过其实了!如果非得拿BASIC说事的话,它恰恰为众多年轻程序员打开了眼界。BASIC也许是最早的一种测试方法,用于鉴别你是一只会编程的“绵羊”还是一只不会编程的“山羊”。当然,不是所有人都有完美的结局,但确实有一些人取得了卓越的成就。

不管我们现在是否还在用BASIC编写程序,BASIC的精神永存!