Task 2Task 2: The History of BASIC  Task 2

The Condensed History of BASIC
Terry Ritchie

In the beginning ...

      The BASIC language was developed in 1964 as a way to introduce college students to programming that were not necessarily wanting to become career computer programmers. Computers were seen as powerful tools for many disciplines and understanding how to write software for them was becoming a need to know skill for many especially in the scientific fields. Many of the early programming languages, such as COBOL and FORTRAN were very powerful but also took a very long time to master. People with the need to use a computer to solve problems relied on the skills of a dedicated programmer to perform even the simplest of tasks. A new programming langauge was needed that made simple to moderate tasks easy to create and the BASIC programming langauge filled this need nicely. BASIC is actually an acronym that stands for Beginner's All-purpose Symbolic Instruction Code. At first BASIC was seen as a teaching tool to introduce students to programming and then move them on to more advanced languages. However, BASIC was embraced by students in other disciplines as an easy way to create computer software for their needs thus thrusting BASIC's popularity even further.

      The home computer revolution of the 1970s saw BASIC explode in popularity. William Gates formed a company called Microsoft that took the BASIC language and stored it onto a ROM chip. This chip could then be incorporated into a small home computer allowing BASIC to act as sort of an operating system for the computer. Home computers in the 1970s and well into the 1990s had the ability to "boot" into BASIC giving the home computer user a means to not only communicate with the computer but create software for it as well. Famous computers at the time such as the Apple I and II, the Commodore VIC-20 and 64, the Radio Shack TRS-80 series of computers and the IBM PC amongst a host of others all used Microsoft's method of incorporating BASIC into the systems which catapulted Microsoft wildy. If it wasn't for BASIC Microsoft may not be the exceedingly large company it is today.

      There have been literally hundreds, perhaps even thousands, of versions of BASIC that have come and gone since its original inception in 1964. BASIC is still going strong today and is widely used as a language to target a particular need because of its simplicity. PBasic is used to program microcontrollers used in robotics. Visual Basic is used to create general purpose software for a myraid of industries. BASIC dialects such as Dark Basic and Blitz3D were created for the sole purpose of creating interactive 2D and 3D games. GWBasic and QuickBasic were created to be included with many early DOS based computers to allow home computer users the ability to continue creating BASIC programs with computers that no longer booted to BASIC. It's because of BASIC's inclusion in the home computer market that makes it so special to many users today. Your parents or perhaps even grandparents that owned early computers may fondly remember the BASIC commands they issued to their computers "back in the day". Many of today's great programmers cut their teeth using BASIC on those very same home systems when they were kids.

GWBasic ...

      As mention previously, GWBasic was included with the IBM and Microsoft DOS (Disk Operating System) operating systems. Disk drives became affordable right around the time of IBM's PC introduction. Although BASIC can be powerful it is too slow to use as a serious operating system. The introduction of DOS by Microsoft in 1981 allowed the IBM PC to use disk systems to their full potential. However, Microsoft realized that many users were now proficient and comfortable with BASIC, and many companies had written custom software in it as well. So, instead of abandoning BASIC Microsoft included it as a programming tool with DOS known as GWBasic. (The GW has been hotly debated over the years as to what it stands for but most simply called it GeeWhiz Basic)

      Because Microsoft's version of ROM BASIC was so wildy popular amongst home computers before the introduction of the IBM PC many BASIC coders could easily program on many different home computer platforms. Because of this BASIC coders felt right at home with GWBasic included with the IBM PC and is one of the reasons the IBM PC exploded early on in popularity. Many BASIC programs written on other home computers could be easily "ported" to the PC's GWBasic version with only minor modifications needed which again helped the PC's popularity.

      However, GWBasic had a serious downside. A BASIC program had to run within GWBasic's limited world. To use today's terminology you couldn't just double-click on a BASIC program and expect it to run. You first needed to load the GWBasic interpreter and then tell the interpreter to load the BASIC code. After the code was loaded the interpreter then needed to be told to execute it. A familiar scenario back then would look like this:

C:\GWBASIC (enter)
GWBASIC Copyright(c)1981 Microsoft Corporation, all rights reserved
24,234 bytes free
OK>RUN (enter)

Only after starting the interpreter, loading the program and then running it would the program execute. In other words, early BASIC programs were not self-executing or what we call compiled programs. The interpreter would read each line of a BASIC program, convert it to code the computer could understand, then execute that one line of code. This happened for each and every line and is the reason BASIC was so slow in the early years. The other problem was that early BASIC programs were limited to just 64KB of RAM. Much of this RAM space was used by the interpreter leaving little left over for the BASIC code itself. As you can see in the scenario above, there is roughly only 24KB of RAM left for actual code. Early IBM PCs typically came with 640KB of RAM leaving a lion's share of RAM unavailable to the BASIC programmer.

QuickBasic ...

      Microsoft's dedication to the BASIC language is one of the few reasons I actually admire them. Knowing the limitatons in GWBasic, Microsoft decided to create a version of BASIC that could create compiled programs, or programs that could self execute. In 1982 Microsoft introduced QuickBasic which made many improvements to GWBasic. First, as mentioned before, programs could be compiled to EXE self executing programs. Secondly, the available program RAM space went from 64KB to 160KB with the ability of programs to easily "chain", or load another BASIC compiled program when the 160KB limit was reached, allowing for very large programs to be created in BASIC. Thirdly, an Integrated Developer Environment (IDE) was created to allow the programmer to write the BASIC programs in. The IDE would help the programmer debug the code as the programmer typed, amongst other things. (You'll learn more about IDEs later)

      Microsoft continued developing QuickBasic until 1988 with the release of QuickBasic version 4.5 which some in the BASIC community consider a masterpiece. However, the 160KB limit and a host of other limitations that sprang up as computers became more powerful meant the need for yet another version of BASIC. Microsoft answered the call by developing the BASIC Professional Development System (PDS), Visual Basic for DOS and finally Visual Basic for Windows which is still the most popular programming language used today.

The Future ...

      One great thing about learning to program in a BASIC dialect is that the coder can move to another dialect with relative ease. Those of us who grew up in the ROM BASIC, GWBasic and QuickBasic days feel very comfortable even in today's versions of Visual Basic. Given BASIC's 50 year history to date it's safe to assume that BASIC will probably be around for the next 50 years as well in some form.

      Another great benefit to learning BASIC is that it forces coders to actually program in pure code. Many of today's languages include visual elements that handle much of the code in the background for the coder. New programmers tend to let these IDEs handle too much of the coding for them and creates, in my opinion, sub-par coders.

      Will you use BASIC as a serious programming language within your career? Unless you're a Visual Basic programmer probably not. However, the skills and techniques used while learning BASIC are valuable to learn no matter which language you eventually end up writing in. BASIC is seen by many professional coders as a child's toy but what they fail to mention is that most secretly use it to quickly prototype an idea or write a quick game or two for a fun hobby.