Philip I Nelson
One Last Bug
I vowed to refrain from flogging this particular dead horse, but here's an ST BASIC bug that ranks among the worst BASIC bugs of all time. Type this line in the Command window and press Return:
x = 18.9
The computer prints these messages:
function not yet done System error #%N, please restart
Don't bother searching for an explanation in your BASIC manual; these are not BASIC messages. The bug appears when you assign certain values—multiples or fractions of 18.9—to a variable. The value 18.7 works just fine, but 18.8 is close enough to the demon quantity to generate part of the weird error message. And the problem involves more than mere messages. Enter this statement from the Command window:
x = 37.8
This time, ST BASIC crashes completely. The computer puts up a pair of cherry bombs, signaling a bus error, and dumps you back onto the desktop. Things look fine there until you touch a key, whereupon the system locks with four cherry bombs. If you're still feeling adventurous, try either of these:
x = 4.725
x = 1.18125
BASIC bombs with two cherries. When you dash back to the desktop, the computer locks with ten cherry bombs on the screen. That's as bad a crash as you can get on the ST without seeing the machine rip free from its cables, drag itself to the edge of the desk, and leap into the trash bin.
If that doesn't convince you to avoid ST BASIC for serious programming, enter these two lines from the Command window and compare the results:
? 257 * 257
? 257 ^ 2
Most Earthlings recognize these statements as mathematically equivalent, but in ST BASIC, it just ain't so. While users struggle with bugs like these, Atari has spent the last year waiting for MetaComCo to finish a revision of ST BASIC. Last year, based on a copy of Atari's draft manual, I wrote a column outlining the features of the new BASIC. Although it has yet to appear, one highly placed Atari source has been heard to say that the new version is only "one bug away" from completion—prompting some wags to ask whether Atari has only one more bug to eliminate from ST BASIC or one more to add.
Adding insult to injury, Atari has quit bundling NEOchrome and First Word with the computer. So while early ST buyers got a great graphics program and a decent word processor in addition to ST BASIC and Logo, current ST purchasers get only the languages.
LET Rides Again
In the meantime, others have been quick to market alternatives to ST BASIC. The most popular third party BASIC to date is GFA BASIC, which I've mentioned in past columns. A more recent offering is True BASIC, marketed under the auspices of John Kemeny and Thomas Kurtz, whom you may remember as the originators of the first BASIC language.
True BASIC has a certain fundamentalist appeal; after all, who better than the original authors to tell us how BASIC ought to work? The only problem is that computers and computer programming have changed a lot in the decades since BASIC was first devised. For instance, when was the last time you used LET or END in a BASIC program? END is mandatory in True BASIC, even if you're writing a quick five-line program for test purposes. And the statement LET, as in LET X = 20, is mandatory unless you begin the program with the statement OPTION NOLET. Tortured didacticism of that sort may win raves in an academic setting, but it's not going to earn many friends among practical programmers.
True BASIC provides a comfortable, GEM-based programming environment, and its documentation is thorough, but the language is a disappointing performer. Everything seems to run at about half speed, and many ST features are purposely made inaccessible—presumably so that True BASIC programs can run on less powerful machines like the IBM PC. Following the emerging norm, True BASIC includes a compile option. However, I didn't notice any significant speed increase after compiling the demo programs, all of which are on the order of drawing a flag or solving the Towers of Hanoi puzzle. True BASIC may be hot stuff on the PC, for which it evidently was designed. However, it's hard to imagine such a stiff language gaining wide approval among ST owners.