On May 1st, 1964, the original BASIC programming language was released by John Kemeny and Thomas Kurtz, implemented under their direction by a team of Dartmouth College students in New Hampshire. Their initial goal was to enable students in fields other than science and mathematics to use computers. At the time, nearly all use of computers required writing custom software, which was something only scientists and mathematicians tended to learn. Actually, BASIC also was my very first programming language. I wrote my first program on a Commodore PET 2000 with an 8 bit Intel 6502 main processor, 8 KB of RAM and a cassette drive when I was 12 years old. From my point of view, BASIC was just perfect to learn for an absolute beginner without any idea how a computer really works. But, let us take a look into the history of BASIC.
Before the mid-1960s, the only computers were mainframes. Users submitted jobs on punched cards or similar media to computer operators. The computer stored these, then used a batch processing system to run this queue of jobs one after another – allowing very high levels of utilization of these expensive machines. As the performance of computing hardware rose through the 1960s, multi-processing was developed. This allowed a mix of batch jobs to be run together. I remember that when I began to study computer science, I wrote programs for a mainframe in PL/1. The run of the program was usually scheduled for the nighttime and on the next day, I had to go to fetch my printouts to the output of my program.
The real revolution was the development of time-sharing, which allowed multiple remote interactive users to share use of the computer, interacting with the computer from terminals with keyboards and teletype printers, and later display screens, in much the same way as desktop computers or personal computers would be used later. At the end of my studies, we had already very cool graphic workstations running UNIX with graphical user interfaces.
The original BASIC language was released on May 1, 1964 by John Kemeny and Thomas Kurtz and implemented under their direction by a team of Dartmouth College students. The acronym BASIC comes from the name of an unpublished paper by Thomas Kurtz and stood for “Beginner’s All-Purpose Symbolic Instruction Code” – to be as approachable as possible. BASIC was designed to allow students to write mainframe computer programs for the Dartmouth Time-Sharing System. It was intended specifically for less technical users who did not have or want the mathematical background previously expected. Being able to use a computer to support teaching and research was quite novel at the time.
The language was based on FORTRAN II, with some influences from ALGOL 60 and with additions to make it suitable for timesharing. Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language, and character string functionality being added by 1965. Wanting use of the language to become widespread, its designers made the compiler available free of charge. They also made it available to high schools in the Hanover area, and put considerable effort into promoting the language. In the following years, as other dialects of BASIC appeared, Kemeny and Kurtz’s original BASIC dialect became known as Dartmouth BASIC.
The first version of BASIC had 14 commands, all with straightforward names and syntax that made sense:
- PRINT output text and numbers to the Teletype (and, later on, displayed it on the screens of time-sharing terminals and PCs);
- LET told the computer to perform calculations and assign the result to a variable, in statements such as LET C = (A*2.5)+B;
- IF and THEN let the program determine if a statement was true, vital for anything involving decision-making;
- FOR and NEXT let a program run in loops;
- GOTO let a program branch to another numbered line within itself;
- END, which was required in Dartmouth BASIC, told the computer that it had reached the program’s conclusion.
Knowledge of the relatively simple BASIC became widespread for a computer language, and it was implemented by a number of manufacturers, becoming fairly popular on newer minicomputers such as the DEC PDP series, the Data General Nova, and also central to the HP Time-Shared BASIC system in the late 1960s and early 1970s, where the language was implemented as an interpreter. The introduction of the first microcomputers in the mid-1970s was the start of explosive growth for BASIC. It had the advantage that it was fairly well known to the young designers and computer hobbyists who took an interest in microcomputers. BASIC was one of the few languages that was both high-level enough to be usable by those without training and small enough to fit into the microcomputers of the day, making it the de facto standard programming language on early microcomputers.
Almost universally, home computers of the 1980s had a ROM-resident BASIC interpreter, which the machines booted directly into.[notes 1] When the Apple II, PET 2001, and TRS-80 were all released in 1977, all three had BASIC as their primary programming language and operating environment. Upon boot, a BASIC interpreter in immediate mode was presented, not the command line interface used on systems running CP/M or MS-DOS. Commodore Business Machines included a version of Microsoft BASIC.
Not everybody really liked BASIC. Famous computer scientist Edsger W. Dijkstra’s complained in 1975 “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration“. Sure, BASIC is a primitive programming language. Many concepts available in modern programming languages are missing, not to speak of object orientation, encapsulation, virtualization, etc. Many of my former fellow students who like me started with BASIC had problems switching to more advanced programming languages. But, in the end they also mastered Small Talk, Ada, Modula, or even C++. BTW, BASIC was not the only programming language that Dijkstra didn’t like: FORTRAN (an “infantile disorder”), PL/1 (“fatal disease”) and COBOL (“criminal offense”).[1,3]
At yovisto you might learn more about early programming languages in the 1984 documentary of the computer chronicles on programming languages.
References and Further Reading:
-  Fifty Years of BASIC, the Programming Language That Made Computers Personal, at Time.com
-  Encyclopedia of Computer Languages. BASIC — Beginners All-purpose Symbolic Instruction Code. Murdoch University.
-  Edsger W.Dijkstra: How do we tell truths that might hurt?, 18 June 1975