In this reprint from the August 2012 issue of Game Developer magazine, writer John Szczepaniak celebrated the 48th anniversary of BASIC programming language by asking its creators and early advocates about its inception, history, and influence on the modern game industry.
BASIC turns 50 this year, and in honor of the occasion we've taken the liberty of reprinting Szczepaniak's extensive article.
The BASIC programming language, or Beginner's All-purpose Symbolic Instruction Code, turned 48 this year. That's an extraordinarily long life for tech -- even longer than the commercial video game industry has been around. Since its inception, BASIC has proliferated from a single source to include now over 280 variations and growing. Just about every single model of computer (including a few game consoles) has had at least one variant. Many veteran game developers got started working with BASIC out of their bedrooms on early personal computers, and BASIC remains popular with hobbyist coders.
The fathers of the original Dartmouth BASIC are Dr. Thomas Kurts and the late Dr. John Kemeny, who died in 1992. Kurtz, who turned 84 this year, spoke with absolute clarity as he recounted BASIC's launch.
"That first BASIC saw the light of day on May 1, 1964, at 4 a.m. We were a team, but [Kemeny] was always the team leader. He did the politicking and the money-raising that was always necessary while I attended to the details. But he was always careful to give me full credit for my share of the project, whatever the project. I had already used the word BASIC for a statistics text I wrote several years earlier [Basic Statistics, 1963]. John Kemeny liked acronyms, and so we settled on BASIC, for which he devised the expansion "Basic All-purpose Symbolic Instruction Code.' By the way, it has always been 'Symbolic' and never 'Simplified.'"
Kurtz was first introduced to computers in 1951, when he spent the summer at the Institute for Numerical Analysis at UCLA, which was in the process of building the Standard Western Automatic Computer [SWAC], a clunky contraption that used both vacuum tubes and Williams tubes for internal memory. He created a program that used SWAC to deal with tail probabilities for statistical distributions.
Five years later he met Kemeny. "Although John Kemeny had been at Princeton while I was a grad student there, I didn't meet him until he was recruiting for Dartmouth in 1956," Kurtz said. "I was recruited to teach statistics, among other things, and it turned out that IBM, MIT, and UCLA were establishing regional computer centers in the East and the West. To earn extra money I was made a "research associate" in this effort and, even before I showed up at Dartmouth for my first class, I attended a course at MIT on Share Assembly Language (SAP) for the IBM-704."
Dr. Thomas Kurts (left) and the late Dr. John Kemeny, progenitors of Dartmouth BASIC, seen above in an early promotional photograph for True BASIC.
But SAP was complicated, and Kemeny wanted to make programming accessible for students without a science background, because those students often become future decision-makers in business and government. "In some of my talks in those early days, I called programming in BASIC a 'learning machine,'" Kurtz said. "I've always felt that being able to program meant that one had to develop the ability to abstract, to construct 'mental models' of something or other. I feel that this ability leads to being able to make contributions in fields other than the sciences."
So they needed a programming language that was more accessible than Assembly. "To make SAP more palatable to nonprogrammers at Dartmouth, John Kemeny devised DARSIMCO, Dartmouth Simplified Code, by presenting SAP in terms of three-instruction sequences," Kurtz explained.
For example, to perform A + B = C, you would write:
DARSIMCO and SAP were both abandoned in 1957, when FORTRAN arrived at Dartmouth.
"BASIC was the only widely available interactive language. Smalltalk? Lisp? Logo? MUMPS? They didn't stand a chance against BASIC."
Although higher-level languages were generally believed to be inefficient compared to assembly language, Kurtz discovered that coding in higher-level languages saved both computer usage time -- which was a valuable and limited commodity -- as well as his personal time. So he continued to work with higher-level languages that would inform BASIC's development later on.
In 1959, an undergraduate student without a computer background, influenced by FORTRAN, prepared a higher-level language and compiler he called DART for the LGP-30 computer (a rotating drum machine), which caught Kurtz's attention. Around 1961, Kurtz and several students worked on an ALGOL compiler for the LGP-30, which was later modified to be self-contained and named SCALP. This new language was subsequently taught to hundreds of students until BASIC replaced it.
Meanwhile, Kemeny worked on one more important language in 1962 before BASIC, again for the LGP-30. As Kurtz explained:
"John Kemeny devised a simplified language for that environment he called DOPE, 'Dartmouth Oversimplified Programming Environment,' which anticipated BASIC in having one instruction per line and having instructions such as:
5 + A B C
to indicate 'Add A + B and put the result in C.'
This naturally led to the BASIC form
5 LET C = A + B
DARSIMCO, DART, ALGOL 30, SCALP, and DOPE didn't last long enough and weren't massively successful, but they all influenced Kemeny and Kurtz with regard to BASIC's fundamental principles, which he explained as:
A) We made no distinction between floating-point arithmetic; we used only double precision floating-point internally, and adopted several strategies to make loop termination come out right.
B) No format-control on INPUT and default format for printed output.
C) One line, one statement.
D) Since we needed line numbers to facilitate editing (this was before WYSIWYG screen editors), we used these line numbers as GOTO targets.
E) The word LET came from our mathematics background, because we are always saying things like "Let G be an Abelian Group." Furthermore, LET was required for assignment statements so that all statements started with a keyword. This made understanding things like X = Y + Z easier for nonscientists. For logical expressions, we used IF X = Y + Z THEN... while for assignments we used LET X = Y + Z.
F) No nonobvious punctations, like the ALGOL semicolon to terminate statements, or the mysterious FORTRAN IF (A) 100, 200, 300. There is no comma allowed after the (A). Along the same line; we used ordinary-sounding English words for the commands to the time-sharing system. HELLO rather than LOGON, GOODBYE rather than LOGOFF, NEW to create a new program, OLD to retrieve an existing program, and so on.
Interestingly enough, BASIC didn't support the INPUT statement until its third version, meaning that for the first two years it wasn't actually an interactive language -- obviously making game creation rather difficult!
Basic Time Sharing
The other major factor in BASIC's widespread adoption was the development of time sharing. With a batch computing system, it could take hours, or even days, for a program's results to arrive. Less-intuitive languages were easier to make mistakes with, and those mistakes would waste precious computer access. Time sharing allowed several people to work on one computer simultaneously, maximizing computer time.
Kurtz described the first time-sharing operating system at Dartmouth thusly:
"Two Dartmouth students, Mike Busch and John McGeachie, developed a time-sharing operating system for the combination General Electric GE-235 computer and the GE Datanet-30 front-end communications controller. This was done simultaneously with the development of BASIC and, in many ways, was more fundamental to our goals at Dartmouth than BASIC itself. GE immediately took what we had done and developed a nationwide time-sharing network. They used regionally located centers, as the cost of long-distance communication at that time was too expensive. It was in one of these centers in Seattle that Bill Gates was first introduced to computing and BASIC. My best guess is that he was about 13 years old at the time."
Kurtz and the Dartmouth team continued to refine BASIC, adding INPUT, RANDOMIZE, and ON-GOTO statements among many other revisions, until it hit its sixth edition in 1971, which remained largely unchanged for several years. Since BASIC was included with General Electric's time-sharing systems, it continued to spread until it became the most widely used programming language in the world. According to Kurtz, "At one point, around 1974, when ANSI initiated a standards effort for BASIC, it was used on more time-sharing networks, of which there were over a hundred at the time, than any other language -- my recollection is more than 80."
It was around the time of the sixth edition that David Ahl, author of the influential book 101 Basic Computer Games, was introduced to BASIC.
"I accepted a position at Digital Equipment Corporation in late 1969 in the PDP-8 Group and soon got involved in marketing minicomputers to schools and colleges," he said. "At the time, the only high-level language on DEC's smallest computers was FOCAL. However, because of the pioneering work at Dartmouth by John Kemeny and Tom Kurtz in developing BASIC and related educational applications, most colleges and high schools wanted a computer that spoke BASIC."
Unlike other programming languages, BASIC was completely unregulated, which Kurtz believes was crucial to its success.
"Dartmouth always took the point of view that what we did was public, and thus we never made any attempt to control or direct the results of our research," he said. Ahl agreed, adding, "DEC's FOCAL language was equal to BASIC in most aspects and even better in some, but it had one huge drawback: DEC was unwilling to license it to other computer manufacturers. FOCAL was fighting an uphill battle against BASIC, which was available on GE, Honeywell, HP, and other computers."
Games: BASIC's Killer App
The early 1970s saw BASIC move away from mainframes and time-sharing systems and to the burgeoning microcomputers of the day. Ahl recalled how quickly they sprang up: "DEC took the unusual step of contracting with outside vendors to develop four versions of BASIC, one for a 4K stand-alone PDP-8 (EduSystem 10), one for a small multiuser 8K PDP-8 (EduSystem 20), one for the Timeshared-8 (EduSystem 50), and one for a batch processing PDP-8 with a card reader (EduSystem 30). The most limited version was that for the 4K PDP-8 as the BASIC interpreter used 3.5K of memory, so programs had to fit in the remaining 500 12-bit bytes."
To Ahl, games were critical to BASIC's spread. "We needed to demonstrate that such a limited configuration could run real programs, so I started converting FOCAL demo programs to this low-end BASIC," he explained. "We also encouraged users who wrote programs, especially games, to submit them. In 1972 I collected together a bunch of games that I had written from scratch or converted from FOCAL along with submissions from users and published it as 101 BASIC Computer Games. The book was later revised and, in 1983, total sales topped 1 million, and it became the first million-selling computer book."
As the book included type-in listings for BASIC games, it was likely a major catalyst in BASIC's proliferation. A large base of games would appeal to anyone considering incorporating a language into a new piece of hardware -- like Gates and Altair BASIC, for example. Ahl recalls meeting Gates: "When I left DEC in July 1974 and started Creative Computing magazine...I used all my vacation time to attend computer shows and conferences in order to promote Creative Computing. One fascinating show was the Altair Conference in Albuquerque in 1975 where I met Bill Gates and learned of his intention to write a BASIC language for the Altair."
Sure enough, in 1975, MITS released Altair BASIC, which was developed by Gates and Paul Allen as the "Micro-Soft." It was an interpreter, as opposed to Dartmouth and GE's implementation of a BASIC compiler, but it suited the limitations of the Altair hardware.
Despite his influence, Ahl is reluctant to take credit for BASIC's hobbyist popularity. "Did
" I sniffed the wind. There was a book out, 101 BASIC Computer Games, and Bill Gates had written in BASIC. So I said: You've got to have these games; it's going to be the heart of a computer that's worth anything to people."
my book popularize the spread of BASIC? Maybe, but the great libraries of BASIC programs at Dartmouth, the Minnesota Educational Computer Consortium, and Huntington Computer Project along with books like Bob Albrecht's What To Do After You Hit Return were equally infuential. BASIC was the only widely available interactive language. Smalltalk? Lisp? Logo? MUMPS? They didn't stand a chance against BASIC."
BASIC continued to spread as Microsoft ported its version to new microcomputer platforms and other people developed their own BASIC variant. Apple cofounder Steve Wozniak recalls writing Integer BASIC for the first Apple computers:
"I didn't program in BASIC, but I sniffed the wind. There was a book out, 101 BASIC Computer Games, and Bill Gates had written in BASIC. So I said: You've got to have these games; it's going to be the heart of a computer that's worth anything to people...The microprocessor I used only had machine language. I'd never had any training in writing a computer language, so I pulled out a manual at work, which was Hewlett-Packard, and read through making notes of all the commands. I didn't realize their BASIC was very different from Digital Equipment's BASIC, which the 101 Games had been written for. They were very different regarding strings."
Technically, Wozniak was probably the only one to hand write a new version of BASIC, explaining:
"I could not afford a time-share assembler. That's where you take a terminal, call a local phone number, connect to some faraway computer, and type your programs in using machine language. So I wrote my programs in machine language on paper, and then I looked at little charts to figure out what ones and zeroes would be created by them. I would write the ones and zeros down in base-16, or hexadecimal, and type that into the computer I had built. It would take me 40 minutes to type my entire BASIC in. If you go back to Bill Gates, he used a computer to type the program in. I'm sure I must be the only one who wrote a language completely in my own handwriting."
BASIC and the Nascent Game Industry
After that first breakaway in the mid-1970s, BASIC variants continued to propagate across all hardware formats, and as BASIC spread internationally, it would be localized for each new country it spread to. This formed a new distinct microcosms.
In the United Kingdom, microcomputers became wildly popular. Machines such as the ZX Spectrum, Amstrad CPC, and Commodore 64 all had one or more variants of BASIC interpreter. With one of these affordable, comparatively easy-to-learn machines, a teenager in the United Kingdom could write a game in his spare time using BASIC, have a parent sign a publishing contract, and have the game be distributed on audio cassette across the country. Two examples are Ghost Town
by John Pickford, both made while he was still at school. From this humble start on the ZX Spectrum, he would go on to develop NES games for Rare under contract. And thanks to the BBC's Computer Literacy Project, almost every British classroom had a BBC Micro -- complete with BASIC.
Japan adopted BASIC dialects on various home computers, often ported by Microsoft. These computers included NEC models such as the PC-6001 and PC-88, as well as the MSX and X68000 formats. Some of Japan's most prominent developers learned to program using these BASIC variants, including Dragon Quest
creator Yuji Horii. He first encountered BASIC on his PC-6001, reading books on the language and modifying the games he had. Using BASIC he would program one of Japan's first adventure games, the astoundingly successful and genre-defining Portopia Renzoku Satsujin Jinken
, which subsequently influenced an entire generation of Japanese players and developers.
Even Nintendo created a Famicom BASIC variant (called Family Basic) in June 1984, which Pokemon
creator Satoshi Tajiri of Game Freak used to develop his understanding of the Famicom. In an interview with the Tokyo Metropolitan Museum of Photography, he described the creation of his first Famicom/NES title, Quinty
(aka Mendel Palace
"It became possible to see what was actually going on inside the Famicom, when software for beginners called "Family Basic" was released. When I completely understood its mechanism, I went to Akihabara to buy a multiuse circuit board, added the terminals from my Famicom, and ran my programs over it. That was our first step. Then I made a long-lasting battery, to save the memory on the circuit board. It was all a handmade developing environment."
But how important were games to the BASIC founders? Very important, as it turns out. Kurtz explains:
"The early personal computers were primarily game machines for hobbyists. So, their versions of BASIC had instructions for dealing with joysticks, and so on. Remember, at the time that Gates [and others] did their things, BASIC was the most widely used programming language in the world. The microcomputer folks adopted it for their teeny machines, which at first were good only for game playing. It was ideal for hobbyists who could not afford to pay for time-sharing services. Serious business users couldn't imagine giving up their big machine computers to put their applications on these "toys." It's clear that Microsoft did see the potential and managed to benefit from it, but most of the other small computer companies did not."
Even now, you'll find the roots of BASIC in a lot of popular or significant games. Richard Garriott would use Applesoft BASIC when programming Akalabeth
, and again when developing the first Ultima
was started (though not completed) in BASIC. Henk Rogers' The Black Onyx
, a major influence on early Japanese designers, was partially programmed in BASIC. Pitman
, also in Japan, started off as a magazine type-in before it was ported to the Game Boy as Catrap
. Julian Gollop, famouse for the X-Com
series of strategy games, started out programming in BASIC on the ZX81 and then ZX Spectrum micros. One of his earliest BASIC games was Rebelstar Raiders
on the ZX Spectrum, which itself spawned several sequels right up to 2005.
Is BASIC Still Relevant?
BASIC's significance is fading as it nears its 50th anniversary. Anyone interested in game development can use utilities like Game Maker, which don't require any programming knowledge, while more ambitious developers these days target popular platforms with better earning potential, such as iOS. Even if you want to use BASIC, where do you start? Microsoft no longer includes QBASIC with Windows, and the older DOS-based versions are incompatible with modern Windows versions.
BASIC isn't popular in academia anymore, either. "Two things happened over the years," Kurtz said. "First, many of the applications used to demonstrate the use of simple BASIC programs could be handled, for example, by spreadsheets. Second, the computer science profession insisted on introducing ridiculously complicated languages, including those that went with the secondary school computer science curriculum."
Wozniak feels it's still useful for beginners. "It was really a great language with a great purpose," he said. "People have to start somewhere, and I think that's the best starting language you could ever have...Newcomers learn things a lot better when they understand what every statement does. It's a much better starting point."
Ahl feels optimistic, saying, "Will BASIC go on? Yes, but there's a danger in saying that it will last forever like the alphabet or wheel or pliers. Nevertheless, the BASIC language has had a profound influence for 50 years, and Kemeny and Kurtz deserve a great round of applause from all of us...for the last five decades, it's been one of the towering achievements in technology and education."
Where does BASIC go from here? Maybe only BASIC itself can answer that:
You can find more great stories from old issues of Game Developer Magazine in the GDMag Archive section of the GDC Vault.