Task 2: The History of BASIC
The Condensed History of BASIC
In the beginning ...
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.
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:
GWBASIC Copyright(c)1981 Microsoft Corporation, all rights reserved
24,234 bytes free
OK>LOAD "MYPROG.BAS" (enter)
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.
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)
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.