BASIC

From Maze

(Difference between revisions)
Jump to: navigation, search
(→Works Cited)
Line 1:Line 1:
=== ===
=== ===
−
10 PRINT is a computer program that operates in a particular way; it does so, in part, because it is written in a particular programming language, BASIC. This "Beginner's All-purpose Symbolic Instruction Code" has an interesting cultural and technical history. BASIC was developed by John Kemeny and Thomas Kurtz, two professors at Dartmouth College; it became operational in 1964 and was freely shared by its creators, leading to its widespread use in education, at the high school as well as college level. By that time, general-purpose computers had been programmed for about two decades and high-level languages had been in widespread use for a decade. While BASIC has important, distinguishing features, it also continues the history of high-level languages, building on what FORTRAN, Algol, and other languages accomplished.
+
10 PRINT operates in a particular way. The letterforms that appear on the screen, the way they appear in rows and then in columns, and even the speed at which their appearance takes place, all of these are characteristics that contribute to the program's overall aesthetic. 10 PRINT functions this way in part because it is written in a specific programming language: BASIC.
−
BASIC's invention in an educational context is significant. The language was developed for an important early time-sharing environment, the Dartmouth Time-Sharing System. This sort of setup was revolutionary in allowing many programmers to use a single system interactively at the same time. The configuration of such a system, with many terminals connected to a mainframe or minicomputer, was very different from that of the personally owned, relatively inexpensive, single-user computers of the microcomputer era. It was also very different from the batch processing of stacks of punched cards, though. Time-sharing allowed people to engage with and explore computation in significant new ways; BASIC was an important part of this computing revolution.
+
This "Beginner's All-purpose Symbolic Instruction Code" has a fabled cultural and technical history. BASIC was developed by John Kemeny and Thomas Kurtz, two professors at Dartmouth College. By 1964 its creators freely shared a working version of the language, leading to its widespread use, both at the high school and college level.
−
The story of BASIC became even more interesting as microcomputers came to market and into people's homes. In 1975, the MITS Altair 8800 computer, widely acclaimed as the first home computer, became available. Perhaps the most significant piece of software for this system was Altair BASIC, an interpreter for the BASIC programming language that was the first product of a new company, Microsoft. The alternative Tiny BASIC, developed outside of corporate structures, exemplified the way that recreational programs such as 10 PRINT would be created and distributed. Thanks in large part to Microsoft, BASIC became the lingua franca of home computing. Microsoft's versions of the language were standard on many popular microcomputers and were provided in ROM so that the computer could be turned on and immediately programmed. BASIC reigned in the late 1970s and through the early 1980s, when 10 PRINT circulated on paper and was being keyed in by numerous users. It was obvious at the time that BASIC was the canonical language -- so obvious that some books of BASIC programs do not even find it necessary to mention "BASIC" on their cover.
+
By that time, general-purpose computers had existed for about two decades. Many were still programmed in low-level machine languages, but high-level languages (those abstracted from the details of an individual machine) had also been in widespread use for a decade. While BASIC has its own distinguishing features, it also continues the history of high-level languages, building on what FORTRAN, Algol, and other languages had accomplished, namely a more natural syntax, easier use, and greater portability across platforms.
 +
 +
BASIC's invention in an educational context is significant. The language was developed for an early time-sharing environment, the Dartmouth Time-Sharing System (DTSS). This sort of setup was revolutionary in allowing many programmers to use a single system interactively at the same time. The configuration of such a system--with many terminals connected to a mainframe or minicomputer--differs considerably from that of the personally owned, relatively inexpensive, single-user computers of the microcomputer era. But in the early 1960s, the DTSS also distinguished itself from earlier systems that required the batch processing of stacks of punched cards. Time-sharing allowed people to engage with and explore computation in significant new ways; BASIC was an important part of this computing revolution. Both DTSS and the BASIC language it ran were designed for educational contexts, so ease of use was paramount. This design value unwittingly facilitated BASIC's massive adoption and success, even if it also subjected the language to criticisms later on.
 +
 +
BASIC became even more influential as microcomputers entered people's homes. In 1975, the MITS Altair 8800 computer, widely acclaimed as the first home computer, became available. Perhaps the most significant piece of software for this system was Altair BASIC, an interpreter for the BASIC programming language that was the first product of a tiny new company called Microsoft.
 +
 +
