This month, BASIC celebrates an anniversary reached by very few languages: 50 years of continuous use. During that long career, whose highlights mostly occurred before the age of 25, it has beckoned millions to the world of programming, most of whom immediately forsook the language for more robust alternatives.
It's difficult to imagine the computing world in 1964. There were no PCs, nor even minicomputers, and networking was for all practical purposes nonexistent. Programming was done on mainframes that could support remote teletype machines over telephone lines. Programs were stored on decks of punched cards, or loops of very carefully handled paper tape. In this rather challenging environment, two Dartmouth professors, John Kemeny and Thomas Kurtz, came up with the idea to create a simple, high-level language to teach programming.
They called the toy language BASIC, which seems fitting although the term was an acronym for Beginner's All-Purpose Symbolic Instruction Code. Today, I believe most people would be comfortable only with the B in the acronym. BASIC was certainly not all-purpose. I expect that Kemeny and Kurtz might have been tempted to use the modern term "language," rather than "symbolic instruction code," but BAL was already an acronym in use on mainframes (Basic Assembly Language where 'basic' retains its natural meaning).
BASIC took off and hit its stride in the '70s and especially the '80s, when it became the de facto language for PC programming. It was the language that Microsoft rode to fame and fortune. (It's hard to recall, but before they focused on MS-DOS, Bill Gates and cohorts developed programming tools, most notably a BASIC interpreter for the Altair 8800.) It was also the language that launched Dr. Dobb's, whose first three issues were dedicated to writing a "Tiny BASIC" interpreter.
Due to the influence of Microsoft and IBM, BASIC came to be embedded in the hardware of all PCs that shipped in the early- and mid-1980s. This ubiquity provided the language a tremendous boost and invited many new people to the programming table. The gleeful aspect of "we can all be programmers" was clearly evident: Microsoft's standalone of the language (that is, non-ROM version) was called GW-BASIC the GW standing for "Gee-whiz!"
But folks drawn to the language because of its promise of enabling them to write their own software soon discovered that the language was rather difficult to use on anything except trivial projects. With "GOTO line-number" being one of the principal ways of flowing logic, BASIC combined supposedly high-level commands with assembly language's control flow. To make matters worse, variable names were limited to a single letter, optionally followed by a single digit. The result was dreadful spaghetti code and, for many novices, a completely invalid idea of how programming was done. This aspect was succinctly captured, not without some hyperbole, by Edgar Dijkstra's famous observation:
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
As the limitations of BASIC became clear, two things happened: Developers adopted better languages, which were starting to appear steadily on PCs, especially Pascal and C; and Microsoft QuickBasic and Turbo Basic came out with more robust features to serve the language's die-hards. Simultaneously, Kemeny and Kurtz suddenly became engaged in an odd propaganda war, in particular with Microsoft. They accused the Redmond giant of having corrupted the language and, to remedy this, created their own company selling the "real" version of BASIC, which they called True BASIC. The problem was that they were closing the barn door long too late. At that point, no one cared about what pure, original BASIC was or might have been. They were either using Microsoft QuickBASIC or had migrated to other languages.
It would be tempting to draw a straight genealogical line from the BASIC of that era to VB.NET today. But I'm not entirely comfortable with this take on history. VB.NET is a substantially different language than its forebears. There are hints of the ancestors, but that's a far cry from saying it's a directly derived language. For example, you cannot compile 1970s BASIC with VB.NET today, unless you completely rewrite the code. Whereas if you were to take, say, COBOL from the same point in its evolution, you could compile it today with only minor syntactical tweaks.
If you agree with this perspective, then it's fair to say BASIC hits its semicentennial at a time when it has little visibility anymore. It is confined to the products of several small companies that keep the tradition alive but who are unlikely to do more than ride the language until it dies out entirely.
If this trend continues, especially as Microsoft moves ever more quickly towards non-PC development, then BASIC might well be seeing its last few years of relevance. Time will tell.