Basic is an old language—developed in 1964—and it still carries a lot of baggage from the past. During its 30 years, Basic picked up a lot of bad habits, which it has only recently begun to shed. Over the years, Microsoft has played a large role in both the good and the bad developments in Basic.
If you’d like to know the history of the language you’re programming in, try to find a copy of the book Back to BASIC: The History, Corruption, and Future of the Language (Addison-Wesley, 1985), by Basic inventors Kemeny and Kurtz. The book is largely a diatribe against unnamed “Street Basics” that poisoned the language with line numbers, unnecessary data types, and Gotos. The book mentions no names, but anyone who programmed in the 1980s knows that Microsoft’s GW-BASIC and IBM’s version of the same program, called BASICA, are the worst of the Street Basics under attack. As a self-taught programmer who wrote his first programs with GW-BASIC, I can confirm that these were indeed wretched languages, richly deserving all the opprobrium piled on them by defenders of the true faith.
Back to BASIC was also propaganda for True BASIC, a compiler designed to restore Basic as a structured language. By the time it hit the streets, however, True BASIC was too late. QuickBasic from Microsoft and Turbo BASIC from Borland were already attempting to undo the damage caused by GW-BASIC.
In fact, Microsoft had started the atonement earlier with both interpreted and compiled versions of MacBASIC. True BASIC was destined to lose the battle, but in a larger sense it won the war. Visual Basic has become almost as structured as C, almost as flexible as Pascal, almost as good for scientific work as FORTRAN, better for business work than COBOL, more powerful for manipulating data than Xbase, and, in a few more iterations, it might even become as object-oriented as Smalltalk and as good at list processing as LISP.
Because Visual Basic ran in the Microsoft Windows environment and had a completely new programming model, it didn’t need to be compatible with earlier Basics. It was a time for purification. For example, you won’t find the following abominations in the Visual Basic documentation: PEEK, POKE, DEF SEG, CALL ABSOLUTE, DEF FN, BLOAD, BSAVE, FRE, SADD, VARPTR, and VARSEG—not to mention debugging statements such as the infamous TRON (which inspired a movie) and TROFF. Nevertheless, some language purists are still not satisfied.
Here is my personal list of features that you should cross out of your Basic
language reference. If Microsoft won’t clean up the language, you should do it on your own. You don’t have to agree with my version of Basic (although you’ll need to get used to it for the duration of this book), but I hope that it will get you started defining your own subset of the language.