Thanks in large part to Microsoft, BASIC became the lingua franca of home computing. Microsoft's versions of the language were standard on many popular microcomputers, where they resided in ROM so that the computer could be turned on and immediately programmed. BASIC reigned in the late 1970s and through the early 1980s, when 10 PRINT circulated on paper for users of all kinds to key in to their PCs. It was obvious at the time that BASIC was the canonical language -- so obvious that some books of BASIC programs do not even find it necessary to mention "BASIC" on their cover.
While the heyday of the language did not last, interesting new versions of BASIC, sometimes radically reformulated, continued to appear. The creators of the original language introduced True BASIC in 1983. In 1985, Microsoft's QuickBASIC offered several innovations and made line numbers optional. Microsoft's even more radically different Visual Basic saw widespread use in creating business applications.
While the heyday of the language did not last, interesting new versions of BASIC, sometimes radically reformulated, continued to appear. The creators of the original language introduced True BASIC in 1983. In 1985, Microsoft's QuickBASIC offered several innovations and made line numbers optional. Microsoft's even more radically different Visual Basic saw widespread use in creating business applications.
−
Despite or because of its popularity, BASIC joins COBOL as one of the major whipping boys among programming languages. Inextricably associated with Microsoft and that bane of structured programmers, GOTO, the language is said to encourage the writing of spaghetti code, to be unbearably slow, and to be suitable only for children and amateurs. Yet many programmers in the early 21st century remember BASIC fondly. The language was a popular success, worked well for small programs that let people explore the possibilities of computing, and fostered creativity and innovation by new categories of computer users.
+
Despite or because of its popularity, BASIC joins COBOL as one of the major programming language scapegoats. Inextricably associated with Microsoft and that bane of structured programmers, GOTO, the language is said to encourage the writing of spaghetti code, to be unbearably slow, and to be suitable only for children and amateurs. Yet many programmers in the early twenty-first century remember BASIC fondly. The language was a popular success, worked well for small programs that let people explore the possibilities of computing, and fostered creativity and innovation by new categories of computer users.
== A Brief History of Programming ==
== A Brief History of Programming ==
−
There is plenty of dispute about who the first computer programmer is, but many have awarded this designation to Ada Byron, Lady Lovelace. She was brought up by her mother and educated extensively in mathematics and logic so that she might avoid becoming a poet like her father, Lord Byron. (The struggle to keep computation apart from poetics and aesthetics, instead of allowing them to mingle, as they do in 10 PRINT, has a long history.) Her contributions as an early "programmer" are found in her translation of and notes to an Italian article about Charles Babbage's Analytical Engine by Louis Menebrea. In this work, completed in 1843, she envisioned the Analytical Engine as a general-purpose computer and described an algorithm that could be used to output Bernoulli numbers. Although the computer Lovelace programmed was never built, and there is evidence that the algorithm in question was originally written by Babbage, Lovelace's project was important to the modern idea of the computer program. This earliest concept of such a program was of an algorithm specified in mathematical notation.
+
There is plenty of dispute about who should be rightly called the first computer programmer, but many have awarded this designation to Ada Byron, Lady Lovelace. She was brought up by her mother and educated extensively in mathematics and logic so that she might avoid becoming a poet like her father, Lord Byron. The struggle to keep computation apart from poetics and aesthetics, instead of allowing them to mingle as they do in 10 PRINT, has a long history.
−
The computer programs that followed in the electromechanical and early electronic age of computing were quite a bit less intelligible, with a much less direct relationship to familiar symbols. The ENIAC, a fully electronic computer which was built at the University of Pennsylvania from 1943 to 1945, was programmed initially by plugging in an elaborate set of cables. [http://www.columbia.edu/acis/history/eniac.html] To run particular calculations, constants were then set using dials. The next step in programming was the use of machine language. A program in machine language is simply a sequence of numbers. On the ENIAC, these were decimal (base 10) numbers, but different bases were used on other significant early systems. The EDVAC used binary; the ORDVAC, octal; and the BRLESC, sexadecimal. [Fifty years of Army computing by U.S. Army Research Laboratory, p. 62] In all of these cases, programmers needed to arduously determine the sequence of numbers that would constitute a program, writing something that did not look remotely human language at all. Each operation the computer was to perform corresponded to a number, while the operands, if there were any, were provided as similar numbers. For instance, to jump unconditionally to a particular absolute address, an opcode such as "76" (in base 10) is used, followed by two bytes specifying the address. In fact, this is the opcode used for an unconditional branch to an absolute address on the Commodore 64.
+
Her contributions as an early "programmer" can be found in her translation of and notes to an Italian article about Charles Babbage's Analytical Engine by Louis Menebrea. In this work, completed in 1843, she envisioned the Analytical Engine as a general-purpose computer and described an algorithm that could be used to output Bernoulli numbers. Although the computer Lovelace programmed was never built, and there is evidence that the algorithm in question was originally written by Babbage, Lovelace's project was important to the modern idea of the computer program. This earliest concept of such a program was of an algorithm specified in mathematical notation.
−
The first step toward more legible code was seen in the second generation programming languages, assembly languages. Assembly allows the use of mnemonics for operators such as LDA ("load accumulator"), JMP ("jump"), and INC ("increment memory") to stand in for the less easily read underlying numbers. On the Commodore 64, the letters JMP followed by an absolute address are converted by the assembler to "76" in a machine language program. The first assembler ran on Cambridge University's EDSAC, the first stored-program computer, in 1949. [http://liveforsinging.com/categoryA/language_history/assembly_language_history.html] Although cryptic compared to a high-level language such as BASIC, an assembler program is nevertheless much more comprehensible to a human than a machine language program is. While assembly is still used today in, for instance, programming firmware and in the demoscene, there are usually significant disadvantages to programming at this level. Programming in assembly highlights technical details of platforms and the transfer of values between memory locations and registers. Higher-level languages allow the programmer to concentrate on other matters, such as solving mathematical and scientific problems or mapping programs to business processes.
+
The computer programs that followed in the electromechanical and early electronic age of computing were quite a bit less intelligible, with a much less direct relationship to familiar symbols. The ENIAC, a fully electronic computer built at the University of Pennsylvania from 1943 to 1945, was programmed initially by plugging in an elaborate set of cables. [http://www.columbia.edu/acis/history/eniac.html] To run particular calculations, constants were then set using dials.
−
During the first decade of electronic computing, programming was still crawling toward the ideal of Lovelace's "programs" that specified algorithms in high-level, human-readable form. To reach a level of programming more appropriate for mathematical and scientific tasks, FORTRAN (Formula Translation) was specified in 1954 and first implemented in 1957. This language, and particularly the next version of it (FORTRAN II, which appeared in 1958), was a very strong influence on BASIC. Programming languages were developed for other purposes as well. To address business uses, COBOL was specified in 1959 and implemented in 1960. FORTRAN and COBOL both allowed for more intelligible code, improving on assembly, but both were also developed for the context of batch processing, for use with stacks of punched cards. Specifically, they were developed for what became known as simply "the IBM card," IBM's 1928 punched card that had 80 columns. (As explained in the chapter "Regularity," the Commodore 64's 80-column logical line, which appears as two 40-column lines on the screen, is one legacy of this early material medium for computing.) Programs written in early versions of COBOL and FORTRAN were specific to the punched card in certain ways: COBOL reserved columns 1-6 for the line number and column 7 for a continuation mark if the card's code ran on from the previous one. FORTRAN was similar, with columns 1-5 indicating the statement number. "Comments" (usually the program name) went in columns 73-80 in both languages; a "C" in the first column indicated that the whole FORTRAN card was to be considered a comment. Unless a programmer wrote a one-liner -- which in this case means writing a program that fits on a single card -- a COBOL or FORTRAN program would manifest itself as a stack, often a massive one, of punched cards. These had to be punched on a keypunch machine and fed into a card reader by an operator. Line numbers were of great importance in one particular situation: if someone dropped the stack of cards and they needed to be sorted into order.
+
The next step in programming was machine language. A program in machine language is simply a sequence of numbers. On the ENIAC, these were decimal (base 10) numbers, but different bases were used on other significant early systems. The EDVAC used binary; the ORDVAC, octal; and the BRLESC, sexadecimal. [Fifty years of Army computing by U.S. Army Research Laboratory, p. 62] In all of these cases, programmers needed to arduously determine the sequence of numbers that would constitute a program, writing something that did not look remotely human language at all. Each operation the computer was to perform corresponded to a number, while the operands, if there were any, were provided as similar numbers. For instance, to jump unconditionally to a particular absolute address, an opcode such as "76" (in base 10) is used, followed by two bytes specifying the address. In fact, this is the opcode used for an unconditional branch to an absolute address on the Commodore 64.
 +
 +
The first step toward more legible code arose in the second generation programming languages, assembly languages. Assembly allows the use of mnemonics for operators such as LDA ("load accumulator"), JMP ("jump"), and INC ("increment memory") to stand in for the less easily remembered numeric codes. On the Commodore 64, the letters JMP followed by an absolute address are converted by the assembler to "76" in a machine language program. The first assembler ran on Cambridge University's EDSAC, the first stored-program computer, in 1949. [http://liveforsinging.com/categoryA/language_history/assembly_language_history.html]
 +
 +
Although cryptic compared to a high-level language such as BASIC, an assembler program is nevertheless much more comprehensible to a human than a machine language program is. While assembly is still used today in, for instance, programming firmware and in the demoscene, there are usually significant disadvantages to programming at this level. Programming in assembly highlights technical details of platforms and the transfer of values between memory locations and registers. Higher-level languages allow the programmer to concentrate on other matters, such as solving mathematical and scientific problems or mapping programs to business processes.
 +
 +
During the first decade of electronic computing, programming was still crawling toward the ideal of Lovelace's "programs" that specified algorithms in high-level, human-readable form. To reach a level of programming more appropriate for mathematical and scientific tasks, FORTRAN (Formula Translation) was specified in 1954 and first implemented in 1957. This language, and particularly the next version of it (FORTRAN II, which appeared in 1958), had a very strong influence on BASIC.
 +
 +
Programming languages were developed for other purposes as well. To address business uses, COBOL was specified in 1959 and implemented in 1960. FORTRAN and COBOL both allowed for more intelligible code, improving on assembly, but both were also developed for the context of batch processing, for use with stacks of punched cards. Specifically, they were developed for what became known as simply "the IBM card," IBM's 1928 punched card that had 80 columns. (As explained in the chapter "Regularity," the Commodore 64's 80-column logical line, which appears as two 40-column lines on the screen, is one legacy of this early material medium for computing.) Programs written in early versions of COBOL and FORTRAN were specific to the punched card in certain ways: COBOL reserved columns 1-6 for the line number and column 7 for a continuation mark if the card's code ran on from the previous one. FORTRAN was similar, with columns 1-5 indicating the statement number. "Comments" (usually the program name) went in columns 73-80 in both languages; a "C" in the first column indicated that the whole FORTRAN card was to be considered a comment. Unless a programmer wrote a one-liner -- which in this case means writing a program that fits on a single card -- a COBOL or FORTRAN program would take the form of a stack, often a massive stack, of punched cards. These had to be punched on a keypunch machine and fed into a card reader by an operator. Line numbers were of great importance in one particular situation: if someone dropped the stack of cards and they needed to be sorted into order.
FORTRAN's GOTO command was the basis for the GOTO in the original BASIC (MoP p. 86), which of course was carried over into Commodore 64 BASIC. GOTO functions in the same way the assembly language JMP does. There is not much of an advantage to using BASIC if one is simply interested in easily writing JMP, but other BASIC commands, such as PRINT, allow one to very efficiently accomplish what would take very many machine-language operations.
FORTRAN's GOTO command was the basis for the GOTO in the original BASIC (MoP p. 86), which of course was carried over into Commodore 64 BASIC. GOTO functions in the same way the assembly language JMP does. There is not much of an advantage to using BASIC if one is simply interested in easily writing JMP, but other BASIC commands, such as PRINT, allow one to very efficiently accomplish what would take very many machine-language operations.
−
The creators of BASIC were seeking to develop a programming language for the next computing revolution, one that would go beyond punched cards and batch processing to allow numerous users interactive access to a system simultaneously. This revolution was time-sharing.
+
The creators of BASIC hoped to develop a programming language for the next computing revolution, one that would go beyond punched cards and batch processing to allow numerous users interactive access to a system simultaneously. This revolution was time-sharing.
== Dartmouth BASIC and Time-Sharing Minicomputers ==
== Dartmouth BASIC and Time-Sharing Minicomputers ==
Line 29:Line 43:
In 1962, change was sweeping through the remote Dartmouth campus. ''Time'' noted late that year, in article that declared the college was coming "out of the woods," that the school had built a major new arts center and that John Kemeny, who had made full professor at age 27, had built "the best college math department in the country." [http://www.time.com/time/magazine/article/0,9171,829487-1,00.html] That year, Kemeny and his colleague Thomas Kurtz had started developing a time-sharing system and a new programming language for the education of all students at Dartmouth -- not just those studying math, science, or engineering. They aimed to make a radical improvement in access to computers and to computer programming. "While the availability of FORTRAN extended computer usage from a handful of experts to thousands of scientific users," Kemeny wrote, "we at Dartmouth envisaged the possibility of millions of people writing their own computer programs." (Man and the Computer p. 30)
In 1962, change was sweeping through the remote Dartmouth campus. ''Time'' noted late that year, in article that declared the college was coming "out of the woods," that the school had built a major new arts center and that John Kemeny, who had made full professor at age 27, had built "the best college math department in the country." [http://www.time.com/time/magazine/article/0,9171,829487-1,00.html] That year, Kemeny and his colleague Thomas Kurtz had started developing a time-sharing system and a new programming language for the education of all students at Dartmouth -- not just those studying math, science, or engineering. They aimed to make a radical improvement in access to computers and to computer programming. "While the availability of FORTRAN extended computer usage from a handful of experts to thousands of scientific users," Kemeny wrote, "we at Dartmouth envisaged the possibility of millions of people writing their own computer programs." (Man and the Computer p. 30)
−
To reach millions, Kemeny and Kurtz would clearly have to significantly lower the existing barriers to programming, barriers which were related not only to the nature of programming languages but to the material nature of programming. The two began development of DTSS, the Dartmouth Timesharing System, and with it the BASIC programming language. They considered developing a subset of FORTRAN or Algol, but found this unsuitable and instead set to work, with a team of undergraduates, at developing a new language (Masterminds of Programming p. 79). They saw the value of an interactive time-sharing system for allowing users to quickly correct minor errors rather than coming back 24 hours later with a new stack of punched cards for their next scheduled batch job. They also relaxed some of the specific requirements that were tied to using keypunch machines and cards. Kurtz told an interviewer, "we wanted ... to get away from the requirements that punched cards imposed on users, which was that things had to be on certain columns on the card." (Masterminds of Programming p. 81) Oddly enough, BASIC was so relaxed that spaces between tokens were optional in Dartmouth's versions of the language. Spaces were ignored, as Kurtz explains, because "some people, especially faculty members, couldn't type very well." (MoP p. 81) This aspect of Dartmouth BASIC was carried over onto the Commodore 64, as mentioned in the introduction.
+
To reach millions, Kemeny and Kurtz would clearly have to significantly lower the existing barriers to programming, barriers which were related not only to the esoterics of programming languages but to the material nature of programming. The two began developing the Dartmouth Timesharing System, and with it the BASIC programming language. They considered developing a subset of FORTRAN or Algol, but found this unsuitable and instead set to work, with a team of undergraduates, at developing a new language (Masterminds of Programming p. 79). They saw the value of an interactive time-sharing system for allowing users to quickly correct minor errors rather than coming back 24 hours later with a new stack of punched cards for their next scheduled batch job. They also relaxed some of the specific requirements that were tied to using keypunch machines and cards. Kurtz told an interviewer, "we wanted ... to get away from the requirements that punched cards imposed on users, which was that things had to be on certain columns on the card." (Masterminds of Programming p. 81) Oddly enough, BASIC was so relaxed that spaces between tokens were optional in Dartmouth's versions of the language. Spaces were ignored, as Kurtz explains, because "some people, especially faculty members, couldn't type very well." (MoP p. 81) This aspect of Dartmouth BASIC was carried over onto the Commodore 64, as mentioned in the introduction.
BASIC was designed in other ways to help new programmers, with "error messages that were clear and friendly" and default options that would satisfy most users' needs (9). "If the expert needs something fancier," Kemeny and Kurtz declared, "let the expert do the extra work!" (11). And, BASIC was meant to be a true high-level language, so that programmers would not need any detailed knowledge of the specific hardware being used.
BASIC was designed in other ways to help new programmers, with "error messages that were clear and friendly" and default options that would satisfy most users' needs (9). "If the expert needs something fancier," Kemeny and Kurtz declared, "let the expert do the extra work!" (11). And, BASIC was meant to be a true high-level language, so that programmers would not need any detailed knowledge of the specific hardware being used.
−
While BASIC didn't require that programmers put things in certain columns, there was a requirement that something be put at the beginning of each line: a line number, such as "10." This facilitated branching, of course; the GOTO and GOSUB statements refer to the line numbers where program flow should continue. BASIC did not actually need line numbers for this purpose, however. Labels, such as those used in assembly, would have sufficed, and indeed they do suffice in later versions BASIC that do not use line numbers. The line number's real value is seen on a Teletype or other print terminal, or in any environment where full-screen editing is not an option. Line numbers made it easy in those cases to delete existing lines; simply type the line number without any further instructions, and the line disappears. To correct a single existing line, it's possible to simply retype the line with the same line number. To see what a particular line, say line 50, currently is, "LIST 50" will do the trick -- although if one had written the line recently, one could also look up to where the line had been printed out on the roll of paper.
+
While BASIC didn't require programmers to put things in certain columns, there was a requirement that something be put at the beginning of each line: a line number, such as "10." This facilitated branching, of course; the GOTO and GOSUB statements refer to the line numbers where program flow should continue. BASIC did not actually need line numbers for this purpose, however. Labels, such as those used in assembly, would have sufficed, and indeed they do suffice in later versions BASIC that do not use line numbers. The line number's real value is seen on a Teletype or other print terminal, or in any environment where full-screen editing is not an option. Line numbers made it easy in those cases to delete existing lines; simply type the line number without any further instructions, and the line disappears. To correct a single existing line, just retype a line with the same line number. To see what a particular line, say line 50, currently is, "LIST 50" will do the trick -- although if one had written the line recently, one could also look up to where the line had been printed out on the roll of paper.
The practice of numbering program statements by multiples of five or ten is not merely aesthetic; the insertion of new lines in a program requires that, as the 1964 manual puts it, "the original line numbers <ins>not</ins> be consecutive numbers" (22). Numbering a program 10, 20, 30, and so on ensured that between every existing program statement there was room for nine more. It was an acknowledgement that the program is dynamic rather than fixed and perfect. The ''Commodore 64 User's Guide'' also advises that "it is good programming practice to number lines in increments of 10--in case you need to insert some statements later on" (33).
The practice of numbering program statements by multiples of five or ten is not merely aesthetic; the insertion of new lines in a program requires that, as the 1964 manual puts it, "the original line numbers <ins>not</ins> be consecutive numbers" (22). Numbering a program 10, 20, 30, and so on ensured that between every existing program statement there was room for nine more. It was an acknowledgement that the program is dynamic rather than fixed and perfect. The ''Commodore 64 User's Guide'' also advises that "it is good programming practice to number lines in increments of 10--in case you need to insert some statements later on" (33).
Line 39:Line 53:
DTSS and the versions of BASIC that ran on it served almost all of the students at that college - Kemeny stated in 1971 that 90% of seven classes of freshmen had received computer training. Access to Dartmouth's system extended to many other campuses, and it was not the only time-sharing system with BASIC. By 1965, General Electric - on whose computers DTSS and the original BASIC ran -- was offering a commercial time-sharing service that included BASIC (Waldrop p. 292). Before the microcomputer revolution, other college and university students were taking required courses in computing using BASIC -- at NYU's business school, for instance. Even before the arrival of home computers with built-in BASIC, the language had extensive influence. And even before the microcomputer era and the full toppling of BASIC's Tower of Babel, the permissive attitude of Kemeny and Kurtz had led to many different implementations of BASIC for different systems. Writing in 1975, one author commented: "BASIC systems differ among themselves in much the same way that the English language as we know it differs among the English-speaking nations around the globe." (Mullish p. 6)
DTSS and the versions of BASIC that ran on it served almost all of the students at that college - Kemeny stated in 1971 that 90% of seven classes of freshmen had received computer training. Access to Dartmouth's system extended to many other campuses, and it was not the only time-sharing system with BASIC. By 1965, General Electric - on whose computers DTSS and the original BASIC ran -- was offering a commercial time-sharing service that included BASIC (Waldrop p. 292). Before the microcomputer revolution, other college and university students were taking required courses in computing using BASIC -- at NYU's business school, for instance. Even before the arrival of home computers with built-in BASIC, the language had extensive influence. And even before the microcomputer era and the full toppling of BASIC's Tower of Babel, the permissive attitude of Kemeny and Kurtz had led to many different implementations of BASIC for different systems. Writing in 1975, one author commented: "BASIC systems differ among themselves in much the same way that the English language as we know it differs among the English-speaking nations around the globe." (Mullish p. 6)
−
While BASIC was a significant project at Dartmouth, it was only one part of the push to expand access to computing that resulted in DTSS, allowed sites all around the East Coast to connect to Dartmouth's computers, and fostered a more productive and creative relationship to computing. In his book 1972 ''Man and the Computer,'' Kemeny defends programming and playing games and other "recreational" uses of the computer as important, writing that such actrivities are relaxing and help people to overcome their fear of computers (p. 35). Kemeny also describes some of the context in which BASIC programming was done at Dartmouth: "The computation center is run in a manner analogous to Dartmouth's million-volume open-stack library. Just as any student may go in and browse the library or check out any book he wishes without asking for persmission or explaining why he wants that particular book, he may use the computation center without asking permission or explaining why he is running a particular program." (Man and the Computer p. 33) It was not only the BASIC programming language, but also the development of this permissive attitude toward computing that allowed for programs with no obvious military, business, or scientific purpose -- such as 10 PRINT -- to come about.
+
While BASIC was a significant project at Dartmouth, it was only one part of the push to expand access to computing that resulted in DTSS, allowed sites all around the East Coast to connect to Dartmouth's computers, and fostered a more productive and creative relationship to computing. In his 1972 book ''Man and the Computer,'' Kemeny defends programming and playing games and other "recreational" uses of the computer as important, writing that such activities are relaxing and help people to overcome their fear of computers (p. 35). Kemeny also describes some of the context in which BASIC programming was done at Dartmouth: "The computation center is run in a manner analogous to Dartmouth's million-volume open-stack library. Just as any student may go in and browse the library or check out any book he wishes without asking for permission or explaining why he wants that particular book, he may use the computation center without asking permission or explaining why he is running a particular program." (Man and the Computer p. 33) It was not only the BASIC programming language, but also the development of this permissive attitude toward computing that allowed for programs with no obvious military, business, or scientific purpose -- such as 10 PRINT -- to come about.
So, while home computing provides a significant context for the program at the center of our discussion, the computer had become more welcoming and available for a wider variety of uses -- even before it moved into the home -- thanks in part to BASIC.
So, while home computing provides a significant context for the program at the center of our discussion, the computer had become more welcoming and available for a wider variety of uses -- even before it moved into the home -- thanks in part to BASIC.
Line 51:Line 65:
Kemeny and Kurtz point to part of the rationale for this. When they were developing BASIC, they may have been looking at a just-released ASR-33 Teletype -- this light-duty office model was used with the Dartmouth Time-sharing System and many other minicomputers. But even though interactive (as opposed to batch) processing was a novelty, teletypewriters has been used as interfaces to computers long before this. Various sorts of TTYs, teleprinters, or "printing telegraphs" were used commercially as a means of textual communication beginning in the 1910. These systems were used to transmit dollar amounts much more often than they were used for sending mathematical equations. They were based on pre-ASCII characters codes that came from telegraphy, the two International Telegraph Codes. These were the 1870 Baudot Code and the 1901 revision of this for a typewriter keyboard, Murray Code. Murray Code is a 5-bit code that includes two characters that allow "shifting" into alternate sets. A shifted "D" represents "$" in Murray Code.
Kemeny and Kurtz point to part of the rationale for this. When they were developing BASIC, they may have been looking at a just-released ASR-33 Teletype -- this light-duty office model was used with the Dartmouth Time-sharing System and many other minicomputers. But even though interactive (as opposed to batch) processing was a novelty, teletypewriters has been used as interfaces to computers long before this. Various sorts of TTYs, teleprinters, or "printing telegraphs" were used commercially as a means of textual communication beginning in the 1910. These systems were used to transmit dollar amounts much more often than they were used for sending mathematical equations. They were based on pre-ASCII characters codes that came from telegraphy, the two International Telegraph Codes. These were the 1870 Baudot Code and the 1901 revision of this for a typewriter keyboard, Murray Code. Murray Code is a 5-bit code that includes two characters that allow "shifting" into alternate sets. A shifted "D" represents "$" in Murray Code.
−
Of course, the origin of the Teletype in the United States is another important reason that the dollar sign was on Typetypes and was later used in computing and in BASIC. The original, North American Commodore 64 keyboard also sported a pound sterling sign (&pound;), absent from other U.S. computers of the time. The seemed to be a clear indicator of Commodore's plans to sell the computer in the United Kingdom, although it had a precedent in Murray Code, which also features a pound sterling sign.
+
The origin of the Teletype in the United States offers another reason that the dollar sign was on Typetypes and was later used in computing and in BASIC. The original, North American Commodore 64 keyboard also sported a pound sterling sign (&pound;), absent from other U.S. computers of the time. It seemed to be a clear indicator of Commodore's plans to sell the computer in the United Kingdom, although it had a precedent in Murray Code, which also features a pound sterling sign.
The dollar sign is still used in some of today's workhorse programming languages, such as Perl and PHP. In both of these, it is used to indicate a variable by being placed at the beginning, rather than the end, of the variable name. In Perl it specifically indicates a ''scalar'' variable, since $ looks like S for scalar.
The dollar sign is still used in some of today's workhorse programming languages, such as Perl and PHP. In both of these, it is used to indicate a variable by being placed at the beginning, rather than the end, of the variable name. In Perl it specifically indicates a ''scalar'' variable, since $ looks like S for scalar.
Line 57:Line 71:
== Altair BASIC and Micro-Soft ==
== Altair BASIC and Micro-Soft ==
−
The computing revolution that followed time-sharing would change industry and reshape everyday interactions with computing. It was the beginning of the home computer or minicomputer era. The face that launched a thousand ships was a panel of switches and LEDs on the cover of the January 1975 ''Popular Electronics.'' The image was of the Altair 8800. This $395 machine ($495 assembled) was described consistently on the cover and throughout the magazine as a "minicomputer," rather than a "microcomputer." The article about this device also describes the many virtues of a useful computer for individuals and the headline of the editorial on page 4 clearly proclaims "THE HOME COMPUTER IS HERE!" ''Popular Electronics'' was hardly a novelty by the time this issue came out; the magazine was founded in 1954 by Ziff-Davis Publications and was a well-known, widely-distributed magazine by 1975. The year did mark an inflection point for home computing and for the magazine, which came to focus increasingly on computing. In November 1982, the magazine would be renamed ''Computers & Electronics.''
+
The computing revolution that followed time-sharing would change industry and reshape everyday interactions with computing. It was the beginning of the home computer or minicomputer era. The face that launched a thousand ships was a panel of switches and LEDs on the cover of the January 1975 ''Popular Electronics.'' -- the visage of the Altair 8800. This $395 machine ($495 assembled) was described consistently on the cover and throughout the magazine as a "minicomputer," rather than a "microcomputer." The article about this device also describes the many virtues of a useful computer for individuals and the headline of the editorial on page 4 proclaims "THE HOME COMPUTER IS HERE!" ''Popular Electronics'' was hardly a novelty publication by the time this issue came out; the magazine was founded in 1954 by Ziff-Davis Publications and was a well-known, widely-distributed magazine by 1975. The year did mark an inflection point for home computing and for the magazine, which came to focus increasingly on computing. In November 1982, the magazine would be renamed ''Computers & Electronics.''
The article describing the Altair 8800 claims that the computer can be used as a "Sophisticated intrusion alarm system," an "Automatic IC tester," an "Autopilot for planes, boats, etc.," a "Time-share computer system," a "Brain for a robot," and a "Printed matter-to-Braille converter for the blind," among other things, noting that "many of these applications can be performed simultaneously." (p. 38) As it happened, even the applications that were within the capabilities of the device were rather difficult to realize since the system, as delivered or assembled, could only be programmed in machine language. Unless one happened to have a Teletype or other terminal lying around, the programming had to be done using the toggle switches on the front panel. From the outset, it was clear to many that the Altair 8800 could really use was a programming language that facilitated experimentation. The ''Popular Mechanics'' article actually mentions four programming languages by way of explaining the hardware/software distinction (p. 34); one of these is BASIC, which was the language of most interest to early Altair 8800 users.
The article describing the Altair 8800 claims that the computer can be used as a "Sophisticated intrusion alarm system," an "Automatic IC tester," an "Autopilot for planes, boats, etc.," a "Time-share computer system," a "Brain for a robot," and a "Printed matter-to-Braille converter for the blind," among other things, noting that "many of these applications can be performed simultaneously." (p. 38) As it happened, even the applications that were within the capabilities of the device were rather difficult to realize since the system, as delivered or assembled, could only be programmed in machine language. Unless one happened to have a Teletype or other terminal lying around, the programming had to be done using the toggle switches on the front panel. From the outset, it was clear to many that the Altair 8800 could really use was a programming language that facilitated experimentation. The ''Popular Mechanics'' article actually mentions four programming languages by way of explaining the hardware/software distinction (p. 34); one of these is BASIC, which was the language of most interest to early Altair 8800 users.
−
The two major successful efforts to develop a BASIC interpreter for the Altair are important and intriguing. While this tale of two BASICs doesn't clearly show the best of BASIC and the worst of BASIC, they do show two extremes in software development: one commercial, closely coordinated with hardware manufacturers, and highly tied to licensing and cost structures; the other community-based, non-profit, and "copyleft." The BASICs that led in these directions were Microsoft's Altair BASIC, the official BASIC for the platform, licensed to the manufacturer of the system, MITS; and Tiny BASIC, which originated at the People's Computer Company or PCC. The Commodore 64's BASIC is directly descended from Microsoft's Altair BASIC -- it is, although this is not visible on the startup screen, a Microsoft product. At the same time, the 10 PRINT program participated in a context of BASIC sharing and exploration that was strongly influenced by the People's Computer Company.
+
The two major successful efforts to develop a BASIC interpreter for the Altair are important and intriguing. While this tale of two BASICs doesn't clearly show the best of BASIC and the worst of BASIC, they do show two extremes in software development: one commercial, closely coordinated with hardware manufacturers, and highly tied to licensing and cost structures; the other community-based, non-profit, and "copyleft." The BASICs that led in these directions were Microsoft's Altair BASIC, the official BASIC for the platform, which was licensed to the manufacturer of the system, MITS; and Tiny BASIC, which originated at the People's Computer Company or PCC. The Commodore 64's BASIC is directly descended from Microsoft's Altair BASIC -- it is, although this is not visible on the startup screen, a Microsoft product. At the same time, the 10 PRINT program participated in a context of BASIC sharing and exploration that was strongly influenced by the People's Computer Company.
The story of Microsoft BASIC, and of Microsoft, begins with Paul Allen catching sight of the now-famous ''Popular Electronics,'' reading about the Altair 8800 in it, and showing the article to his friend and business partner Bill Gates. The two had already earned some limited success when Gates was still in high school. Their first venture was called Traf-O-Data and produced hardware and software to count cars. They programmed the Intel 8008 using a simulator running on a Washington State University mainframe.
The story of Microsoft BASIC, and of Microsoft, begins with Paul Allen catching sight of the now-famous ''Popular Electronics,'' reading about the Altair 8800 in it, and showing the article to his friend and business partner Bill Gates. The two had already earned some limited success when Gates was still in high school. Their first venture was called Traf-O-Data and produced hardware and software to count cars. They programmed the Intel 8008 using a simulator running on a Washington State University mainframe.
−
By 1975, Gates was at Harvard University and he and Allen were ready to envision a project with broader reach. They devised the idea of writing BASIC for the Altair and contacted Ed Roberts' company MITS to ask if they would be interested in a BASIC for their system. As they did in developing their Traf-O-Data system, they initially programmed on a university's computer system, using a simulator. What they were programming at this point was, of course, a modified and minimized version of the original 1964 BASIC. Given how often the success of personal computing software is attributed to entreprenurial and business advances and to Microsoft in particular, it's remarkable that Microsoft's first product was developed using Harvard's computer and was an implementation of Dartmouth's programming language.
+
By 1975, Gates was at Harvard University and he and Allen were ready to envision a project with broader reach. They devised the idea of writing BASIC for the Altair and contacted Ed Roberts' company MITS to ask if they would be interested in a BASIC for their system. As they had done when developing their Traf-O-Data system, they initially programmed on a university's computer system, using a simulator. What they were programming at this point was, of course, a modified and minimized version of the original 1964 BASIC. Given how often the success of personal computing software is attributed to entreprenurial and business advances and to Microsoft in particular, it's remarkable that Microsoft's first product was developed using Harvard's computer and was an implementation of Dartmouth's programming language.
−
Gates and Allen were successful in fitting their BASIC interpreter into an austere 4KB and leaving some room for a BASIC program. Allen flew to visit MITS in Albuquerque, taking the program on paper tape. The demo was a success and was licensed by MITS; Gates and Allen moved to New Mexico to create new versions of BASIC for the Altair and to maintain the original code.
+
Gates and Allen were successful in fitting their BASIC interpreter into an austere 4kb. Allen flew to visit MITS in Albuquerque, taking the program on paper tape. The demo was a success and was licensed by MITS; Gates and Allen moved to New Mexico to create new versions of BASIC for the Altair and to maintain the original code.
In the book ''Invisible Engines,'' three authors develop of a theory of how software platforms can be two-sided (or multi-sided) in the sense of two-sided markets. In a predominantly one-sided market, such as a swap meet where people arrive with comics to trade, there is only one class of participant, a person interested in exchanging goods with other people. A classic land-line telephone company is also in a one-sided market, since every customer is more or less the same sort of participant, one who wants to make and receive calls. On the other hand, a credit card company has two different classes of customer: merchants, who receive payments and need terminals, and cardholders, who have a line of credit and who make purchases.
In the book ''Invisible Engines,'' three authors develop of a theory of how software platforms can be two-sided (or multi-sided) in the sense of two-sided markets. In a predominantly one-sided market, such as a swap meet where people arrive with comics to trade, there is only one class of participant, a person interested in exchanging goods with other people. A classic land-line telephone company is also in a one-sided market, since every customer is more or less the same sort of participant, one who wants to make and receive calls. On the other hand, a credit card company has two different classes of customer: merchants, who receive payments and need terminals, and cardholders, who have a line of credit and who make purchases.
Line 73:Line 87:
When Atari released the Atari VCS (later called the Atari 2600) in 1977, before the advent of third-party games, it had a one-sided platform. Atari made the system and (initially) all the games and controllers. The only participants in the market, and users of the platform, were the players. By the early 1980s, when Activision, Imagic, and other third-party companies had come into the market, there was another class of participant -- one that was not paying royalties to Atari for the privilege of making games for their console.
When Atari released the Atari VCS (later called the Atari 2600) in 1977, before the advent of third-party games, it had a one-sided platform. Atari made the system and (initially) all the games and controllers. The only participants in the market, and users of the platform, were the players. By the early 1980s, when Activision, Imagic, and other third-party companies had come into the market, there was another class of participant -- one that was not paying royalties to Atari for the privilege of making games for their console.
−
Microsoft's Windows is one example of an (at least) two-sided platform. On one side, computers need an operating system and desktop environment to function. This leads hardware manufacturers such as Dell to purchase licenses to Windows and to include the software with their systems. On the other side, computers are only valuable if there are applications written for them. Microsoft writes some of the applications for Windows, but third-party developers write many. The abundance of software has a network effect that is positive for Microsoft: it encourages users to stay with Windows. And, since Windows is preinstalled on many computers, companies want to write applications for it.
+
Microsoft's Windows is one example of a platform with at least two sides. On one side, computers need an operating system and desktop environment to function. This leads hardware manufacturers such as Dell to purchase licenses to Windows and to include the software with their systems. On the other side, computers are only valuable if there are applications written for them. Microsoft writes some of the applications for Windows, but third-party developers write many. The abundance of software has a network effect that is positive for Microsoft: it encourages users to stay with Windows. And, since Windows is preinstalled on many computers, companies want to write applications for it.
−
Of course, Windows was not the first two-sided platform, nor even Microsoft's first. By retaining the rights to what IBM called PC-DOS, Microsoft had previously been able to license MS-DOS to other companies, much as they would later sell OEM copies of Windows to them. And before that, there are continuities with the company's first product line, Microsoft BASIC. BASIC was a programming language, not an operating system, but the presence of BASIC allowed for programs to be written on a computer and sometimes sold. There were two sides to BASIC: The computer companies, beginning with MITS, who wanted it on their machines and the computer hobbyists who wanted to write (and in many cases sell) BASIC programs. At Gates and Allen's company, the success of BASIC and the essential business plan used with that family of software products helped to develop the later success of MS-DOS and Windows.
+
Of course, Windows was not the first two-sided platform, nor even Microsoft's first. By retaining the rights to what IBM called PC-DOS, Microsoft had previously been able to license MS-DOS to other companies, much as they would later sell OEM copies of Windows to them. And before that, there are continuities with the company's first product line, Microsoft BASIC. BASIC was a programming language, not an operating system, but the presence of BASIC allowed programs to be written on a computer and sometimes sold. There were two sides to BASIC: The computer companies, beginning with MITS, who wanted it on their machines and the computer hobbyists who wanted to write (and in many cases sell) BASIC programs. At Gates and Allen's company, the success of BASIC and the essential business plan used with that family of software products helped to develop the later success of MS-DOS and Windows.
BASIC continued to develop and diverge as it came into the home. To allow programs to be written more compactly, Microsoft's Altair BASIC introduced the colon (:) as a separator of statements on the same line, so that one could write lines such as:
BASIC continued to develop and diverge as it came into the home. To allow programs to be written more compactly, Microsoft's Altair BASIC introduced the colon (:) as a separator of statements on the same line, so that one could write lines such as:
Line 89:Line 103:
The first interpreter written in response to this call was by Dick Whipple and John Arnold and was developed in December 1975. To disseminate it, Albrecht and Allison decided to start a new serial, initially photocopied and originally intended to just run for a few issues. This was ''Dr. Dobb's Journal of Tiny BASIC Calisthenics and Orthodontia,'' which printed the code for the interpreter in octal machine language, ready for hobbyists to toggle in or (hopefully) key in on their Teletypes. It would be an understatement to call this publication a success. By January of 1976 the journal title was made more general by removing the explicit mention of ''Tiny BASIC,'' an editor was hired, and ''Dr. Dobb's'' launched as a newsletter offering code and articles on computing topics. The journal still exists online. It ran as a print publication until 2009, and shortly before that had a circulation of 120,000. In 1985, ''Dr. Dobb's'' published Richard Stallman's "GNU Manifesto."
The first interpreter written in response to this call was by Dick Whipple and John Arnold and was developed in December 1975. To disseminate it, Albrecht and Allison decided to start a new serial, initially photocopied and originally intended to just run for a few issues. This was ''Dr. Dobb's Journal of Tiny BASIC Calisthenics and Orthodontia,'' which printed the code for the interpreter in octal machine language, ready for hobbyists to toggle in or (hopefully) key in on their Teletypes. It would be an understatement to call this publication a success. By January of 1976 the journal title was made more general by removing the explicit mention of ''Tiny BASIC,'' an editor was hired, and ''Dr. Dobb's'' launched as a newsletter offering code and articles on computing topics. The journal still exists online. It ran as a print publication until 2009, and shortly before that had a circulation of 120,000. In 1985, ''Dr. Dobb's'' published Richard Stallman's "GNU Manifesto."
−
The development of Tiny BASICs continued after this first version. The fourth Tiny BASIC was by Li-Chen Wang and was called Palo Alto Tiny BASIC. It, too, was published initially in ''Dr. Dobb's.'' The source listing for this BASIC interpreter began:
+
The development of Tiny BASICs continued after this first version. The fourth Tiny BASIC, written by Li-Chen Wang, was called Palo Alto Tiny BASIC. It, too, was published initially in ''Dr. Dobb's.'' The source listing for this BASIC interpreter began:
<pre>
<pre>
Line 108:Line 122:
== The Ethic vs. The Corporation ==
== The Ethic vs. The Corporation ==
−
In his very popular book ''Hackers: Heroes of the Computer Revolution,'' Steven Levy describes the early history of home computing and the development of BASICs for the Altair and its immediate successors as a confrontation between an ethic of openness and the sort of corporate powers that were "a foe of the Hacker Ethic." (p. 227)
+
In his book ''Hackers: Heroes of the Computer Revolution,'' Steven Levy describes the early history of home computing and the development of BASICs for the Altair and its immediate successors as a confrontation between an ethic of openness and the sort of corporate powers that were "a foe of the Hacker Ethic." (p. 227)
This portrayal has helped to set up what is often remembered as the first major clash between free software and the corporate force of Microsoft: the "Open Letter to Hobbyists." Bill Gates wrote this confrontational letter in February 1976, declaring: "As the majority of hobbyists must be aware, most of you steal your software." It ran in the ''Altair Users' Newsletter'' as well as the newsletter of the Homebrew Computer Club. The letter spurred hundreds of responses, public and personal, causing the major early controversey in home computing.
This portrayal has helped to set up what is often remembered as the first major clash between free software and the corporate force of Microsoft: the "Open Letter to Hobbyists." Bill Gates wrote this confrontational letter in February 1976, declaring: "As the majority of hobbyists must be aware, most of you steal your software." It ran in the ''Altair Users' Newsletter'' as well as the newsletter of the Homebrew Computer Club. The letter spurred hundreds of responses, public and personal, causing the major early controversey in home computing.
Line 114:Line 128:
There are a few complications to the most popular version of this clash, and to simplistic assignment of good and evil roles, just as there are complications in considering Altair BASIC as the absolute bad guy when compared to TinyBASIC.
There are a few complications to the most popular version of this clash, and to simplistic assignment of good and evil roles, just as there are complications in considering Altair BASIC as the absolute bad guy when compared to TinyBASIC.
−
For one thing, neither Microsoft, Gates, or Allen is the party fingered in Levy's book as the "foe." That moniker is attached to Ed Roberts, the head of MITS, who was running a business with dozens of employees, many of whom would be around furiously working at any given hour to fulfill computer hobbyist's orders (and their dreams of computer ownership). "Micro-Soft" (the spelling had not been regularized by the time of the first letter) was at the beginning of 1976 simply two partners, both recent college drop-outs, one a teenager and other only slightly older. The company had hired other people, such as BASIC contributor Monte Davidoff, to work on projects, but it would not gets its first official employee until April 1976.
+
For one thing, neither Microsoft, Gates, nor Allen is the party fingered in Levy's book as the "foe." That moniker is attached to Ed Roberts, the head of MITS, who was running a business with dozens of employees, many of whom would be around furiously working at any given hour to fulfill computer hobbyist's orders (and their dreams of computer ownership). At the beginning of 1976, "Micro-Soft" (the spelling had not been regularized by the time of the first letter) was simply two partners, both recent college drop-outs, one a teenager and other only slightly older. The company had hired other people, such as BASIC contributor Monte Davidoff, to work on projects, but it would not gets its first official employee until April 1976.
Copyright protection for computer programs, which Gates based his argument upon, was well-established by 1976. While sharing of programs certainly happened in users' groups and other contexts, today's concept of free software had not been articulated by that time. Richard Stallman started the GNU project in 1983 and published the GNU Manifesto and founded the Free Software Foundation in 1985, a decade after Altair BASIC. An argument has been made that, even though this discourse has been overlooked, some of the ideas important to the free software movement were first publicly stated in the columns of magazines and newsletters in response to Gates's letter. (Driscoll) But many hobbyists were not interested in free (as in freedom) software as it is conceptualized today; rather, they were interested in (as the editorial in the first issue of ''Dr. Dobbs'' explained) "free and very inexpensive" software.
Copyright protection for computer programs, which Gates based his argument upon, was well-established by 1976. While sharing of programs certainly happened in users' groups and other contexts, today's concept of free software had not been articulated by that time. Richard Stallman started the GNU project in 1983 and published the GNU Manifesto and founded the Free Software Foundation in 1985, a decade after Altair BASIC. An argument has been made that, even though this discourse has been overlooked, some of the ideas important to the free software movement were first publicly stated in the columns of magazines and newsletters in response to Gates's letter. (Driscoll) But many hobbyists were not interested in free (as in freedom) software as it is conceptualized today; rather, they were interested in (as the editorial in the first issue of ''Dr. Dobbs'' explained) "free and very inexpensive" software.
Line 168:Line 182:
On the other hand there are introductions to BASIC that make extensive use of BASIC as the language of choice: ''Programming for Poets. A Gentle Introduction Using BASIC'', written by Richard Conway and James Archer and published in 1979 by Winthrop Publishers of Cambridge, MA., which is a simplified textbook; and ''BASIC With Style. Programming Proverbs'' by Paul Nagin and Henry F. Ledgard (Hayden Book Co., 1978). Among these are also more typical textbooks.
On the other hand there are introductions to BASIC that make extensive use of BASIC as the language of choice: ''Programming for Poets. A Gentle Introduction Using BASIC'', written by Richard Conway and James Archer and published in 1979 by Winthrop Publishers of Cambridge, MA., which is a simplified textbook; and ''BASIC With Style. Programming Proverbs'' by Paul Nagin and Henry F. Ledgard (Hayden Book Co., 1978). Among these are also more typical textbooks.
−
While many early books about BASIC are about pursuing hobbies (and games in particular), it would be remiss not to mention the types of books that help people organize their lives and keep their small businesses afloat. Charles D. Sternberg’s ''BASIC Computer Programs for the Home'' (1980) is one such book, whose specific aim was to satisfy “the practical requirements of the home.” The author wishes to address the user's desire not to “rely upon the availability of tape or disk-storage devices or any other features that may not be easily come by" and encourages the “modification of these programs to utilize features of your particular machine should present few difficulties." The author offers many reassurances of the ease with which programs can be entered, run, used, and even changed. Besides providing home financial programs, for example, and such “kitchen helpmates” as programs to convert recipe quantities, to plan meals according to various diets, to inventory the freezer’s contents, etc., this book provides descriptions of the purpose and functions of each program as well as some details about data entry, outputs, and other commentary. In the introduction the author explains that he eschews “highly efficient routines” in favor of increased “clarity” and a “modularity” which lends itself to easier alteration.
+
While many early books about BASIC are about pursuing hobbies (and games in particular), it would be remiss not to mention the types of books that help people organize their lives and keep their small businesses afloat. Charles D. Sternberg’s ''BASIC Computer Programs for the Home'' (1980) is one such book, whose specific aim was to satisfy "the practical requirements of the home." The author wishes to address the user's desire not to "rely upon the availability of tape or disk-storage devices or any other features that may not be easily come by" and encourages the "modification of these programs to utilize features of your particular machine should present few difficulties." The author offers many reassurances of the ease with which programs can be entered, run, used, and even changed. Besides providing home financial programs, for example, and such "kitchen helpmates" as programs to convert recipe quantities, to plan meals according to various diets, to inventory the freezer’s contents, etc., this book provides descriptions of the purpose and functions of each program as well as some details about data entry, outputs, and other commentary. In the introduction the author explains that he eschews "highly efficient routines" in favor of increased "clarity" and a "modularity" which lends itself to easier alteration.
If 1977 and 1978 seem to be turning points in the explosion in the print transmission of BASIC, there are in the early 1980s more and more books about BASIC, in its many tweaked flavors, published explicitly with niche audiences in mind, as illustrated by Sterberg's book as well as Zuanich & Lipscomb's ''BASIC Fun with Graphics the Apple Way'' and ''BASIC Fun with Graphics the IBM/PC Way'' (both Avon Books, 1983) for children.
If 1977 and 1978 seem to be turning points in the explosion in the print transmission of BASIC, there are in the early 1980s more and more books about BASIC, in its many tweaked flavors, published explicitly with niche audiences in mind, as illustrated by Sterberg's book as well as Zuanich & Lipscomb's ''BASIC Fun with Graphics the Apple Way'' and ''BASIC Fun with Graphics the IBM/PC Way'' (both Avon Books, 1983) for children.
Line 174:Line 188:
== BASIC Code in Human Memory ==
== BASIC Code in Human Memory ==
−
It is hard enough these days to remember programs being transmitted on physical media such as floppy disks and cassette tapes. The notion that programs would routinely be published in print and typed by users is even more alien, but we do have material evidence that programs were transmitted in this way, and people are still invited to key in code snippets of different sorts from books on programming.
+
It is hard enough these days to remember programs being transmitted on physical media such as floppy disks and cassette tapes. The notion that programs would routinely be published in print and typed by users is even more alien, but programs were indeed transmitted in this way, and people are still invited to key in code snippets of different sorts from books on programming.
There is an even stranger way that programs, particularly short ones such as BASIC one-liners, got from computer to computer and from person to person: By being memorized. The claim here is not that the early 1980s presented a ''Fahrenheit 451'' situation in which the world's great computer programs were preserved by a dedicated few, but that it was common for people who knew a bit of programming to keep a one-liner, or even a handful of short programs, in mind so that they could be typed into a friend's computer. Very short programs that did visually interesting things were particularly worth memorizing. And since programmers typically had to memorize certain BASIC statements, such as <code>? CHR$(147)</code> (which clears the screen), it was not much of a leap to memorize two statements in that language, such as <code>10 PRINT CHR$(205.5+RND(1)); : GOTO 10</code>.
There is an even stranger way that programs, particularly short ones such as BASIC one-liners, got from computer to computer and from person to person: By being memorized. The claim here is not that the early 1980s presented a ''Fahrenheit 451'' situation in which the world's great computer programs were preserved by a dedicated few, but that it was common for people who knew a bit of programming to keep a one-liner, or even a handful of short programs, in mind so that they could be typed into a friend's computer. Very short programs that did visually interesting things were particularly worth memorizing. And since programmers typically had to memorize certain BASIC statements, such as <code>? CHR$(147)</code> (which clears the screen), it was not much of a leap to memorize two statements in that language, such as <code>10 PRINT CHR$(205.5+RND(1)); : GOTO 10</code>.

Revision as of 21:28, 10 July 2011

View this revision of BASIC.

Personal tools