BASIC: The New and Slimmer FORTRAN II

The book I mention in this post, Joy Rankin’s A People’s History of Computing in the United States, offers some further interesting insights into how BASIC came to be what it is. (All of the following quotes are taken from the book preview except where otherwise marked.)

John Kemeny, chairman of the math department at Dartmouth, and Thomas Kurtz, also a member of the math department, had an unquestionably noble vision: “[E]very student on campus should have access to a computer, and any faculty member should be able to use a computer in the classroom whenever appropriate.” [Time]

Computers small enough to be bought by the dozen were not practical at the time (at least not for their purposes), which left time-sharing a large computer as the only obvious solution. But what they wanted and created was not quite what others had implemented or were working on:

Thus the “Phase 1” time-sharing system, which eventually became DTSS.

However, Kemeny’s experience teaching beginning students in various languages, including assembler, FORTRAN, Algol 58 and their own home-grown DARSIMCO and DOPE, convinced him, but not yet Kurtz, that a new language would be an improvement:

FORTRAN did have clear issues apparent even to Kurtz:

Kurtz says he “tried, briefly, to develop simple subsets of Fortran and ALGOL, but found quickly that such could not be done.” [Time]

But here the direction already seems to be set, based on Kurtz’s feeling that FORTRAN, or something like it, was the best (or at least a reasonable) way to go. Kemeny wrote the first version of BASIC, but:

That seems an improvement over FORTRAN II and certainly appropriate to the goals of the language:

This may well explain why little attention was paid to parts of FORTRAN II that were left out of BASIC: multi-line functions and local variables and parameters for subroutines. For the small student programs described above this would not be much of an issue, and this was a year before Dijkstra’s Notes on Structured Programming really started to kick off widespread discussion of the relationship between language features and the difficulty of writing correct and maintainable code.

But Wikipedia, though not providing a source for the following, does note something that may have contributed a lot to BASIC becoming so popular:

“Free of charge” can be an extremely powerful marketing force, as we have seen with Linux. (We have almost a controlled experiment there: two similar products with Linux at the seeming disadvantage, being late to the game and technically inferior to the BSDs in the early 90s. But the BSDs couldn’t shed their constraints on free distribution until 1994, giving Linux a market lead and sufficient time to redress any technical inferiority.)


Fortran II and IV were portable between many differnt machines
(Mostly IBM’s mess of computer designs in the 50’s and 60’s).
Basic ran on far fewer machines,but by then early computers
had retired, making it a common teaching lanquge. How ever for
production work you still needed fortran IV and complex numbers.

Well, there goes my 5 day streak of not buying any new books. :wink:

1 Like

Interestingly, in this interview (which I have linked many times; the link will start at the referenced point), Ken Thompson claims that this is how B came about. He was trying to pare Fortran down to the point that it would run in the 4K words of memory left for user programs on the PDP-7. Of course, his goal was not to simplify the grammar and usage, but to reduce the compiler complexity and runtime space. He does mention explicitly that he cribbed the B for loop syntax (which survives into C) from Steven Johnson, presumably because it’s so much better than the FORTRAN numeric DO loop of the time.

1 Like

It just arrived today, I’m on page 22 and I already love it.

1 Like