Michael J. Halvorson

Code Nation


Скачать книгу

a limited number of specialists would be needed to program computers using simple input devices like switches, punched cards, and paper tape. Even during the so-called “Golden age” of corporate computing “golden age” of corporate computing in America—the mid- to late 1960s—it was still unclear how many programming technicians would be needed to support the rapid computerization of the nation’s business, military, and commercial operations. For a while, some experts thought that well-designed computer systems might eventually program themselves, requiring only a handful of attentive managers to keep an eye on the machines.

      By the late 1970s and early 1980s, however, the rapid emergence of Personal computers (PCs) PCs.Personal computers personal computers (PCs), and continuing shortages of computer professionals, shifted popular thinking on the issue. When consumers began to adopt low-priced PCs like the Apple II (1977), the IBM PC (1981), and the Commodore 64 (1982) by the millions, it seemed obvious that ground-breaking changes were afoot. The “PC Revolution” opened up new frontiers, employed tens of thousands of people, and (according to some enthusiasts) demanded new approaches to computer literacy. As Ted Nelson, a prolific inventor and computing advocate wrote, “You can and must understand computers NOW!” On learning to program computers, Nelson energetically compared programming to another American obsession—driving an automobile. “If you’ve never written a program, it’s like never having driven a car,” Nelson instructed. “You may get the general idea, but you may have little clear sense of the options, dangers, constraints, possibilities, difficulties, limitations, and complications.”1

       figure

      Figure 1.1ProgrammingAmerican school children experiment with computer programmingAmerican school children experiment with computer programming using teletype machines (1970s). (Courtesy of the Computer History Museum)

      Ted Nelson was not alone. By the late 1970s, scores of programming advocates recommended that people of all ages learn to code as a way of understanding what the world’s most intriguing devices were capable of. Computer programming—a process of formulating a problem for the computer to solve, writing instructions in a given computer language, loading instructions into the computer’s memory, running the program, and correcting errors—had emerged as a major late-night pastime and (for some) a promising profession. In response to the mandate of Nelson and others, a surge of interest in programming developed, and the number of people who could write at least elementary programs grew from several thousand in the early 1950s into millions by the early 1980s. (See Figure 1.1.) This sea change in computational literacy encouraged the widespread adoption of computers, boosted the global economy, and shaped the contours of the modern information age.

      This book is about the rise of computer programmers and the emerging social, technical, and commercial worldview that I call programming culture, which took a distinctive form during the early decades of microcomputers and personal computing, c. 1970–1995. It is a popular history of coding that explores the experiences of novice computer users, tinkerers, hackers, and power users, as well as the ideals and aspirations of computer scientists, educators, engineers, and entrepreneurs. A central part of this story is the Learn-to-program movement learn-to-program movement, which germinated in government and university labs during the 1950s, gained momentum through counterculture experiments in the 1960s and early 1970s, became a broad-based educational agenda in the late 1970s and early 1980s, and was transformed by commercialization practices in the 1990s and 2000s. The learn-to-program movement sought to make computers more understandable, imprint useful technical skills, establish shared values, build virtual communities, and offer economic opportunities for technology enthusiasts. The movement also supported user communities, schools, and emerging commercial industries, many of which benefited from the utility and connectivity provided by digital electronic computers.

      The learn-to-program movement had its ups and downs, but eventually set the stage for 21st century expressions of computational literacy, such as the Hour of Code Hour of Code, YouTube YouTube and Lynda courseware Lynda courseware, Certification programs certification programs, Coding boot camps coding boot camps, and University degrees in disciplines university degrees in disciplines such as Computer science computer science, Software engineering software engineering, Information technology information technology, Artificial intelligence (AI) artificial intelligence, and (most recently) Human–computer interaction human–computer interaction. As the title of this book suggests, the learn-to-program movement fostered a groundswell of popular support for computing culture in America, resulting in what I call a Code Nation—a globally-connected society that is saturated with computer technology and enchanted by software and its creation.

      The learn-to-program movement (or more broadly, the software-maker movement) has inspired both disciples and critics. It has evolved over time and its advocates have traversed numerous professional boundaries and cultural institutions. The movement is historically distinct but also follows the patterns and rhythms of earlier socio-technical transformations, including the introduction of Steam-powered technologies steam-powered technologies during the Industrial Revolution, the electrification of American businesses and homes, and the production of automobiles and “car culture” in the early 20th century.

      Borrowing terminology from information science and the history of technology, the learn-to-program movement is identifiable as part of the “diffusion” and “domestication” phases that take place when a successful new technology is spread or “propagated” across society.2 Scholars from the field of business and economic history also recognize this transition as a key period in which a new discovery or invention is widely adopted and made useful for the general public, resulting in new consumer behaviors and potential changes in the way that a market or the broader economy functions.3 To achieve wide-spread diffusion, the movement often benefits from sustaining ideologies that strengthen the allegiance of followers and justify the time, resources, and commitment that are necessary for the movement’s success.

      Beyond hopes for material gain, America’s expanding programming culture can also be viewed as a manifestation of the deep and abiding cultural tendency that many describe as “technological enthusiasm.”4 Technological enthusiasm Technological enthusiasm is an upbeat, optimistic appraisal of new technical systems that not only stoke the engines of capitalism, but provide access to the ideals embedded in what is known as the American Project American Project and the American Dream American Dream. The publishers of PC software systems readily participated in this vision, as each wave of entrepreneur–engineer strived to improve their software, best their rivals, and boost the productivity of corporations and the general public. By the 1980s, software creation had taken the form of a consensus ideology that united many Americans in a common, accessible dream of a better future through computing. As I will discuss in Chapter 2, this enthusiasm brought additional computing mythologies to the fore, and their collective use contributed to the positive view that American’s held about PCs and software in the years to come. Formula translation (FORTRAN)

      By Computer language the late 1960s, programming emerged from America’s research labs and government institutions to have a direct influence on universities, primary and secondary schools (K-12 in the U.S.), and the nation’s businesses. But what type of mental activity did programming entail? How should students take their first steps when learning to program a computer? In search of an analogy, some specialists suggested that learning to program was a bit like learning to read or speak in a Foreign language foreign language. Utilizing the comparison, some educators pressed for the inclusion of computer languages in their school’s curriculum. Rather than taking a year or two of a spoken language, such as Spanish or German, a few innovative programs offered courses in computer language instruction, including FORTRAN.Formula translation (FORTRAN) Formula translating systemFormula translation (FORTRAN) FORTRAN, Logo, BASIC, and Pascal Pascal.