Shopping for BASICS. (program-development software and compilers) (Software Review) (Column) (Evaluation)
by Tom Campbell
This month we'll look at some of the burgeoning Microsoft BASIC world. Microsoft now sports at least half a dozen major dialects of BASIC, half of them mostly incompatible with the others. If you're shopping for a new programming language, this column may help.
First, let's examine some terms, A BASIC that makes stand-alone programs allows you to distribute programs you've written so people without your version of BASIC can still run them. Ones that are extensible let you add to the language via assembly (or, in the case of Windows, DLLs). Modular BASICS let you break a program into separate files,
QuickBASIC--almost as big as Elvis. Despite Visual Basic's strong showing, QuickBASIC 4.5 is arguably Microsoft's flagship BASIC and certainly one of the most popular languages anywhere. It runs under DOS, comes with an interpreter and a compiler, makes stand-alone programs, is extensible, and is modular. A very good general-purpose language, it lacks only the pointers and dynamic memory allocation of C. Each can be made up for with assembly extensions and a copy of Ray Duncan's Advanced MS-DOS, and you can sometimes fake it with the very useful CALL INTERRUPT, which lets you get at MS-DOS internals without resorting to assembly.
QuickBASIC is rare among development environments because it comes with an interpreted development environment and a true compiler that creates faster-running EXE programs that don't need the interpreter. Version 4.5 is inexpensive, and though it's several years old, it's great for creating nearly an DO application. It's almost as popular as Elvis and deserves to be, although new versions have been as elusive as the King.
QBASIC--free and worth every cent. QBASIC runs under DOS, comes with an interpreter, but lacks a compiler. It eliminates the dreaded line numbers and turtlelike pace of the old GW-BASIC that probably came with DOS when you bought your computer. A stripped-down version of the QuickBASIC interpreter, QBASIC doesn't make stand-alone programs, isn't extensible, and isn't modular. I feel it's hideously scarred by not supporting CALL INTERRUPT, but since many people still don't have DOS 5.0, maybe that doesn't matter. QBASIC is still better than GW-BASIC, with its vastly superior editor and one of the best help systems around.
Visual Basic--incompatible and worth it. Visual Basic is a spanking-new version of BASIC for Windows. That's the good news. The bad news is that it's not compatible with QuickBASIC, so there's a huge amount of rewriting to do if you want to port your QB application to Windows.
The loss of seemingly critical standbys such as INKEY$ and BLOAD may seem crippling. Actually, it's liberating--but plan to spend a fair amount of time learning VB.
Most disturbing about VB is that it isn't as good for developing serious Windows programs as QB is for DOS; it lacks support for fundamental Windows building blocks such as callbacks. Plus, it lacks a true compiler, instead requiring you to include a separate 270K runtime interpreter with your applications. No big deal, but the EXE that VB makes still retains your subroutine and variable names--a no-no for users who need to protect every aspect of the source code. Still VB makes stand-alone programs, is extensible, and is modular; its strengths far outweigh its few weaknesses.
PDS 7.1--not for pros only. The BASIC Professional Development System runs under DOS, comes with an interpreter and a compiler, and is an awesome package with the CodeView debugger, built-in support for a proprietary but flexible and fast code generator, size and speed advantages, and everything QuickBASIC has besides. It makes stand-alone programs, is extensible, and is modular. The most expensive ($400) of Microsoft's BASICS, it's well worth its price.
GW-BASIC--still good for a gee-whiz or two. GW-BASIC, usually sold with computers that run DOS 3.0, is actually quite substantial. It comes with an interpreter, but it lacks a compiler, its editor stinks, it relies on line numbers, and it doesn't work well with separate files. It doesn't make stand-alone programs and isn't modular, but it is extensible. If you got it free and you're not a pro, it can teach you a lot. But plan to graduate to QBASIC or QuickBASIC ASAP.
Word BASIC--YAB. Word BASIC comes only with Word for Windows and is a YAB (Yet Another BASIC), but it's a godsend to word processor power users. It's extensible and includes an interpreter but not a compiler. It doesn't make stand-alone programs and isn't modular. Still, it's much better than any other word processor's macro language and lets you create sophisticated features like dialog boxes quickly and easily. It's also incompatible with Visual Basic (ouch!).
To be announced. Microsoft has threatened for years to release a Windows batch language founded on BASIC. No doubt it's in the works, but for now you'll just have to get infected with VB.