Skip to content

BASIC Programming Culture

10 PRINT "HELLO"

BASIC was written at Dartmouth College in 1964 so that students could program after two lectures. It spread through time-sharing systems, and from 1975 into the ROMs of home computers, where for a decade it was the first thing millions of people saw when they switched on. Its inventors came to dislike the versions those people learned.

“BASIC was born at 4 a.m. on May 1, 1964 at Dartmouth College,” its two inventors wrote twenty years later. “We invented BASIC for use in schools since students needed a simple but powerful computer language.” By the time John Kemeny and Thomas Kurtz wrote that, in 1984, their language was in the ROM of almost every home computer. Switch on a Commodore 64, a ZX Spectrum, an Apple II or a BBC Micro and you were looking at a BASIC prompt, ready for a program. Arthur Luehrmann, an American educator, put it plainly in 1983: “Whether you like it or not, millions of home computers speak BASIC. Only a tiny percentage speak other languages. BASIC is covered with warts, but it’s there.”

The people who learned to program that way were not always the people Kemeny and Kurtz had in mind, and the BASICs they learned were not the one Dartmouth had made. In 1984 its inventors released a BASIC of their own to replace them.

Fast facts

  • Created: 1964 at Dartmouth College, New Hampshire, by John G. Kemeny and Thomas E. Kurtz, with undergraduate students doing much of the programming.
  • First home: Dartmouth’s time-sharing system, which ran on General Electric computers.
  • On home computers: from 1975, starting with Altair BASIC for the MITS Altair 8800; built into the ROM of most 8-bit home computers by the early 1980s.
  • Dialects: Microsoft BASIC in its many versions, including Commodore’s BASIC V2 and the Apple II’s Applesoft; Sinclair BASIC; BBC BASIC.
  • The inventors’ answer: True BASIC, a structured version for personal computers, from 1984.

Two lectures

BASIC was built for beginners on a time-sharing computer, where several people sat at typewriter-like terminals and shared one machine. Hewlett-Packard Journal told the story in November 1968. Kemeny and Kurtz began their project in September 1963, with two aims: to introduce the computer “to a majority of the students at Dartmouth”, and “to make the computer more readily accessible to the faculty”. BASIC “was originally designed to be such a simple language that students could learn to do useful things with it after two one-hour lectures.” It worked. By June 1967, the journal reported, the pair had introduced some 2,000 students to BASIC, and 40% of the faculty used the system.

Kurtz later explained the thinking. “Most programming languages contain obscure grammatical rules that act as a barrier for the beginning student,” he said in 2009. “We tried to remove all such from BASIC.”

The contrast with the usual way of computing was the point. Most programs in 1968 still ran in batch, Hewlett-Packard Journal explained: the programmer left a program at the computer centre “with hundreds of other programs”, came back hours later, and often found that “a simple error or two has kept his program from executing correctly”. On a time-sharing system the program was checked for errors “as soon as it is composed”, and once it worked it could be run immediately.

Leaving home

General Electric, which had supplied Dartmouth’s computers, ended up with a time-sharing system of its own running what was called “GE Basic”. From there, Amiga World explained in 1986, BASIC spread to Hewlett-Packard’s HP 2000 and Digital Equipment’s PDP-8, and on to the microcomputers. Hewlett-Packard’s 1968 article, in an issue that also described the company’s own BASIC system, called it the conversational language “that has proved most popular”. Books of programs followed the language. David Ahl’s BASIC Computer Games began as DEC’s 101 BASIC Computer Games in 1973, and its 1978 microcomputer edition was converted to Microsoft BASIC. By 1981 it and its 1979 sequel had sold over half a million copies between them.

The first microcomputer BASIC was Microsoft’s, written by Bill Gates and Paul Allen with Monte Davidoff for the Altair 8800 in 1975. It was loaded from paper tape, which Amiga World said took between 20 minutes and an hour. “Before long, practically every micro on the market would come with Basic ‘built in’. And Microsoft wrote most of the implementations.” Microsoft’s BASIC went into the Commodore PET, VIC-20 and 64, the TRS-80, the Apple II Plus and later the MSX machines.

Every machine its own BASIC

