Page 1 of 2
The 1970 saw the rise of languages created by small groups of people rather than committees or institutions and much of the cause was the number of personal computers that had appeared and where in need of software. This is the story of BASIC, Pascal and C.
At the start of the 1970s computing and programming languages in particular looked well settled into a rut with Fortran, Algol and Cobol being the standards plus various specialist languages with small devoted bands of followers.
However by halfway through the decade the personal computer had made its appearance and computing would never be the same again, no matter how much this displeased the established order. Even so there was a reaction and it would be too simple to say that the personal computer revolution and the language it called its own - BASIC - had it all its own way.
Although the rise of BASIC is very much a phenomenon of the mid 70's and early 80's it comes as something of a surprise to discover that it was actually born in the 60s. BASIC was designed by John Kemeny and Thomas Kurtz at Dartmouth College, in the USA, with a very different purpose in mind from the language creators of the 1950s and 1960s.
Kemeny and Kurtz
Kemeny and Kurtz were interested in education. Dartmouth College was, and still is, a university in New England, USA, predominantly concerned with teaching the social sciences and humanities rather than the science that you might expect for the origins of any computer language.
Almost by accident the college involved itself in computing from the early years and its main concern was finding ways of making computing accessible to its undergraduates. As part of this effort they created a number of languages - DARSIMCO, DART, SCALP and DOPE - but finally they arrived at the idea of implementing a time-sharing operating system plus language combination. The Dartmouth time-sharing system and BASIC - Beginners All-purpose Symbolic Instruction Code - came into being on May 1st 1964 at 4am!
In many ways it is unfair to consider BASIC in isolation from its time-sharing environment. At the time nearly all computers were run in batch mode - you submitted your program, it was compiled, run to completion and only then did you see your output. Typical turnaround time on a small program was a day but many programmers would wait a week to see the results of their efforts.BASIC was different in that the time-sharing system allowed a BASIC program to be typed in and run in a few minutes.
At first BASIC was modelled on the batch languages of the time in that all of the data that the program would process had to be included in a DATA statement before the program could be run. In 1966 the INPUT statement was added allowing the user to type in data while the program was running and BASIC had become a fully interactive language.
The aims of the BASIC system were:
- to develop a system and language that was friendly, easy to learn and use.
- to introduce computing as an adjunct to other courses
- to operate an open access policy
These were very different aims to the ones adopted by the creators of Fortran, Algol and Cobol and their effect can be seen in the pragmatic nature of the language - if it worked simply and looked simple. As a result BASIC is mostly descended from Fortran because it has a simple structure and avoids nesting and recursion. Algol was mostly too technical and Cobol too verbose, although BASIC's FOR statement is borrowed from Algol because it is easier to read.
The first version of BASIC had remarkably few statements: LET, PRINT, END, FOR, NEXT, GOTO, IF THEN, DEF, READ, DATA, DIM, GOSUB, RETURN and REM. The distinction between integer and real variables was abolished and variable were restricted to names consisting of a single letter or a single letter and a digit.
The first example of BASIC in its very first manual - "in most cases the purpose of each line in the program is self-evident"
People argued for years over the rights and wrongs of each of these decisions but it is unarguable that the first version of BASIC met its objectives and was the first really useful teaching language and the first language to attempt `user-friendliness' even if it didn't wholly achieve it!
The rise (and fall?) of BASIC
While Dartmouth BASIC was a success in the late 60s and early 70s the real boom years for BASIC were the late 70s when the personal computer posed an interesting problem for language designers.
The original personal computers had typical memory capacities of 4KBytes or even less. At first it looked like a return to the old days of assemblers and even hand assembled machine code because the high level language compilers of the time took hundreds of KBytes and this was way beyond the pockets of the personal computer pioneers. However there was one exception to the memory hungry compilers - BASIC.
Because it was intended as a teaching language many compact implementations, both interpreter and compiler based, had been constructed for mini-computers, i.e cheap hardware, that would fit into 8-16KBytes. BASIC's simplicity made it possible to design these compact implementations and so it was a natural choice for any one trying to produce a high level language for a personal computer.
Paul Allen and Bill Gates had just completed a BASIC interpreter for a PDP 8 (a mini-computer) as a high school project when the first personal computer, the Altair from MITS, appeared. The pair of them recognised the opportunity and managed the amazing feat of squashing a BASIC interpreter into 4KBytes with just enough space left over to actually run a small program.
Bill Gates states that it took three and a half weeks to produce the first version and about eight weeks to polish it. Even then they felt dissatisfied enough to rewrite the whole thing. To give you some idea of how difficult it was to get the interpreter into 4KBytes they changed the traditional READY prompt to OK to save three bytes!
This 4K BASIC was the first version of Microsoft BASIC and Bill Gates went on to convert and expand the code for a wide range of new machines. There were many other small implementations of BASIC for micros - Li Chen Wang's Tiny BASIC, Steve Leininger's TRS-80 BASIC, Steve Wozniak's Apple integer BASIC, Gordon Eubanks' EBASIC and CBASIC and Robert Uiterwyk's 6800 BASIC to name just the more popular products - but Bill Gate's Microsoft BASIC had more influence than any other.
Gates managed to persuade most of the personal computer manufacturers that they needed his BASIC and developed customised ROMable versions for all and sundry. Even the Japanese bought Microsoft BASIC in ROM and the final seal of approval must have been the inclusion of the BASICA ROM in the IBM PC. Microsoft carried on developing BASIC into the 90s with the final version being the Quick BASIC compiler a fully structured language that still possessed BASIC's simplicity.
Because of its association with the personal computer BASIC became the dominant language in terms of number of people actually using it.