[comp.sys.atari.st] A Review of GFA Basic

peters@pulman.dec.com (Don Peters, APO-1/F8, 289-1242) (01/21/87)

I've just had a chance to give a preliminary checkout of GFA Basic, and I
LOVE it!! Here's a bit more background:

I enjoy doing program development in a responsive environment with good
hardware and plenty of memory. The ST satisfies my hardware needs, and my
1 meg upgrade gives me all the memory I need. But my experience with ST
Basic was not good. It is very slow, has bugs, and I find the human
interface cumbersome to use. On the other hand, Pascal, C, and Modula II
have nice block structure. But I don't like the wait for compiling and
linking.

So when I heard about the availability of GFA Basic from Michtron (imported
from Germany), I ordered it as soon as I could. Five days later it arrived,
and I began converting some of my ST software over to it, and tried writing
some of my own programs. Performance was astounding. I had been reading
lots of rave reviews of Action! for the 8-bit line, and this implementation
of Basic looked as good, but for the ST.

The program is only about 57K, leaving plenty of room for code (compare
that to the size of ST Basic). The language needs NO line numbers, and is
extremely rich in commands. Commands such as INC to increment a variable
are really convenient with long variable names.

Well, to continue with tests: I maintain a large mailing list for a youth
organization. It has about 2800 records of 109 characters per record. I use
a commercial database program to sort it. The sort takes 8 HOURS to sort
HALF of it. I project it would take 16 hours to sort it all! I start in the
evening, turn off the crt, and store the results the next morning. After
talking to the author of the program, I found out he uses a bubble sort
algorithm, one of slowest techniques going. So I used GFA Basic to write my
own, using a Quicksort algorithm. I copied the sort algorithm almost
directly out of the book by Wirth ("Programming + Data = Programs"?). He
had it in Pascal. All the same Pascal block structures could be entered
without change (a really nice benefit). After fixing a few mistakes on my
part (using a % suffix to indicate integers), I tried it and it worked the
first time on a test run! Then I threw the whole database at it, knowing it
should be faster, and settled in for a long wait. Forty seconds later it
was finished!! In disbelief I stepped thru the entire database to make sure
it really sorted - it did. I am now a true believer in Quicksort and GFA
Basic.

I later converted several programs from ST Basic to GFA Basic. The
implementations turned out very clean. For example, the Quicksort program
really came out nice due to use of commands such as INC and SWAP, which
eliminated unnecessary verbosity.

Execution-debug turnaround time is very fast, and I like the way the
interpreter automatically indents my block structures - I don't have to
worry about doing it myself.

I've been wanting a language that not only did all the above, but also had
full access to GEM, VDI, BIOS, etc. GFA Basic has all this, such as
easy-to-use alert boxes, menus, etc.

As for bugs, so far I've found only one: the second time I call for a
file-select form, the default filename doesn't get filled in. But I can
still select a file from the list.

Alas, all is not perfect. Since GFA Basic originated in Germany, with
documentation in German, the manual had to be translated. In my opinion,
the person doing the translation didn't know the ST nor English very well.
And no one seems to have proofread the manual. There are lots of errors in
it, from typos, to improper terminology, to just plain errors. This is NOT
the language to learn Basic or the ST with. You should have some
familiarity with both. But the manual is comprehensive. I get the feeling
that the program authors really tried, but the translators didn't. Too bad,
since it detracts from an excellent product. But I can much more easily
live with these shortcomings than I can with shortcomings in the language
itself.

While this is an interpreter, and a fast one at that, a compiler for the
language is promised as coming soon. It will generate standalone code. To
me that is the best of both worlds - an interpreter for rapid development,
and a compiler to achieve really fast execution speed in the final version
of a program.

In summary, I very highly recommend GFA Basic. I've been programming
professionally for some 20 years now, and I find this language the most fun
and possibly the most powerful to use. (The January 1987 issue of Compute!
also has a very favorible review of the language)

Finally, I have no connection with Michtron nor with the company that makes
GFA Basic whatsoever.

       Don Peters (617-689-1242)
       ...decvax!decwrl!dec-rhea!dec-pulman!peters