Because each manufacturer bought or wrote its own BASIC, the dialects drifted apart, and a program printed for one machine often needed changes before it would run on another. Each dialect also showed what its makers cared about.

  • Commodore 64. Its BASIC V2 was Microsoft’s 6502 BASIC from the PET. It had no commands for the 64’s sprites or sound chip, so owners learned the hardware through PEEK and POKE.
  • ZX Spectrum. Sinclair BASIC, written by Nine Tiles, entered each keyword with a single keypress and checked every line as it was typed. The Spectrum version added commands for colour, sound and graphics.
  • BBC Micro. BBC BASIC had named procedures and functions with local variables, DEF PROC and DEF FN, and a built-in 6502 assembler, so a program could mix BASIC and machine code.
  • Apple II. Wozniak’s own Integer BASIC had no floating-point arithmetic. From 1979 the Apple II Plus came with Microsoft’s Applesoft in ROM instead.

Learning by typing

Most home programmers learned from print. Magazines and books printed type-in listings, and typing one in meant reading every line of someone else’s program and then finding your own typing mistakes. Changing a listing was the next step. The Oliver twins began by altering other people’s type-ins on a ZX81, and their first published game was a BASIC listing in Computer & Video Games. BASIC was also too slow for most commercial games, so the next step after that was usually machine code, reached from BASIC with PEEK, POKE and SYS or USR.

The inventors’ complaint

Not everyone thought this was a good way to learn. Luehrmann’s 1983 interview with Atari Connection set out the problems: microcomputer BASICs were “overly complex, tasteless, and full of inconsistencies”, and there was “no easy way to define a procedure and use local variables and pass parameters”. If schools did not teach BASIC well, he warned, children would learn “street BASIC”, “an unstructured, hacker approach where programs are built like houses of cards. You keep adding statements to a wobbly structure, a program, until it collapses into a heap.” He still thought it was worth teaching, because it was the language children could use at home.

Kemeny and Kurtz were harsher about what had become of their work. “Commercial versions of BASIC have remained frozen at about the 1964 level of Dartmouth BASIC,” they wrote in 1984. Dartmouth’s own BASIC had kept developing, with subprograms in the late 1960s, graphics in the early 1970s and better control structures in the mid-1970s. It was also compiled, Amiga World pointed out, as every Dartmouth BASIC had been, while the home computers’ BASICs were interpreters that worked through each line every time it ran. “We watched with increasing dismay as more and more students outside of Dartmouth grew up on bad imitations of our 1964 BASIC,” the pair wrote. “So we decided to take matters into our own hands.” Their answer was True BASIC, which dropped the need for line numbers, offered if-then-else and do-while structures, and was sold for the IBM PC, the Macintosh and, by 1986, the Amiga.

Looking back in 2009, Kurtz judged that he and Kemeny “failed because we didn’t make other people’s computers user friendly”, but had done a good job with their own students.

The habit outlasted the 8-bit machines. The 16-bit computers had BASICs of their own, and on the Amiga and Atari ST, AMOS, STOS and Blitz Basic 2 were written for making games.

Sources

  • John G. Kemeny and Thomas E. Kurtz, “BASIC Becomes a Structured Language”, Computer Language issue 1, September 1984, pp. 20-22: the date and hour of BASIC’s birth, its purpose, Dartmouth’s later versions, “bad imitations”, True BASIC.
  • Herbert D. Peckham, Hands-On BASIC with a PET (McGraw-Hill, 1979), section 1-2, p. 2: Dartmouth, Kemeny and Kurtz, undergraduate programmers, 1 May 1964.
  • Gerald L. Peterson, “BASIC — The Language of Time Sharing”, Hewlett-Packard Journal vol. 20 no. 3, November 1968, pp. 2-3: batch processing, the 1963 project and its goals, two one-hour lectures, the 1967 final report’s figures.
  • Vinoy Laughner, “Basic and Before”, Amiga World vol. 2 no. 3, May/June 1986, pp. 62-64: GE, the HP 2000 and PDP-8, Altair BASIC from paper tape, Microsoft’s share of micro BASICs, compiled Dartmouth BASIC, True BASIC on the Amiga.
  • Arthur Luehrmann, interview, Atari Connection vol. 3 no. 3, 1983, p. 26: “covered with warts, but it’s there”, “street BASIC”.
  • Federico Biancuzzi and Shane Warden (eds.), Masterminds of Programming (O’Reilly, 2009), chapter 5, interview with Thomas Kurtz, pp. 79, 99.
  • The dialect details follow the reviewed Microsoft, BASIC V2, Sinclair BASIC, BBC Micro, Apple II, BASIC Computer Games and type-in listings entries and their sources.

See also

Checked. Verified against primary sources and signed off by a person.