Feeds:
Posts
Comments

Archive for the ‘Information Technology’ Category

See Part 1

This turned into a much larger research project than I anticipated. I am publishing this part around the 1-year anniversary of when I started on this whole series! I published the first part of it in late June 2011, and then put the rest “on the shelf” for a while, because it was crowding out other areas of study I wanted to get into.

To recap, the purpose of this series is to educate the reader on government-funded research that led to the computer technology we use today. I was inspired to write it because of gross misconceptions I was seeing on the part of some who thought the government has had nothing to do with our technological advancement, though I think technologists will be interested in this history as well. This history is not meant to be read as a definitive guide to all computer history. I purposely have focused it on a specific series of events. I may have made mistakes, and I welcome corrections. The first part of this series covers government-funded research in computing during the 1940s and 50s. In this article I continue coverage of this research during the late 1950s, and 1960s, and the innovations that research inspired.

Most of what I will talk about below is sourced from the book “The Dream Machine,” by M. Mitchell Waldrop. Some of it is sourced from a New York Times opinion blog article called, “Did My Brother Invent E-mail with Tom Van Vleck?” A great article, by the way, on the development of time-sharing systems; a major topic I cover here. There’s a video produced by DARPA at the end of this post that I use as a source, and I’ll just refer to as “the DARPA video.” Quite a bit of material is sourced from Wikipedia as well. Knowing Wikipedia’s reputation for getting facts wrong, I have tried as much as possible to look at other sources, to verify it. Occasionally I’ll relay some small anecdotes I’ve heard from people who were in the know about these subjects over the years.

Revving up interactive, networked computing

Wes Clark in 2002, from Wikipedia.org

Ken Olsen, an electrical engineer, Wes Clark, an electrical engineer, and Harlan Anderson, a physicist, all graduates of the Massachusetts Institute of Technology (MIT), and veterans of Project Whirlwind, formed the Advanced Computer Research Group at MIT in 1955. Since all of the interactive computers that had been made up to that point were committed to air defense work, due to the Cold War, they wanted to make their own interactive computer that would be like what they had experienced with Whirlwind. It would be a system they would control. The first computer they built was called the TX-0, completed in 1956. It was about the size of a room. It was one of the first computers to be built with transistors (invented at AT&T Bell Labs in 1947). It had an oscilloscope for a display, a speaker for making sound, and a light pen for manipulating and drawing things on the display. They started work on a larger, more ambitious computer system they called the TX-2 in 1956. It was completed in 1958, and took up an entire building. It would come to play an important role in computer history when an electrical engineer named Ivan Sutherland did his Sketchpad project on it in 1963 for his doctoral thesis (PDF). Sketchpad is considered to be the prototype for CAD (Computer-Aided Design) systems. It was also in my view the first proof-of-concept for the graphical user interface, particularly since one used gestures to manipulate objects on the screen with it.

Even though the idea behind building these computers was to build an interactive machine that these guys could control, away from the military, I’m not so sure they succeeded at that, at least for long. From what Alan Kay has said in his presentations on this history, Sutherland had to work on his Sketchpad project in the middle of the night, because the TX-2 was used for air defense during the day…

In the midst of the TX-2′s construction, Ken Olsen, his brother Stanley, and Harlan Anderson founded Digital Equipment Corporation (DEC) in 1957 out of frustration with the academic and business world. They had tried to tell their colleagues, and people in the computer industry, that interactive computing had a promising future, but they got nowhere. Hardly anybody believed them. And besides, the idea of interactive computing was considered immoral. Computers were expensive, and were for serious work, not for playing around. That was the thinking of the time. Olsen and the founders of DEC figured that to make interactive computing something people would pay attention to, they had to sell it.

A pivotal moment happened for J.C.R. Licklider, a man I introduced in Part 1, in 1957 that would have a major impact on the future of computing as we have come to know it. Wes Clark, seemingly by chance, walked into Licklider’s office, and invited him to try out the TX-2. It was an event that would change Licklider’s life. He had an epiphany from using it, that humans and computers could form an interactive system together–a system made up of the person using it, and the computer–that he called “symbiosis.” He had experienced interactive computing from working on the SAGE (Semi-Automated Ground Environment) project at MIT in the 1950s (covered in Part 1 of this series), but this is the moment when he really got what its significance was, what its societal impact would be.

The difference between the TX-2 and SAGE was that with SAGE you couldn’t create anything with it. Information was created for the person using it from signals that were sent to the system from radar stations and weapons systems. The person could only respond to the information they were given, and send out commands, which were then acted upon by other people or other systems. It was a communication/decision system. With the TX-2, the system could respond to the person using it, and allow them to build on those responses to create something more than where the person and the computer had started. This is elementary to many computer users now, but back then it was very new, and a revelation. It’s a foundational concept of interactive computing.

Licklider left his work in psychology, and MIT, to work at a consulting firm called Bolt Beranek and Newman (BBN) to pursue his new dream of realizing human-computer symbiosis with interactive computing. He wrote his seminal work, “Man-Computer Symbiosis,” in 1960, while working at BBN. DEC was an important part of helping Licklider understand his “symbiosis” concept. The first computer they produced was a commercialized version of the TX-0, called the PDP-1 (Programmed Data Processor). BBN bought the very first PDP-1 DEC produced, for Licklider to use in his research. With the right components, it was able to function as an interactive computer, and it was a lot less expensive than the mainframes that dominated the industry.

John McCarthy, from his profile page at Stanford University

Another person comes into the story at this point, a mathematician at MIT named John McCarthy, who had developed a new field of computing studies at MIT, which he called “Artificial Intelligence.” He had developed a theoretical computing language, or notation, that he called Lisp (for “List Processing language”), which he wanted to use as an environment in which he and others could explore ideas in this new area of study. He thought that ideas would need to be tried in an experimental setting, and that researchers would need to be allowed to quickly revise their ideas and try again. He needed an interactive computer.

A typical run-of-the-mill computer in the 1950s was not interactive at all. The Whirlwind and SAGE systems I talked about in Part 1 were the exceptions, not the rule. First off, there were very few computers around. They were designed to be used by an administrator, who would receive batches of punched cards from people, which contained program code on them. They would be fed through the computer one at a time in batches. The data that was to be processed was often also stored on punch cards, or magnetic tape. The government was heavily invested in systems like this. The IRS and the Census Bureau used this type of system to handle their considerable record keeping, and computation needs. Any business which owned a computer at the time had a system like this.

Each person who submitted a card batch would receive a printout of what their program did hours, or even days later. That was the only feedback they’d get. There were no keyboards, no mice, no input devices of any kind that an ordinary person could use, and no screens to look at. Typical computation was like a combine that’s used on the farm. Raw material (programs and data) would go in, and grain (processed data) would come out the other end. This was called batch processing. McCarthy said this would not do. Researchers couldn’t be expected to wait hours or days for results from a single run of a Lisp program.

McCarthy developed a concept called “time sharing” in 1957. It was a strategy of taking a computer that was designed for batch processing and adapting it to have several ordinary people use it. The system would use the pauses that occurred within itself, where it was just waiting for something to happen, as opportunities to grant computer time to any one of the people using it, in a sort of round-robin fashion. This switching would typically happen fast enough so that everyone using it would notice little pauses here and there, but otherwise operation would appear continuous to them. McCarthy figured that this way, computer time could be used more efficiently, and he and his colleagues could do the kind of work they wanted to do, killing two birds with one stone.

The way time sharing worked was several people would sign on to a single computer using teletype terminals, and use their account on the computer to create files on a shared system. Each person would issue commands to the system through their terminal to tell it what they wanted it to do. They could run their own programs on the system as if the machine was their own, shall we say, “personal computer” (though the term didn’t exist at the time), since they wouldn’t need to think about what anyone else on the system was doing. The equivalent today would be like working on a Unix or Linux system from what’s called a “dumb terminal,” with several people logged in to it at the same time. The way in which our computers now can have several people using them at once, and doing a bunch of things seemingly simultaneously, has its roots in this time sharing strategy.

McCarthy, and a team he had assembled, created a jury-rigged prototype of a time-sharing system out of MIT’s IBM 704 mainframe. They showed that it could work, in a demonstration to some top brass at MIT in 1961. (source: “The MAC System, A Progress Report,” by Robert Fano (PDF)) This was the first public demonstration of a working Lisp system as well.

Fernando Corbató (also known as “Corby”), who was then MIT’s deputy director of their Computation Center, undertook a project to build on McCarthy’s work. This project was funded initially by the Navy. He managed the retrofitting of the university’s then-new IBM 709 computer to create the Compatible Time-Sharing System (CTSS) in 1961. It was named “Compatible” for its compatibility with the mainframe’s existing operating system. This would come to be a very influential system in the years to come.

McCarthy set out a vision at the MIT centennial lecture series, also in 1961, that a computing utility industry would develop in the future that would allow public access to computer resources, and it would be based on his time sharing idea.

IBM was asked if it had any interest in time sharing for the masses, because it was the one company that had the ability to build computers powerful enough at the time to do it. They were unwilling to invest in it, calling the idea impractical. It wouldn’t have to wait long, however. Other researchers started work on their own time-sharing projects at places such as Carnegie Tech (which would become Carnegie-Mellon University), Dartmouth, and RAND Corp.

The “Big Mo” in time sharing, and in many other “big bang” concepts, came when ARPA invited Licklider to lead their efforts in computer research.

ARPA

Republican President Dwight Eisenhower created ARPA, the Advanced Research Projects Agency, under the Department of Defense, in 1958, in response to the Soviet Sputnik launch. I covered some background on the significance of Sputnik in Part 1. The idea was that the Soviets had surprised us technologically, and it was ARPA’s job to make sure we were not surprised again. A lot of ARPA’s initial work was on research for spacecraft, but this was moved to the National Aeronautics and Space Administration (NASA) and the National Reconnaissance Office (NRO) (source: “The DARPA video”). NASA was created the same year as ARPA. ARPA was left with the projects nobody else wanted, and it was in search of a mission.

Jack Ruina was ARPA’s third director, appointed in 1961. He set the pace for the future of the agency, encouraging the people under him to seek out innovative, cutting edge scientific research projects that needed funding, whether they applied to military goals or not, whether they were in government labs, university labs, or in private industry. He knew that the people in ARPA needed to understand the science and the technology thoroughly. He wanted them to seek out people with ideas that were cutting edge, to fund them generously, and to take risks with the funding. He made it clear that researchers that received ARPA funding would need to have the freedom to pursue their own goals, without micromanagement. The overall goal was to, “assault the technological frontiers.”

By my reading of the history, ARPA was forced into researching computing by necessity, in 1961. The way Waldrop characterized it, they “backed into it.” Old, but expensive leftover hardware from the SAGE project needed to be used. It was considered too valuable to junk it. There was also the looming problem of command and control of military operations in the nuclear age, where military decisions and actions needed to happen quickly, and be based on reliable information. It had already been established via. projects like SAGE that computers were the best way anyone could think of to accomplish these goals. So ARPA would take on the task of computer research.

J.C.R. “Lick” Licklider, from Wikipedia.org

J.C.R. Licklider (he preferred to be called “Lick”) was recruited by Ruina to be the director of research in developing command and control systems for the military. Ruina had known of Licklider through his work on SAGE, his career as a researcher in psychology, and the consulting he did on various military projects. It helped a lot that Lick was such an affable fellow. He made a lot of friends in the military ranks. They also needed a director of behavioral science research, which he was uniquely qualified to handle. Licklider was hesitant to accept this position, because he enjoyed his work at BBN, but he became convinced that he could pursue his vision for human-computer symbiosis more comprehensively at ARPA, since they had no problem with him having a dual mission of developing technology for military and civilian use, and they could give him much larger budgets. He started work at ARPA in 1962, in an office of the Pentagon that would come to be named the Information Processing Techniques Office (IPTO).

True to the military side of his mission, Lick created plans to computerize the military’s data gathering, and information storage infrastructure, including digital communication plans for information sharing. He would gradually come to realize the urgency of helping the military modernize. He became aware of some harrowing “near misses” our military experienced, where our nuclear forces were put on high alert, and were nearly ready to launch, all on a misleading signal.

I’ll be focusing on the civilian side of Lick’s research, though all of the research that was funded through the IPTO was always intended to have military applications.

Lick had met John McCarthy while at BBN, and was excited about his idea of time sharing. He wanted to use his position at ARPA to create a movement around this idea, and other innovative computer research. He began by working his existing contacts. He gathered together a prestigious group of computing academics: Marvin Minsky, John McCarthy, Alan Perlis, Ben Gurley, and Fernando Corbató to convince the engineers at System Development Corporation (SDC) to start developing time-sharing technology. It was a hard sell at first, but they came around once these heavy hitters showed how the technology would really work.

He solicited project proposals from all quarters: in government, at universities, and at private companies. He particularly targeted individuals who he thought had the right stuff to do innovative computer research, and sent out funding for various research projects that he thought had merit.

In 1962 he sent $300,000 (more than $2 million in today’s money) to Allen Newell, Herbert Simon, and Alan Perlis at Carnegie Tech to fund whatever they wanted to do. He knew them, and the kinds of minds and motivations they had. In the years that followed, ARPA would send $1.3 million (more than $9 million in today’s money) per year to this team at Carnegie Tech, because they were recognized for having an expansive view of computer science: “The study of all phenomena surrounding computers,” including the impact of computing on human life in general. Lick had confidence that whatever knowledge, program, or technology they came up with would be great.

He was very interested in what RAND Corp. was doing. In 1962 they had developed the first computer with a “pen” (stylus/pad) interface, which was linked to a visual display. This jived very much with what Lick envisioned as “symbiosis.”

John McCarthy left MIT for Stanford in 1962, where he created their Artificial Intelligence Laboratory. Lick funded McCarthy’s work at Stanford for the rest of his time at the IPTO.

Lick began funding an obscure researcher, named Doug Engelbart, working at the Stanford Research Institute (SRI), in 1962. Engelbart had an, at the time, radical idea to create an interactive computer system with graphical video displays that groups could use to deal with complex problems together.

In 1963 Lick funded both Project MAC, a time sharing project at MIT, overseen by Bob Fano, and Project Genie, a time sharing project at Berkeley, overseen by Harry Husky. Fano started developing a curriculum for computer science in the Electrical Engineering Department at MIT at this time as well. Fano, by his own admission, had almost no technical knowledge about computers!

Under Project MAC, ARPA funded a project to create a new time-sharing system called Multics in 1963. This sub-project was overseen by Fernando Corbató.

In 1963, Lick envisioned a network of time-sharing systems, which he dubbed the “Intergalactic Network” to his working groups. The idea was to link computers together in a network, and he wanted people to think big about this; not just a few hundred computers together, but billions!

It was all coming together. Lick realized that he could not juggle all of these projects and continue to work at BBN, so he resigned from BBN in 1963.

Project MAC

Robert Fano came up with the name “Project MAC.” It stood for “Multi-Access Computer,” though people came up with other meanings for it as well, like ”Machine-Aided Cognition.” Some artificial intelligence work at MIT, led by Marvin Minsky, was funded through it.

The working group used the existing CTSS project as its starting point, and the goal was to improve on it. CTSS was moved to an IBM 7094 mainframe in 1964, and the first information utility was made available to people at MIT around the clock. The 7094 ran at about the speed of an IBM PC (about 5 Mhz). So if more than a dozen people were logged into it at the same time, it ran very slowly. Eventually they added the ability for members of the MIT Computation Center staff to connect to the time-sharing system using remote teletype terminals from their homes.

In the following video, Bob Fano lays out his vision for the research that was taking place with computers at MIT, and gives a demonstration of their time-sharing system. It’s thought that this film was made in 1964.

CTSS became a knowledge repository, as people were able to share information and programs with each other on it. If enough people found some programs useful, they were added to the standard library of programs in the system, so that everyone could use them. This method of growing the features of the system by adding software to it is seen in all modern systems, particularly Unix and Linux. It created the first software ecosystem, where software could use other software. This is also seen in the more commonly used commercial systems, like on Windows PCs, and Apple Macs. As a couple examples, Tom Van Vleck created a MAIL command for the system that allowed people to send text messages to each other. It was probably the first implementation of e-mail. Allan Scher created ARCHIVE, which allowed people to take a bunch of files and compress and package them into one file.

This was not an attempt to create the internet, but they ended up creating something like it on a smaller scale, under a different configuration. Machines were not networked together, but people were, through the workings of a single computer system.

Things that we take for granted today were discovered as the project went along. Some examples are they used a hierarchical file system that enabled people to organize their files into directories (think folders) and subdirectories (subfolders). The system didn’t have a system clock at first. They attached an electronic clock to the computer’s printer port, and software was added to take advantage of it. Now the system could time-stamp files, and processes could be run at specific times.

It was noticed that people came to depend on the system. They became agitated and irate when it went down. This was something that the researchers were looking for. They meant for it to become a computing utility, and people were coming to depend on it as if it was one. They took this as a positive sign that they were on the right track. It also motivated them to make the system as reliable as they could make it.

The CTSS team developed fault-tolerant features for it, like secure memory, so that programs that crashed didn’t interfere with other running programs, or the rest of the system. They developed an automated backup system, so that when a disk failed (all information was stored on disk), people’s work wasn’t lost. A backup to tape of newly created files ran every half-hour. It was also the first system to enforce passwords for access. This created the first instance of user revolt. Already the idea of “information wants to be free” had developed among people at MIT, and they resented the idea that access to the system could be restricted. Hackers committed various acts of “civil disobedience” (pranks in the system) to protest this, but the Project MAC staff insisted password protection was going to stay!

Time sharing comes of age

The vision of Project MAC was to promote “utility computing,” where private companies would rent computer time to businesses, and ordinary people, like a utility company charges for gas and electricity, so that they could experience interactive computing, and make some use of it. This business model is used today in systems that make applications available on the web on a subscription basis, except now the concept is not so much renting computer time, as renting application time, and data storage space–the whole idea of SaaS (Software as a Service).

Unlike today, the sense of the time was that computers needed to be large, and computing power needed to be centralized, because it was so expensive. It was thought that this was the only way to get this power out to as many people as possible.

In 1963 the leaders of Project MAC wanted to create a model system. Most of the time-sharing systems that had been successfully created up to this point began as mainframes that were only meant for batch processing, and had been modified to do time sharing. They wanted a system that was designed for time sharing from the ground up. It was also decided that an operating system was needed which would be designed for a large scale time-sharing service. CTSS was good as an internal, experimental system, but it was still unstable, because it was an adaptation of a system that was not designed for time sharing. No time was taken to make it a clean design. It had lots of things added onto it as the team learned more about what features it needed. It was a prototype. It wasn’t good enough for the vision Project MAC had in mind of utility computing for the masses.

Project MAC partnered with General Electric to develop the hardware, and AT&T Bell Labs to develop the operating system. Fernando Corbató managed the development team at MIT for the new system they called “Multics,” for Multiplexed Information and Computing Service. The plan was to have it run on a multi-processor machine that had built-in redundancy, so that if one processor burned out, it would be able to continue with the good processors it had left, without missing a beat. Like CTSS, it would have sophisticated memory management so that processes and user data wouldn’t clobber each other while people were using it at the same time. It would also have a hierarchical file system. System security was a top priority. It was noted when I took computer science in college that Multics was the most secure operating system that had ever been created. It may still carry that distinction.

Licklider left ARPA in 1964 to work at IBM. According to Waldrop, it seemed he had a mission to “bring the gospel” of interactive computing to the “high temple of batch processing.” Ivan Sutherland replaced Lick as IPTO director.

The research at Project MAC was having payoffs out in the marketplace. The publicity from the project, and the deal with GE for Multics, inspired companies to develop their own commercial time-sharing systems. The first was from DEC, the PDP-6, which came out in 1965. General Electric and IBM came out with time-sharing service offerings, which usually was a single programming language environment as their sole service. It was rather like the experience of using the early microcomputers in the late 1970s, come to think of it. When you turned them on, up would come the Basic programming language, and all you’d have was a prompt of some sort where you could type commands to make something happen, or write a program for the computer to run.

By 1968 there were 20 separate firms offering time-sharing services. GE’s service was operating in 20 cities. The University Computing Company was operating a time-sharing service in 30 states, and a dozen countries.

In 1968, Bill Gates, who was in the 8th grade, got his first chance to use the Basic programming language on a GE Mark II time-sharing system, using a teletype, through his school in Lakeside, Washington. Basic was invented at Dartmouth as its own time-sharing system. The main reason I mention this is Basic would play a major role in the formation of Microsoft in the 1970s. The first product Gates and Paul Allen created that led to the founding of the company was a version of Basic for the Altair computer. Microsoft Basic went on to become the company’s first big-selling software product, before IBM came calling.

The first release of Multics came out in 1969. AT&T left Project MAC the same year. GE sold its computer division to Honeywell in 1970. Along with GE’s hardware came the Multics software. Other time-sharing systems outsold Multics, and it never caught up as a commercial product. This was mainly because it was 3 years late. Multics had been beset with delays. The complexity of it overwhelmed the software development team at MIT. ARPA considered ending the project. An evaluation team was created to look at its viability. They ultimately decided it should continue, because of the new technologies that were being developed out of the project, and the knowledge that was being generated as a result of working on it. ARPA continued funding development on Multics into the early 1970s.

Honeywell didn’t want to sell Multics to customers, and only did so after considerable prompting by Larry Roberts, who was IPTO director at this time. A major barrier for it was that it was basically off-loaded onto Honeywell. Most of the people in the company, particularly its sales staff, didn’t know what it was! This was a chronic problem for the life of the product. Honeywell sold 77 Multics systems, in all, to customers over the next 20+ years. They stopped selling it in the early 1990s. Wikipedia claims the last Multics system was retired at the Canadian Department of National Defence in the year 2000.

Despite Multics being a dud in the commercial market, much was learned from it. It was the inspiration for Unix (which was originally named “Unics”, a play on “Multics”). Ken Thompson and Dennis Ritchie, the creators of Unix, had worked on Multics at AT&T Bell Labs. They missed the kind of interaction they were able to have with the Multics system, though they disliked the operating system’s bigness, and bureaucratic restrictions, which were key to its security. They brought into Unix what they thought were the best ideas from Multics and Project Genie (which I describe below).

I once had a conversation with a computer science professor while I was in college regarding the design of Unix. From what he described, and what I know of the design of early time-sharing systems, my sense is the early design of Unix was not that different from a time-sharing system. The main difference was that it shared computer time between multiple programs running at the same time, as well as between people using the system. This scheme of operation was called “multitasking.”

Unix would spread into the academic community in the years that followed. The main reason being that under an antitrust agreement with the government, AT&T was not allowed to get into other businesses besides telecommunications at the time. So they retained ownership of the rights to Unix, and the trademark to its name, but gave away copies of it to customers under a free license. They made the binary distribution, as well as all source code available to those who wanted it. This made it very attractive to universities. They liked getting the source code, because it was something that computer science students could investigate and use. It contributed to the academic environment.

Unix continues to be used today in IT environments, and in Apple products. It inspired the development of Linux, beginning in the early 1990s.

The Multics project taught the Project MAC team members valuable lessons in software engineering. These people went on to work at Digital Equipment Corp. (which was bought by Compaq in 1998, which was bought by Hewlett-Packard in 2002), Data General (which was bought by EMC in 1999), Prime (which was bought by Parametric Technology Corp. in 1998), and Apollo (which was bought by HP in 1989). (source: Wikipedia) A few of these companies created their own “lite” versions of Multics for commercial sale, under other product names.

When microcomputers/personal computers started being sold commercially in the late 1970s, the idea of the information utility was pared back as a widespread system strategy. It’s tempting to think that it died out, because computers got smaller and faster, and the idea of a central computing utility became old-hat. That didn’t really happen, though. It continued on in services like CompuServe, BIX, GEnie (offered by GE, no relation to Project Genie), and America Online of the late ’80s, and into the ’90s. The idea of large, centralized computing services has recently had a resurgence in such areas as software-as-a-service, and cloud computing. Individually owned computers, in all their forms, are mainly seen now as portals, a way to consume a service offered by much larger, centralized computer systems.

Project Genie

The information on this project comes from the Wikipedia page on it, and its list of references. The section on Evans and Sutherland is sourced from Waldrop’s book and Wikipedia. I do not have much of the details of this project, nor of what Dave Evans and Ivan Sutherland did at the University of Utah. This is best read as a couple anecdotes about the kind of positive influence that ARPA had on institutions and students of computer science at the time.

Project Genie began in 1963 at Berkeley. Harry Husky, who had been in charge of it, left the project in 1964, leaving Ed Feigenbaum, an associate professor with a background in electrical engineering, and Dave Evans, a junior professor with a background in physics and electrical engineering, to manage it. Both were dubious about their chances of accomplishing much of anything. I think it’s safe to say that what actually happened exceeded their expectations.

Feigenbaum wouldn’t stay with the project for long, though they had their system almost operational by the time he left. He joined John McCarthy’s Artificial Intelligence Laboratory at Stanford in 1964.

A team of graduate students who joined this project, which included Peter DeutschButler LampsonChuck Thacker, and Ken Thompson, modified a Scientific Data Systems 930 minicomputer to do time sharing as their post-graduate project. This project was perhaps unique in its goal, since other time sharing efforts had been done on mainframes, since only they had enough computing power to share. Licklider wanted to fund time sharing projects of various scales, presumably to see how each would work out.

Over the next 3 years the team wrote their own operating system for the 930, which came to be called the Berkeley Time Sharing System. The main technological advancements I can pick out of it were paged virtual memory, and a particular design for multitasking (the idea of sharing computer time between programs loaded into memory, as well as people)., and state-restoring crash recovery.

Paged virtual memory is a scheme where the system can “swap” information in memory out to hard disk in standard-sized segments, and bring it back in again, at the system’s discretion. This is done to allow the system to operate on a collection of programs and data that, put all together, are greater in size than the computer’s memory. This scheme is used on all modern personal computer systems, and on Unix and Linux.

State-restoring crash recovery is something we have yet to see on modern computer systems. It allows a system to restore itself to an operational state after a crash has occurred, picking up where it left off, without rebooting. It should be noted that this project did not invent this idea. The earliest version of it I’ve heard about is in Bob Barton’s Burroughs B5000 computer, which was created in 1961.

Not a lot has been said about this project in the literature I’ve researched, and I think it’s because the innovations that were developed were technical. No social study took place during the development of this system that I can tell, as took place with Project MAC at MIT, where many things about necessary time-sharing features were learned. Nevertheless, the technical talent that was developed during this project is legendary in the field of computing.

Scientific Data Systems eventually chose to market the Berkeley Time Sharing System as the SDS 940 computer, with some encouragement by Bob Taylor, who was IPTO director at the time. This system would go on to be used by Doug Engelbart for his NLS system, in the late 1960s (which I describe below).

Edit 8/5/2012: I added in “The trail to Xerox” as it provides background for the discussion of Xerox PARC in Part 3.

The trail to Xerox

Scientific Data Systems wasn’t enthusiastic about the 940, though. They considered it a one-off machine, and they had no intention of developing it further. Butler Lampson and others in Project Genie got impatient with SDS. They left Berkeley, and founded their own company, the Berkeley Computer Corporation (BCC), in 1969. Bob Taylor left ARPA the same year.

SDS was bought by Xerox in 1969, and its name was changed to Xerox Data Systems (XDS).

BCC didn’t last long. It was going broke in 1970. Taylor had founded Xerox Palo Alto Research Center (PARC) that year, and recruited a bunch of people from BCC to create their Computer Science Laboratory.

XDS lost so much money that Xerox shut it down in 1975.

Evans and Sutherland, and the University of Utah

Dave Evans left Berkeley to chair a brand new computer science department at the University of Utah, his alma mater, in 1966. The department was one of ARPA/IPTO’s projects, and was fully funded by the IPTO.

Back then, the term “computer science” was new, and was considered an aspirational title for what the department was doing. It was expected that computation would become a science someday, but it was clearly acknowledged in Evans’s department that it was not a science then. I can safely say that it still isn’t, anywhere.

From left to right, Ivan Sutherland and Dave Evans at Evans & Sutherland, from es.com

Ivan Sutherland, who had left ARPA to teach at Harvard, joined the computer science department at the University of Utah in 1968, serving as a professor. He came on the condition that Evans would join him in starting a new company. The new company was founded that year, called Evans & Sutherland. It was, and still is, a maker of computer graphics hardware.

Evans and Sutherland made a deliberate decision to stick to the philosophy of “doing one thing well,” and so the department specialized in computer graphics.

It should be noted that at the time their computer science department only took post-graduate students. There was no undergraduate computer science program. Dave Evans and Ivan Sutherland would have a who’s who of computing pass through their department. They had students participate in IPTO projects, and the IPTO fully funded many of their tuitions. Some of the most notable of their students (not all were shared between Evans and Sutherland) were Alan KayNolan BushnellJohn WarnockEdwin CatmullJim Clark, and Alan Ashton. (sources: Wikipedia, and utahstories.com)

I’ll get more into the work of Alan Kay, Chuck Thacker, and Butler Lampson in Part 3.

Contributions of the students

Peter Deutsch, who had been with Project Genie at Berkeley, went on to work at Xerox PARC, and then Sun Microsystems. He is best known for his work in programming languages. In 1994 he became a Fellow at the Association of Computing Machinery (ACM). He developed Ghostscript, an open source PostScript and PDF viewer. More recently he’s taken up music composition. (Sources: Wikipedia, and Coders at Work)

Nolan Bushnell and Ted Dabney founded the video game company Atari in 1972. They produced two arcade video games that were big hits, Pong and Breakout. Steve Jobs and Steve Wozniak briefly worked for Atari during this period, helping to develop Breakout. When Wozniak developed his first computer, built with parts that some Atari employees had “liberated” from Atari, which would become the Apple I, they showed it to Bushnell to see if he was interested in marketing it. He turned them down. The rest, as they say, is history… Bushnell created the Pizza Time (eventually named “Chuck E. Cheese”) chain of restaurants as a way of marketing Atari arcade games in 1977. Atari was sold to Warner Communications that same year. Bushnell founded Catalyst Technologies, a business incubator, in the early 1980s. Bushnell resigned from Chuck E. Cheese in 1984. (Source: Atari history timelines) More recently Bushnell has been part of a business venture called uWink that’s been trying to set up futuristic, technology-laden restaurants. In 2010, the third iteration of Atari (the most recent acquirer of the rights to the name and intellectual property of Atari is a company formerly known as Infogrames) announced that Bushnell had joined their board of directors. There are a bunch of other entrepreneurial ventures he was involved in that I will not list here. Check out his Wikipedia page for more details.

John Warnock worked for a time at Evans & Sutherland, and then at Xerox PARC, where he and a colleague, Charles Geschke, developed InterPress, a computer language to control laser printers. Warnock couldn’t convince Xerox management to market it, and so he and Geschke founded Adobe in 1982, where they marketed a newer laser printing control language called PostScript. In 1991, Warnock created a preliminary concept called “Camelot” that led to Postscript Document Format, otherwise known as “PDF.”

Edwin Catmull developed some fundamental concepts used in 3D graphics today, and went on to become Vice President of the computer graphics division at Lucasfilm in 1979. This division was eventually sold to Steve Jobs, and became Pixar, where Catmull became Chief Technical Officer. He was a key developer of Pixar’s RenderMan software, used in such films as Toy Story and Finding Nemo. He has received 4 Academy awards for his technical work in cinematic computer graphics. He is today President of Walt Disney and Pixar Animation Studios.

Jim Clark worked for a time at Evans & Sutherland. He founded Silicon Graphics in 1982, Netscape in 1994, Healtheon in 1996 (which became WebMD), and myCFO in 1999 (an asset management company for Silicon Valley entrepreneurs, which is now called “Harris myCFO”). More recently, he co-produced the Academy award-winning documentary The Cove.

Alan Ashton co-founded Satellite Software International with one of his students, Bruce Bastian, in 1979. The company created the WordPerfect word processor. SSI was eventually renamed WordPerfect Corporation. Throughout the 1980s, WordPerfect was the leading word processing product sold on PCs. The company was bought by Novell in 1994. Ashton stayed on with Novell until 1996. He founded ASH Capital, a venture capital firm, in 1999.

For those who are interested, you can watch a 2004 presentation with Ivan Sutherland and his brother Bert, talking about their lives and work, here. The guest host for this presentation is Ivan’s long-time friend and business associate, Bob Sproull.

Dave Evans went on to help design the Arpanet, which I describe below.

Doug Engelbart and NLS

If, in your office, you as an intellectual worker were supplied with a computer display, backed up by a computer that was alive for you all day, and was instantly responsive to every action you had, how much value could you derive from that?

— Doug Engelbart, introducing NLS at Menlo Park in 1968

“Doug and staff using NLS to support 1967 meeting with sponsors — probably the first computer-supported conference. The facility was rigged for a meeting with representatives of the ARC’s research sponsors NASA, Air Force, and ARPA. A U-shaped table accommodated setup CRT displays positioned at the right height and angle. Each participant had a mouse for pointing. Engelbart could display his hypermedia agenda and briefing materials, as well as the documents in his laboratory’s knowledge base.”
– caption and photo from Doug Engelbart Institute

It’s a bit striking to me that after the interactive computing that was done in the 1950s, which I covered in Part 1, that a lot of effort in the ARPA work was put into making interactive systems that operated only from a command line, rather than from a visual, graphical display. At one point Licklider asked the Project MAC team if it might be possible for everybody on the CTSS time-sharing system to have a visual display, but the answer was no. It was too expensive. In the scheme of projects that ARPA funded, NLS was in a class by itself.

In 1962, an electrical engineer named Doug Engelbart was having trouble getting his computer research project funded. Funders in his proximity couldn’t see the point in his idea. Most of the people he talked to were openly hostile to it. He wanted to work on interactive computing, but they’d say that computers were only meant to do accounting and the like, using batch processing. Engelbart’s vision was larger, and a little more disciplined than Licklider’s. He wanted to create a system that was specifically designed to help groups work together more effectively to solve complex problems.

Lick at ARPA/IPTO allocated funding for his project that lasted several years. Engelbart also got funding from NASA (via. Bob Taylor), and the Air Force’s Rome Air Development Center. With this, he established the Augmentation Research Center (ARC) at the Stanford Research Institute (SRI).

Engelbart envisioned word processing at a time when it had just been invented, and even then only on an experimental basis. He spent a lot of time exploring how to enhance human capability with information systems. In the mid-1960s, he envisioned the potential for online research libraries, online address books, online technical support, online discussion forums, online transcripts of discussions, etc., all cross-linked with each other. He drew inspiration from Vannevar Bush’s Atlantic Monthly article called, “As We May Think,” which was published in 1945 (Vannevar Bush is no relation to the Bush political family), and Ivan Sutherland’s Sketchpad project. Engelbart said that he came up with the idea of hyperlinked documents on his own, though he later recalled reading Bush’s article, which focused on a theoretical concept of a stored library of linked documents that Bush called a “Memex.”

The system that was ultimately created out of the ARC’s work was built on an SDS 940 time-sharing system, the system software for which was developed by Project Genie. Engelbart’s software ran in 192 kilobytes of memory, and 8 MB of hard disk space, if I recall correctly. He called the end result NLS, for “oN-Line System.” He demonstrated the system at the Fall Joint Computer Conference at Menlo Park, CA in 1968. It was all recorded. The full-length annotated video is here. It’s interesting, but gets very technical.

What Engelbart and his team accomplished was so far ahead of its time, there were people in the audience who didn’t think it was real, because, you see…computers couldn’t do this kind of stuff back then! It was real alright. What Engelbart had created was the world’s first computer mouse (that’s what people in the computing field give him credit for today, but there was so much more), one of the first systems to implement rudimentary windows on a screen, the first system to integrate graphics and text together on a screen, the first system to implement hyperlinking (these were like links on a web page, though much more sophisticated), and the first collaborative computing platform that was networked, all in one system. He demonstrated live for the audience how he and a worker in another office, in a separate building, could collaboratively work on the same system, at the same time, on a shared workspace that appeared on both of their screens. Each person was able to use their own mouse and keyboard to issue commands to the system, and edit documents. They could see each other on their terminals, since there were cameras set up in both locations to capture their images. They each had headsets with microphones, and a speaker system set up, so that they could hear each other.

The whole thing was a prototype, and a lot of infrastructure had to be set up just for the demo, to make it all work. Not all of it was digital. In the collaborative computing part of the demo, the video display of the remote worker, and the audio system, were analog. Everything else was digital. Even so, it was a revolutionary event in the history of computers. This was 16 years before the first Apple Macintosh, which couldn’t do most of this! NLS cost a lot more, too, more than a million dollars (more than $6 million in today’s money)! There is still technology Engelbart developed (which I haven’t discussed here) that has not made it into computer products yet, nor the typical web environment most of us use.

After the demo, Bob Taylor, who was the director at IPTO at this time, agreed to continue funding Engelbart’s work. However, other government priorities reduced the funding available to him, mainly due to the cost of the Vietnam War.

Considering the magnitude of this achievement, one would think there would be nothing but better and better things coming out of this project, but that was not to be. A lot of Engelbart’s technical talent left his project to work at Xerox PARC, pursuing the idea of personal computing, in the 1970s. Innovation with NLS slowed, and the system became more bloated and unwieldy with each update. ARPA could see this directly, since they ended up using NLS to do their own work. The IPTO decided to cut off Engelbart’s funding in 1975, since their goals had diverged.

NLS was transferred out of SRI to a company called Tymshare in 1978. They attempted to make it into a commercial product called “Augment.” Tymshare was bought by McDonnel-Douglas in 1984. They authorized the transfer of Augment to the Bootstrap Alliance, founded by Doug Engelbart, which is now known as the Doug Engelbart Institute. NLS/Augment was ported to a modern computer system, thanks to funding from ARPA in the mid-1990s, and continues to be used at the Doug Engelbart Institute today! (source: article on NLS/Augment at The Doug Engelbart Institute)

His efforts to get his ideas out into the world would be somewhat vindicated in the research and development that was carried out by Xerox PARC, and ultimately in the computers we use today, but this is only a pale shadow compared to what he had in mind. Still, we owe Engelbart a great debt of gratitude. It is not a stretch to say that the interactive computers we’ve been using for the past 26 years would’ve come into existence quite a bit later in our history had it not been for his work. The Apple Lisa and the Apple Macintosh wouldn’t have come out in 1983 and 1984, respectively. Something like Microsoft Windows would’ve been a more recent invention. It’s possible most of us would still be using command-line interfaces today, using a text display, rather than a graphical one, were it not for him. It also should be noted that the IPTO’s funding (by Licklider) of Engelbart’s ARC project at SRI was crucial to NLS happening at all. It was this funding that lent it credibility so that Engelbart could pursue funding from the other sources I mentioned. Were it not for Licklider, Engelbart’s dream would have remained just a dream.

To really drive home the significance of Engelbart’s accomplishment, I’m including this video, created by Smeagol Studios, which demonstrates some of the technology Engelbart invented, but was eventually brought to us by others.

The Arpanet

In terms of the technology we use today, all of the other projects that ARPA funded generated ideas that we see in what we use. They were inspirations to others. The Arpanet is the one ARPA project that directly resulted in a technology we use today, in the sense that you can trace, in terms of technology and management, the internet we’re using now directly back to ARPA initiatives.

The basis for the Arpanet, and later the internet, is a concept called packet switching, which divides up information into standard sized pieces, called “packets,” that have a “from” and “to” address attached to them, so that they can be routed on a network. It turned out ARPA did not invent this concept. It had gone through a couple false starts before ARPA implemented it.

The earliest known version of this idea was created by Paul Baran (pronounced “Barren”) at RAND Corporation in 1964. He had done an amazing amount of work designing a packet switching network for a digital phone system (think voice over IP, as an analogy!) for the U.S. government. The big difference between his idea and what we eventually got was that he designed his system only for transmitting digitized sound information over a network, not generic computer data. The amount of design documentation he produced filled 11 volumes. This is where the idea came from to design a network that could survive a nuclear attack. Baran’s goals were dovish. He wanted to avoid all-out nuclear war with the Soviets. His rationale was that if the government’s conventional communication system was wiped out in a first strike, our government would have no choice but to launch all its nuclear missiles, because it would be deaf and blind, unable to communicate effectively with its forces, or with the Soviet government. In his scheme, the communication network would route around the damage, and continue to allow the leaders of both countries to communicate, hopefully allowing them to decelerate the conflict. It didn’t get anywhere. Baran tried working through the Defense Communications Agency to get it built, but the engineers there, and at AT&T (Baran’s system was designed to work over the existing long-distance phone network), didn’t understand the concept. Baran even proposed that the U.S. government offer his system to the Soviets, so that if the roles were reversed, they could still communicate with the U.S. That didn’t convince anybody to go ahead with it, either. It was shelved and forgotten, until it was discovered by Donald Davies, a researcher at the National Physical Laboratory (NPL) in Teddington, UK.

Davies’s idea to develop a packet switching network (Davies is the one who invented the term) was inspired by a conversation he had with Larry Roberts and Licklider at a conference on time sharing Davies hosted in 1965. Davies found Baran’s project later while researching how to build his own system. Davies had come up with the concept of using separate message processing computers to route traffic on the network, what we call “routers” today. He finished his design in 1966. He got one node going, where a bunch of terminals communicated with each other through a single message processor, demonstrating that the idea could work. Like with Baran’s system, his idea was to use the UK’s phone network. He ran into a similar problem: The British Postal Service, which at the time was in charge of the country’s phone network, didn’t see the point in it, didn’t want to fund it, and so it died. Just imagine if things had turned out differently. The Brits might’ve taken all the credit!

Bob Taylor, from “The Machine That Changed The World” circa 1992

ARPA eventually got going with its packet switching network, but it took some searching, and leadership, on the part of a psychologist named Bob Taylor. Taylor moved from NASA to the IPTO in 1965. He served under Ivan Sutherland, who had replaced Licklider as IPTO director. Taylor and Licklider had worked in the same area of psychological research, called psychoacoustics, in the 1950s, and they were both passionate about developing interactive computing.

One of the first things Taylor noticed was that the IPTO had several teletype terminals set up to communicate with their different working groups, because each working group’s computer system had its own way of communicating. He thought this was something that needed to be remedied. The thought occurred to him that there should be just one network to connect these groups.

Wes Clark once again enters the story, and introduces a new idea into this mix. I’ll give a little background.

Clark had come up with a “backwater” concept in 1961 at MIT of individual computing, the idea that computers should be small and something that individuals could afford and own. Clark had developed what was considered a “small” computer at the time. It had a portion that fit on a desk (though it took up almost the entire desk), which contained a bunch of components fitted together. It had a keyboard and a 6″ screen. The part on the desk was hooked up to a single cabinet of electronics that stood on its own. It might’ve been the world’s first minicomputer. Clark dubbed his creation the LINC, after the place where he invented it, Lincoln Lab, which is part of MIT.

It was a highly technical box. It wasn’t something that most people would want to sit down and use for the stuff we use computers to do today, but it was the beginning of a concept that would come to define the first 25 years of personal computing. The LINC came to be manufactured and sold, and was used in scientific laboratories.

Clark obtained funding from the IPTO in 1965 to continue his work in developing his individual computing technology, at Washington University at St. Louis. From what I’ve read of his history, Clark did not end up playing a role in the development of the personal computer as most people would come to know it, though he nevertheless contributed to the vision of the networked world we have today, in more ways than one.

Sutherland and Taylor met with Clark in 1965. Taylor tried out the LINC, typing out characters and seeing them appear on its small screen. As he used it, he and Clark talked about networking. The idea of the “Intergalactic Network” that Lick had talked about a couple years earlier came into Taylor’s mind. Clark regarded time sharing as a mistake. To him, the future was in networking small machines like his. Taylor could see the validity of Clark’s argument. Clark hadn’t incorporated the idea of networking into the LINC, but he thought that was something that would come along later. Taylor observed that what made time sharing a valid concept was the community it created. He asked himself questions like, “Why not expand that community into a cross-country network,” and “Why couldn’t the network serve the same function as the time-sharing system in forming communities?” Clark agreed with this idea, and urged Taylor to go for it. Clark didn’t like the idea of linking time-sharing systems together, but link thousands, or millions of individually owned computers together? Yes!

Licklider encouraged Taylor to pursue the idea of a network as well. Lick said the only reason he didn’t try to implement his idea while at ARPA was the technology wasn’t ready for it. They went on to discuss ideas about how the network might be used. They thought about online collaboration, digital libraries, electronic commerce, etc. Electronic commerce is now well established, but the other areas they talked about are still being developed on the internet today.

When Taylor got back together with the IPTO’s working groups, he discussed the idea of creating a nationwide network, with them involved. Most of them didn’t like the idea at all. The only one who was excited about it was Doug Engelbart. It was one thing to talk about a network, as they had in the past. It was another to actually want to do it, primarily because most of them didn’t want to share computer time with outsiders. They wanted to keep it within their own communities, because they were having enough trouble keeping computer performance up with the users they had. Plus, they didn’t want to contribute funding to the project. All projects before this had come from the bottom up. Researchers put forward proposals, and ARPA would pick which to fund. This was a project coming from ARPA, top-down.

Taylor talked with Charles Herzfeld, who was the director of ARPA at the time, about the idea of building the network. He liked it, and they agreed on an initial funding amount of $1 million (about $7 million in today’s money). This allayed some fears so that investigations for how to build the network could move forward. Taylor assured the working groups that if they needed additional computing power to take on the load of being a part of the network, ARPA would find a way to provide it.

Ivan Sutherland left ARPA to become a professor of electrical engineering at Harvard in 1966, and Taylor became IPTO director. Taylor would come to play a role in the development of the Arpanet, the ancestor to the internet, and would later lead the effort to develop modern personal computers at Xerox PARC.

Larry Roberts, from his home page at http://www.packet.cc/

Larry Roberts, an electrical engineer from MIT, was brought into the Arpanet project, after some arm twisting by Taylor and Herzfeld. He was made a chief scientist at ARPA, to lead the technical team that would design and build the network. Roberts, Len Kleinrock, and Dave Evans developed a preliminary design for the Arpanet, independently from Donald Davies and Paul Baran, in 1967. Roberts noticed that in addition to the systems associated with the IPTO, all of the time-sharing systems that were sprouting up around the country had no way to communicate with each other. People who used one time-sharing system could communicate with each other, but they couldn’t easily communicate information, programs, and data with others who used a different system. Roberts wanted to help them all communicate with each other, furthering the goals of Project MAC.

Like the other ideas that came before it, the Arpanet was designed to work over AT&T’s long-distance phone network. The idea was to open dedicated phone connections and never hang up, so that data could be sent as soon as possible at all times. Roberts ran into hostile resistance at the Defense Communications Agency over this idea from some of the same people who told Baran his idea wouldn’t work. The difference this time was the man who wanted to implement it worked for the Pentagon, and ARPA was fully behind it. Part of ARPA’s mission was to cut through the bureaucratic red tape to get things done, and that’s what happened.

The original idea Roberts had was to have each time-sharing system on the network devote time to routing data packets on it. One of the objections raised by the ARPA working groups was that most or all of their computer time would be taken up routing packets. Unbeknownst to them at the time, this problem had already been solved by Davies over in England. Roberts changed his mind about this arrangement after he had a conversation with Wes Clark. He suggested having dedicated “interchange” computers, so that the computers used by people wouldn’t have to handle routing traffic–again, routers. Clark got this idea by thinking about the network as a highway system. He observed that they had specialized ramps to get from one highway to another when they’d intersect–interchanges. Thus was born Arpanet’s Information Message Processors (IMPs).

Roberts’s first inclination was to make the data rate on the Arpanet 9.6Kbps. He thought that would be plenty fast for what they would need. He reconsidered, though, upon meeting with Roger Scantlebury and his colleagues from the UK’s National Physical Laboratory. Scantlebury had worked with Donald Davies. They suggested a faster data rate. Roberts saw that a speed of 56Kbps was achievable, and decided that should be the data rate for the network. This is the same speed that’s used when people now use a dial-up connection to get on the internet, though this was the network’s speed, not just the speed at which the people who used it connected with it.

Three groups worked on the implementation details for the Arpanet: The ARPA group led by Roberts, a second group at BBN led by Robert Kahn, a mathematician and electrical engineer, and a third group made up of graduate students from many different universities (really whoever wanted to participate), who were part of what became the Network Working Group, which was coordinated by Steve Crocker at UCLA. For the techies reading this, Crocker was the one who invented the term “RFC” for the internet’s design documentation, which stands for “Request For Comments.” He was looking for something to call the design that the graduate students had done, without coming across as superior to the people at ARPA leading the effort.

BBN won the contract from ARPA in a competitive bidding process to manufacture and install the IMPs. BBN chose the Honeywell 516 computer as the basis for them. It was customized to do the job. Each IMP was the size of a refrigerator. Graduate students and employees at the sites where these IMPs were installed were expected to come up with their own software (their own network stack), based on a specification that had been hammered out by the aforementioned working groups, to send and receive packets to and from the IMPs.

Crocker and the Network Working Group came up with several basic protocols for how computers would interact with each other over the Arpanet, including “telnet” and “file transfer protocol” (FTP). BBN created the system and protocol that enabled e-mail over the Arpanet in 1972. It became the most popular service on the network. These protocols would become the foundation for the protocols on the internet, as it developed several years later.

Along the way, the Arpanet’s designers had an idea that we would recognize as cloud computing today, where computers would have distributed, dedicated functionality, so that it would not have to be duplicated from machine to machine. A computer application that needed functionality could access it through the network interface. You could say that the idea of “the network is the computer” was starting to form, though from what I can tell, no one has pursued this idea with vigor until recently.

Also of note, ARPA had contracts with BBN in 1969 to research how medical information could be used and accessed over a network, to see what doctors could do with online access to medical records. Perhaps this research would be relevant today.

The first node on the Arpanet was set up at UCLA in September 1969. Bob Taylor left his position as IPTO director soon after. He was replaced by Larry Roberts. Another five sites were set up at SRI, UC Santa Barbara, the University of Utah, BBN, and MIT, by the end of 1970. The Arpanet became fully operational in 1975, and its management was transferred from ARPA to, ironically, the Defense Communications Agency.

Here’s a good synopsis on the history of the internet I’ve just covered, done by a couple of students at Vanderbilt University.

What happened to the people involved?

Ken Olsen, who I introduced at the beginning of this post, retired from Digital Equipment Corp. in 1992. As noted earlier, DEC was purchased by Compaq in 1998, and Compaq was purchased by Hewlett-Packard in 2002. Olsen died on February 6, 2011.

Harlan Anderson was fired from DEC by Olsen in 1966 over a disagreement on what to do about the company’s growth. He founded the Anderson Investment Company in 1969. He was a trustee of financing for Rensselaer Polytechnic Institute for 16 years. He served as a trustee of the King School of Stamford, Connecticut, and the Norwalk Community Technical College Foundation. He is currently a member of the Board of Advisors for the College of Engineering at the University of Illinois. He is also a trustee of the Boston Symphony Orchestra, and the Harlan E. Anderson Foundation. He has written a book called, “Learn, Earn & Return: My Life as a Computer Pioneer.” (Sources: Wikipedia, the Boston Globe, and Rensselaer Board of Trustees)

Wes Clark left Washington University in St. Louis in 1972, and founded Clark, Rockoff, and Associates, a consulting firm in Brooklyn, New York, with his wife, Maxine Rockoff. His oldest son, Douglas Clark, is a professor of computer science at Princeton University. (Source: IEEE Computer Society)

John McCarthy worked at Stanford in the field he invented, artificial intelligence research, from 1962 until he retired in 2000. He remained a professor emeritus at Stanford until his death on October 24, 2011.

Fernando Corbató became a professor at the Department of Electrical Engineering and Computer Science at MIT in 1965. (see my note about Robert Fano below re. this department) He was an Associate Department Head of Computer Science and Engineering at MIT from 1974-1978, and 1983-1993. He retired in 1996. (Source: MIT Computer Science and Artificial Intelligence Laboratory)

Jack Ruina served as a professor of electrical engineering at MIT from 1963 to 1997, and is currently professor emeritus. During a two-year leave of absence from MIT he served as president of the Institute for Defense Analysis. In addition, he served as deputy for research to the assistant secretary of research and engineering of the U.S. Air Force, and Assistant Director of Defense Research and Engineering for the Office of the Secretary of Defense. He also served on a couple presidential appointments to the General Advisory Committee, from 1969 to 1977, and as senior consultant to the White House Office of Science and Technology Policy from 1977 to 1980.

Ivan Sutherland left the University of Utah in 1976 to help create the computer science department at the California Institute of Technology (CalTech). He served as professor of computer science there until 1980. In that year he founded a consulting firm with one of his students, Bob Sproull, called Sutherland, Sproull and Associates. Sproull is the son of Dr. Robert Sproull, who was one of ARPA’s directors. (Sources: BookRags.com and “the DARPA video”) The firm was purchased by Sun Microsystems in 1990, becoming Sun Labs. Sutherland became a Fellow and Vice President at Sun Microsystems. Sun was purchased by Oracle in 2010, and Sun Labs was renamed Oracle Labs. (Source: Wikipedia) Sutherland, and his wife, Marly Roncken, are currently involved with computer science research at Portland State University. (Sources: Wikipedia and digenvt.com)

Bob Fano, who supervised Project MAC, stayed with the project until 1968. He became an associate department head for computer science in MIT’s Department of Electrical Engineering in 1971. Soon after, the Electrical Engineering department was renamed the Department of Electrical Engineering and Computer Science, and Project MAC was renamed the Laboratory of Computer Science (LCS). Fano never left MIT, and is a professor there today. He is a member of the National Academy of Sciences, and the National Academy of Engineering. He is a fellow with the American Academy of Arts and Sciences, and the Institute of Electrical and Electronics Engineers (IEEE). (Sources: Wikipedia.org and “Did My Brother Invent E-Mail With Tom Van Vleck?” from the New York Times opinion blog)

Ken Thompson was elected to the National Academy of Engineering in 1980 for his work on Unix. Bell Labs was spun off into Lucent in 1996. He retired from Lucent in the year 2000. He joined Entrisphere, Inc. as a fellow, and worked there until 2006. He now works at Google as a Distinguished Engineer.

Dennis Ritchie – I feel I would be remiss if I did not note that Ritchie developed a computer programming language called “C” as a part of his work on Unix, in 1972. It came to be known and used by professional software developers, and became pervasive in the software industry in the 1990s, and beyond. Most of the software people have used on computers for the past 20+ years was at some level written in C. This language continues to be used to this day, though it’s gone through some revisions. Its influence is felt in the use of many different programming languages used by professional developers. At some level, some of the software you are using to view this web page was likely written in C, or some derivative of it.

Dennis Ritchie worked in the Computing Science Research Center at Bell Labs throughout his career. Bell Labs became Lucent in 1996. Lucent and Alcatel merged in 2006. Ritchie retired from Alcatel-Lucent in 2007. He died on October 12, 2011. (sources: Wikipedia.org and Dennis Ritchie’s home page)

Dave Evans - Aside from his computer science work at the University of Utah, he was a devout member of the Church of Jesus Christ of Latter-day Saints for 27 years. I do not have documentation on when he left the University of Utah. All I’ve found is that he retired from Evans & Sutherland in 1994, and that he died on October 3, 1998.

Doug Engelbart went into management consulting after Tymshare was sold. He’s tried to spread his information technology vision in large organizations that he thinks will benefit from having their knowledge generation and storage/retrieval processes improved. He works today at the Doug Engelbart Institute at SRI. There are many more details about his professional career at his Wikipedia page.

Len Kleinrock joined UCLA in the mid-1960s, and never left, becoming a member of the faculty. He served as Chairman of their Computer Science Department from 1991-1995. He was President and Co-founder of Linkabit Corporation, the co-founder of Nomadix, Inc., and Founder and Chairman of TTI/Vanguard, an advanced technology forum organization. He is today a Distinguished Professor of Computer Science. He is a member of the National Academy of Engineering, the National Academy of Arts and Sciences, an IEEE fellow, an ACM fellow (Association of Computing Machinery), an INFORMS fellow (INstitute For Operations Research and the Management Sciences), an IEC fellow (International Electrotechnical Commission), a Guggenheim fellow (which I assume refers to the Guggenheim arts museum), and a founding member of the Computer Science and Telecommunications Board of the National Research Council. (Source: Len Kleinrock’s home page)

Steve Crocker has worked on the internet community since its inception. Early in his career he served as the first area director of security for the Internet Engineering Task Force (IETF). He also served on the Internet Architecture Board (IAB), the IETF Administrative Support Activity Oversight Committee (IAOC), the Board of the Internet Society, and the Board of The Studio Theatre in Washington, DC. Other items on his resume are that he conducted research management at the Information Sciences Institute at the University of Southern California, and The Aerospace Corporation. He was once vice-president of Trusted Information Systems, and co-founded CyberCash, Inc., and Longitude Systems. He was Chair of ICANN’s Security and Stability Advisory Committee (SSAC) from its inception in 2002 until December 2010. He is currently chairman of the board for the Internet Committee for Assigned Names and Numbers (ICANN). He is also CEO and co-founder of Shinkuro, Inc., a start-up focusing on dynamic sharing of information on the internet, and on improved security protocols for the internet. (Source: ICANN Biographical Data)

I’ll close this post with a video that gives a wider view of what ARPA was doing during the late ’50s, when it was founded, into the mid-70s. Note that “Defense” was added to ARPA’s name in 1972, so it became “DARPA.” This is “the DARPA video” I’ve referred to a couple times. There is a brief segment with Licklider in it.

In Part 3 I’ll cover the later events and operating prerogatives at DARPA that are mentioned in this video. I will talk a little more about Larry Roberts, Ed Feigenbaum, and Bob Kahn, more about Licklider, the decline of the IPTO, Robert Taylor’s work at Xerox PARC, along with Alan Kay, Chuck Thacker, and Butler Lampson in the invention of personal computing, and the transition from the Arpanet to the internet.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

When President Obama gave his State of the Union address on January 25, 2011, I noticed he was criticized specifically for his so-called “Sputnik moment,” his call for “investment” in certain areas involving science and engineering. Here is some of what he said on that:

Half a century ago, when the Soviets beat us into space with the launch of a satellite called Sputnik, we had no idea how we would beat them to the moon. The science wasn’t even there yet. NASA didn’t exist. But after investing in better research and education, we didn’t just surpass the Soviets; we unleashed a wave of innovation that created new industries and millions of new jobs.

This is our generation’s Sputnik moment. Two years ago, I said that we needed to reach a level of research and development we haven’t seen since the height of the Space Race. And in a few weeks, I will be sending a budget to Congress that helps us meet that goal. We’ll invest in biomedical research, information technology, and especially clean energy technology, an investment that will strengthen our security, protect our planet, and create countless new jobs for our people.

People within the computer science, science, and engineering communities have been pining for a “Sputnik moment” for several years now, hoping that something, anything, will inspire our society to make math, science, engineering, and computer science a higher priority, and promote more funding for those fields in academia. It’s not just academics who are worried about this. The industries that count on having a supply of good scientists, engineers, and mathematicians to draw from in the U.S. are worried about the decline in interest among American students as well.

The hope for this “moment” is misguided, in my opinion, because what they’re really hoping for is something contrived. It also speaks to a lack of faith in America, that we cannot be inspired to pursue these fields without some foreign enemy that we feel we have to compete against. Obama kind of tried to create this “Sputnik moment” in his speech, talking about how the Chinese and South Koreans have better technology than we do. This is true. In the case of South Korea and Singapore, it’s been true for almost ten years. Back in 2002 I was hearing about how in Singapore people were reserving movie tickets for specific movies at specific theaters, and carrying out cash and credit card transactions at retail outlets, with their cell phones. All they needed to enter on their phone was their PIN. You can watch a Computer Chronicles episode where they talk about this. A couple years later I heard about how South Koreans had higher speed internet service than we did, back when the fastest broadband service to which most American consumers had access was probably 1.5 megabits per second. Koreans were already doing HD video conferencing as a matter of course. It’s come to this country just recently. I’m not convinced, though, that Americans are going to commit themselves to spending years studying technical subjects just to beat the Chinese and Koreans over issues like this.

Sputnik was a cultural realization in 1957 about the implications of the Soviets, our Cold War adversary, getting ahead of the U.S. in space technology, primarily out of an anti-communist sentiment, and concern for national security. The government didn’t have to tell people to be worried about this. In fact it was the citizenry that was banging on the doors of the government, demanding, “Why didn’t you see this coming,” and, “Why weren’t we first?” The Soviets had developed their own nuclear weapon in 1949, and now they had the ability to launch things into space. People made the connection that “they could drop nuclear bombs on us from space,” a strategic high ground that we were not even close to occupying at the time. Our own test rockets were blowing up on the launch pad on a regular basis. The feeling was the Soviets had beaten us in a game of one-upsmanship, when we least expected it, and there was an alarming sense that we needed to “catch up.”

According to what we know from history, the so-called “missile gap” was a political myth. Nevertheless, something good was able to come out of this. Math and science, which our culture had largely ignored and neglected, became a higher priority. We produced more scientists and engineers. Some of them went into university research. Others went into private industry. A couple by-products of this was a heightened interest in getting more women into computer science in the 1970s–an effort that actually succeeded at the time, but only temporarily. It also spurred the explosion in commercial personal computers in the late 1970s, which continued into the 1990s. There was a cultural understanding which said that learning about computers at a technical level, and how to use them, was important for our future.

That culture has changed. We value computer technology, because now it’s everywhere, and it’s hard not to learn about it, but now it’s all about learning the technology’s interface, not how to build it, or manipulate its internals. There is much less interest in what makes our technology possible, and in learning what’s necessary to drive it forward.

The criticism of Obama’s speech where he talks about our “Sputnik moment,” has bothered me somewhat, because the critics missed the history of government research funding. We really shouldn’t dismiss it, and let ourselves be ignorant of it, because I think this is one of the relatively few areas where government has done a good job, even with the occasional misguided notions that have been promoted through it under the label of “science”.

Here is some of what was said against Obama’s speech.

From Investors.com, published by Investor’s Business Daily, “Obama’s Tribute to Big Government”:

Are you impressed with the Internet? With your iPad? With that gadget on your car’s dashboard that gets you back on the Interstate after you get lost in a strange city?

Thank Washington, because according to the president Washington “planted the seeds for the Internet. That’s what helped make possible things like computer chips and GPS. Just think of all the good jobs — from manufacturing to retail — that have come from these breakthroughs.”

If you don’t remember Presidents Carter or Reagan or Clinton bragging about the initiatives of their administrations that would one day bear the fruit of global social networks like Facebook, handheld communication devices like BlackBerrys, and the mobility revolution of Wi-Fi, it’s because they didn’t.

Government didn’t bring us any of those things; the private sector did. Does anyone really believe the federal government — which can’t find, let alone police, the 13 million-plus illegal aliens within our borders — can find and finance entrepreneurs like Bill Gates and Steve Jobs while they are in the embryonic stages of their careers and make them successes?

The part of Obama’s speech that was quoted makes it sound like he was making a bit of a non-sequitor. Here is the full quote:

Our free enterprise system is what drives innovation. But because it’s not always profitable for companies to invest in basic research, throughout our history, our government has provided cutting-edge scientists and inventors with the support that they need. That’s what planted the seeds for the Internet. That’s what helped make possible things like computer chips and GPS. Just think of all the good jobs — from manufacturing to retail — that have come from these breakthroughs.

On these points, Obama was right, but it takes an understanding of the history of this technology to get that. Defense spending was an important part of establishing the internet (through ARPA). It should be noted that the internet I refer to here is not the web, but rather the basic hardware and software infrastructure that the web uses in order to work. NASA provided R&D funding for the development of computer chips around the time they were invented, and without defense spending there would not be a GPS satellite system, which is essential for GPS technology to work here on the ground. It should be noted that the technology for GPS was initially used exclusively by the military, the technology for which was kept secret, and I think was only made available for consumer use within the last 10+ years. These have been essential technology platforms for the consumer products and services we use.

Just a side note: The example of the level of illegal immigration exhibiting government incompetence is a bad one. It’s not that our government can’t police and regulate this better. It’s that it doesn’t want to, and there are interests in this country who like it that way. Anyway…

There was also this from Glenn Beck shortly after the speech:

The President also announced he would be “investing” in biomedical research. Can anyone find that one in the Constitution? Oh, and information technology, especially clean energy technology. Alright. Let’s take these apart one at a time, shall we?

Biomedical: Maybe it’s just me as an American citizen, but I don’t want the government now dabbling with creating our drugs. Period.

Information technology? I dunno. I thought we were doing pretty good with Steve Jobs. Bill Gates [is] doing good, you know. Newcomers [are] coming into that field all the time. I think we’re good! Have you seen the iPhone…next to the Post Office? I’m going to go with Apple on that one.

After seeing these comebacks from conservatives, I shook my head a bit in disgust. To me, these people clearly didn’t understand what they were talking about with regard to how the products we see today came to be. Well, I hope to remedy that a bit in this series.

Obama wasn’t talking about starting a government-owned biomedical or IT company, or the government becoming a venture capitalist that would fund startups (though, as you’ll see later in this series, the government did that in a round-about way during the “middle stage” of the internet’s development), but rather that the government would provide funding for basic scientific research of the same type that developed the technology platforms which Facebook, Twitter, GPS devices, smartphones, and PCs were able to build upon, or were able to use. It’s not a stretch at all to say that most of these platforms would not exist today, or would’ve come later, had government-financed research not delved into creating them.

I will use several sources for this series. The primary one is “The Dream Machine,” by M. Mitchell Waldrop. He tells the story of where the basis–the ideas and infrastructure–for a lot of the technology we use today came from. Other sources I will use are Wikipedia, historical videos I’ve found on the internet, and a documentary called “The Machine That Changed The World.” Occasionally I will cite anecdotes I have heard from people who were either involved in this work, or who have been close to the people who were.

“The Dream Machine” follows the career of one man, J.C.R. Licklider, and several other computing luminaries, who made great contributions to the field of computer science, and particularly to the goal of creating interactive, networked computing, the kind of computing we do every day when we use technology.

What follows is a series of posts on this subject. I’ve broken it up into parts, because it’s extensive. The goal of what I’m writing here is not to be an authoritative source, but to provide a primer which you, the reader, can use to further your own research of this topic, if you feel so inclined. I will not cover the full history of computer technology (though there is still a lot here). What I will cover is the history of government-funded research into certain computer technologies, and what flowed from that research. I’ve made a point to try as much as I can to include the contributions of private companies that were created from government projects, or which worked with government agencies, or were beneficiaries of ideas generated by government-sponsored research, and which were critical in bringing us the technology we use today.

Getting computing off the ground

The first technological breakthrough described in the “The Dream Machine” was ENIAC (the Electronic Numerical Integrator And Computer), the first general-purpose computer. There were other computers invented by other creators before this, but they were designed for a specific purpose. It was either impossible, or very difficult, to program them for other purposes. This computer could be programmed to use a variety of calculation methods.

J. Presper Eckert, from the Computer History Museum

ENIAC was designed by J. Presper Eckert, and John Mauchly (pronounced “mock-lee”). It was a digital computer, and its electronics were made up of vacuum tubes, also known as “valves.” It was a government project, financed by the U.S. Army, at the Moore School of Engineering at the University of Pennsylvania, during WW II. It was completed in 1946, and took up a whole room. It was also the first high profile project where women were important to the operation of a computer. They were called “Rosies,” and they were the programmers of ENIAC. This was no mean feat for anyone to do, since no programming language existed. It was programmed via. panels of “switches” (though the controls were actually dials), and the only code the programmers had to read were wiring diagrams. Before this, the “Rosies” had worked as human computers, figuring firing tables for artillery shells for the war effort by hand, with the help of mechanical calculators. Human computation was a problem, though. Errors were inevitable, and they might go undetected. It took a long time for people to compute tables. The sense of the time was they needed the firing tables yesterday. They couldn’t produce them fast enough. So building an electronic computer to do this work was seen as essential. As was the case in all sorts of male-dominated fields of the day, since most of the young men in the country were off fighting the war, women were brought in to do both kinds of work (computation and programming), and they showed themselves to be up to the task, though their contribution went unrecognized by society for many years.

John Mauchly, from the Computer History Museum

There’s a new documentary out on DVD now called “Top Secret Rosies: The Female Computers of World War II” (h/t to Mark Guzdial) for anyone who’s interested in learning more about this. There’s also a segment on this history in the documentary, “The Machine That Changed The World,” in its first episode, called “Great Brains.”

The following video of ENIAC, and the people who operated it, is National Archives footage digitized to the web. Note: There is no sound in this video. Eckert and Mauchly appear in the video at 4:55.

The blinking light display on the ENIAC was set up solely for the computer’s public unveiling. The display is a panel of lights covered with ping pong balls, with numbers painted on them. This panel was not used for normal operation. Nevertheless, it established the precedent of computers having panels of blinking lights.

There were two limitations with ENIAC. One was, while it could be programmed, it could not store its program. Programming was a matter of “wiring” the program into the machine, which was accomplished by adjusting the aforementioned panels of dials. Second, it was not interactive. The computer loaded data into itself, processed it, and produced printed tables of calculations. That was it. This would more or less become the template for most of the computers that would be produced and used for the next 25 years.

Taking what they had learned from building ENIAC, Eckert and Mauchly formed the world’s first computer company, the Electronic Control Company, later called the Eckert-Mauchly Computer Corporation, in 1946. They developed the Univac (the Universal Automatic Computer). The following ad for Univac was produced after the Eckert and Mauchly company was bought by Remington Rand in 1950.

Univac was made famous when it was featured on a CBS News broadcast, giving the first statistical computer prediction for an election, in the 1952 presidential race. The prediction was based on a sample of actual vote tallies on election night, and was very close to the actual result, though CBS did not air the prediction, because it differed significantly from polls taken before the election.

IBM decided to get into the computer business after hearing requests for computers from the U.S. military during the Korean War. There was resistance within IBM to getting into this new market. Nevertheless, it produced its first computer model, the 701, in 1953. Its design was based on Dr. John von Neumann’s paper, “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument,” which documented his work in creating a computer that could store its program, at the Institute for Advanced Studies, at Princeton.

IBM came to dominate the field with its superior marketing, and backward compatibility with the punch card system of its older mechanical tabulation machines.

The first glimmers of interactive computing

What I covered above is one path that computers took, which came to dominate computer use for a long time. Another path that was very significant, though was not enjoyed by the public at the time, was interactive computing. For many years, interactive computing would only be known in the military. Eventually it would come to be known by the whole world.

Jay Forrester, from Wikipedia

Going back in time to before ENIAC was created, the Navy wanted to build a flight simulator for pilot training. They funded a project at MIT called Whirlwind, starting in 1944. It was designed by Jay Forrester. The system he ultimately built was the first real-time digital computer. Like ENIAC, it used vacuum tubes. What was different was it gave constant feedback to an operator (the pilot trainee) as it received input (movements of a joystick by the trainee), and it gave the operator something to look at, a simple graphical display, generated using an oscilloscope.

Whirlwind was never really “finished,” though it was put into military service in 1951. The scientists and engineers who worked on it were constantly tinkering with it, and changing its purpose. Under “Project Claude,” Whirlwind was tasked with displaying the positions of a real drone and a real aircraft flying in the sky, taking radar data as input in real time, allowing the operator to use the joystick that was part of the computer’s setup to remotely control the drone. The goal was to see if the person sitting at the computer could use the equipment to pilot the drone to intercept the aircraft. In tests it worked. This is not unlike the way military drones are piloted today.

A government-deputized committee that was formed shortly after the Soviets tested their first nuclear bomb in 1949, headed by MIT physicist George Valley, saw Whirlwind in action in 1950. It was a decisive proof-of-concept for them about what computers were capable of, and how they could be used for air defense. The Valley committee was tasked with assessing our existing defenses in the face of a Soviet nuclear threat, and making recommendations about any changes that were needed. They found that our defenses were woefully inadequate for defending against a bomber raid, the only major threat that was imagined at the time.

The committee’s report was delivered to the Pentagon in 1950. It recommended that the government install more radar stations to fill in the gaps in the radar net, and that an automated radar tracking and response system–a computer system–was needed. Seeing Whirlwind in action gave them confidence that this was possible. The U.S. government was very nervous about the situation with the Soviets. The thinking was the cold war could turn into a hot war quickly, and so they accepted the Valley committee’s recommendations without question, even though this was a radical, new idea at the time, only supported by experimental technology.

A man by the name of J.C.R. Licklider comes into the story here. He was a psychologist, with a background in mathematics and physics, who was very interested in computers. In addition to being a scientist, he was also a mathematician. He is a major figure in the history that follows.

Licklider came to MIT in 1950 to continue his work in psychology. While there, he developed custom-built analog computers to simulate isolated neurological activity in the human brain, as part of his research. He also contributed to the SAGE (Semi-Automatic Ground Environment) project in 1951, working on human factors research for the displays that operators would be working with. He helped determine when and how much information should be displayed to the operators, and what the intensity of the displays should be, so that the operators would be comfortable, and would not be overwhelmed with information, so they could make clear decisions.

SAGE was, in essence, the system that was recommended in the Valley Committee report. It was designed to be a real-time system, like Whirlwind, which would monitor our defensive airspace for Soviet bombers, and our own air force flights. It was developed at MIT, with several corporations contributing to its construction and planning, including IBM, System Development Corporation (which was spun off from RAND Corp. They managed all of the programmers for the SAGE project), Burroughs, and Western Electric.

The programming task for SAGE was very complex. It was estimated they needed 2,000 programmers. There weren’t enough in the whole country to work on it. So the SAGE project undertook an education program to recruit and train new programmers. All comers were invited, men and women, from all walks of life. It was not easy to tell who the best programmers would be. Scientists, engineers, mathematicians, the typical candidates one would think were ideal, were not sure bets. Music teachers tended to be the best candidates. It was found that women were better than men at paying attention to minute details while simultaneously not losing track of the big picture. One of the best programming groups in the project was 80% female.

The Navy lost interest in Whirlwind in 1954, and stopped work on it. The Air Force began construction of SAGE installations that same year. The SAGE system was brought online in 1958. Each installation was huge, due to the fact that, like ENIAC, its electronics were made up of large arrays of vacuum tubes. It took up a few floors of a building at each installation. Each one had two computers, so that one could always be taken down for maintenance if need be. It was networked so that information gathered about detected objects in the sky could be relayed to other stations. The first phone modems were created during this project, for this information transfer.

SAGE was fully built by 1963. The thing was, it was obsolete by this point. ICBMs (Inter-Continental Ballistic Missiles) had been developed, and the nuclear threat situation had become more a matter of nuclear deterrence than strategic defense. SAGE could not deal with ICBMs at all. Still, Whirlwind and SAGE would have a huge impact on the future of computing in the minds of the scientists and engineers who worked on them. SAGE was the first big proof-of-concept that interactive, networked computing was a viable concept. Still, it would take a lot of convincing to get more players in the computer industry to believe in it. Computers were still big and expensive, and computer time was expensive and precious. The idea of interactive computing was seen as pie in the sky by many–a waste of time, and SAGE was the exception that proved the rule that computers were only for data processing, not for interaction.

What came of it

One of MIT’s working groups on the SAGE project was spun off as the MITRE Corporation in 1958. Its purpose was to integrate new weapons systems into SAGE. In addition, in the coming years MITRE would develop the National Airspace System for air traffic control, which is still in use today, and AWACS (the Airborne Warning and Control System) (sources: Wikipedia, The MITRE Digest).

The SAGE project enhanced IBM’s ability to deliver computer systems that could handle big, real-time data processing projects, because their staff had learned how to do it through the experience of working on this project, and by bringing experienced people in from places like MIT. IBM developed SABRE (Semi-Automated Business-Related Environment) for American Airlines. It was a simplified commercial version of SAGE, but was designed for making airline reservations. The first experimental SABRE system went online in 1960. It was the largest real-time commercial data processing network in the world at the time. It was ultimately linked by phone lines to 1,200 teletype terminals across the country.

American made SABRE available to independent travel agents in 1976, and in the year 2000 spun it off as SABRE Holdings, which exists today. It’s divided into four business units: Travelocity (the e-commerce site for people to make their own travel reservations), Sabre Travel Network (a global distribution system providing travel information to agencies, corporations, and travelers), Sabre Airline Solutions (providing airline reservations systems and financial management), and Sabre Hospitality Solutions (providing technology solutions to hotels).

The SAGE system continued to be used by the military until 1984. Fortunately it was never tested in combat.

J. Presper Eckert, a co-inventor of the ENIAC, became an executive with Remington Rand when the Eckert-Mauchly Computer Corporation was purchased by Rand in 1950. He stayed on through the company’s many transitions. Remington Rand was purchased by Sperry in 1955, and went by the name of Sperry Rand, and then Sperry, until the company merged with Burroughs to form Unisys in 1986. It is still in existence today. Eckert retired from Unisys in 1989. He died on June 3, 1995.

John Mauchly, co-inventor of the ENIAC, became a founding member, and president, of the Association for Computing Machinery (ACM), and helped found the Society of Industrial and Applied Mathematics (SIAM). He stayed on with Remington Rand for 10 years, after their company was bought by Rand. He left the company in 1959 to form the consulting firm Mauchly Associates. He later formed another consulting firm called Dynatrend in 1967. He died on January 8, 1980. (sources: Wikipedia, the Association for Computing Machinery, Ohio History Central)

Jay Forrester, creator of Whirlwind, moved to the Sloan School of Management at MIT, and left the development of digital computing for good, in 1956. He created a new field of research called “system dynamics,” which looks at the interactions of objects in dynamic systems, with an emphasis on simulation of those systems. He developed ideas which have led to modern notions of supply chain management. As of this writing he is a professor emeritus and senior lecturer at MIT.

In Part 2, I describe the efforts that began in the 1960s to bring interactive computing to the masses.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

I heard earlier this month that Google Wave was going to be shut down at the end of the year, because it was not a hit with academia (h/t to Mark Guzdial). I was surprised. What was interesting and rather shocking is one of the reasons it failed was that academics couldn’t figure out how to use it. They said it was too complex. In other words, the product required some training. I’ve used Wave and it’s about as easy to use as an e-mail application, though there are some extra concepts that need to be acquired to use it. I saw it as kind of a cross between e-mail and teleconferencing. Maybe if people had been told this they would’ve been able to pick up the concepts more easily. It’s hard for me to say.

I thought for sure Wave would be a hit somewhere. I assumed business and bloggers would adopt it. The local Lisp user group I’ve been attending has been using Wave for several months now, and we’ve made it an integral part of our meetings. I think we’ll get along without it, but we were sorry to hear that it’s going away.

As I’ve reflected on it I’ve realized that Wave has some significant shortcomings, though it was a promising technology. I first heard about it in a comment that was left on my blog a year ago in response to my post “Does computer science have a future?” Come to think of it, Google Wave’s fate is an interesting commentary on that topic. Anyway, I watched Google’s feature video where it was debuted. It reminded me a bit of Engelbart’s NLS from 1968, though it really didn’t hold a candle to NLS. It had a few similarities I could recognize, but its vision was much more limited. As the source article for this story reveals, the Google Wave team used the idea of extending the concept of e-mail as their inspiration, adding idioms of instant messaging to the metaphor. That explains some things. What I think is a shame is they could’ve done so much more with it. One thing I could think of right off the bat was having the ability to link between waves, and entries in different waves, so that people could refer back and forth to previous/subsequent conversations on related topics. I mean, how hard would that have been to add? In business terms wouldn’t this have “added value” to the product concept? What about bringing over an innovation from NLS and adding video conferencing? Maybe businesses would’ve found Wave appealing if it had some of these things. It’s hard to say, but apparently the Wave team didn’t think of them.

At our Lisp user group meeting last week we got to talking about the problems with Wave after we learned that it was going away. A topic that came up was that Google realized Wave was going to raise costs in computing resources, given the way it was designed, as a client/server model. All Waves originated on Google’s servers. An example I heard thrown out was that if one person had 10,000 friends all signed up on one wave, and they were all on there at the same time, every single keystroke made by one person would cause Google’s server to have to send the update to every one of the people signed up for the wave–10,000 people. There was something about how they couldn’t monetize the service effectively as well, especially for that kind of load.

As they talked about this it reminded me of what Alan Kay said about Engelbart’s NLS system at ETech 2003. NLS had a similar client/server system design to Google Wave. I remember he said that the scaling factor with NLS was 2N, because of its system architecture. This clearly was not going to scale well. It was perhaps because of this that several members of Engelbart’s team left to go work on the concept of personal computing at Xerox PARC. What they were after at PARC was a network scaling factor of N2, and the idea was they would accomplish this using a peer-to-peer architecture. I speculated that this tied in with the invention of Ethernet at PARC, which is a peer-to-peer networking scheme over TCP/IP. I remember Kay and a fellow engineer showed off the concept with Croquet at ETech. It was quite relevant to what I talk about here, actually, because the demo showed how updates of multiple graphical objects on one Squeak instance (Croquet was written in Squeak) were propagated very quickly to another instance over the network, without a mediating central server. And the scheme scaled to multiple computers on the same network.

Google Wave’s story is a sorry tale, a clear case where the industry’s collective ignorance of computer history has hurt technological progress. In this case it’s possible that one reason Wave did not go well is because the design team did not learn the lessons that had already been learned about 38 years ago.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

“Information has structure. The computer should enable that structure to be modeled, and for that model to be manipulated in any representation that is appropriate to our understanding of it.” — just a thought I had

I came upon a few videos that were all basically about the same thing: We should be getting beyond paper with our computers, because paper is the old medium. The computer is a new medium. A rare few people have been working to find out how it can be uniquely beneficial to society, to find things that the computer can do, but paper can’t. I will focus on two of them in this post: Doug Engelbart, and Ted Nelson. They came up with some answers 40+ years ago, but old habits die hard. For the most part these ideas were ignored. Most people couldn’t understand them. There is a strong temptation with new technology to optimize the old, to make it work better. This is what society has chosen to do with computers thus far.

This could be wrong, but it seems to me the reason this state of affairs exists is that most people don’t understand computing concepts as a set of ideas. Most of us know how to use a computer, but we don’t have a real literacy in computing. This, I think, has created the bane of the existence of real computer scientists, applications, or what Ted Nelson calls “lumps”. A lot of people will say they “don’t understand computers”. They just use them. The argument has been made for decades that people don’t need to understand computers, because that would be like people needing to understand the engine and transmission in the car they drive. Most people now understand computers the way that they understand other machines: A machine is something that gets a specific task done. The “realization” that’s been made is that with a computer you can “change it into any machine you want”. So we go from “virtual machine” to “virtual machine”, each one carrying out specific tasks. There’s no sense of generality, beyond the GUI, because this would require understanding some things that people trained in computer science understand, for example that information can be subdivided into small structures, and links can be made between these structures. Computer science typically emphasizes that you want to do this for efficient access to that information. Engelbart and Nelson used the same principle for a different purpose: recognizing that information has structure, and organizing it with relationships and links makes it more accessible in terms of understanding it.

Business has been going for the “paperless office” for 30 years, but what they’re really doing is evolving from using physical paper to “digital paper”, and in effect their work process has not changed. Doug Engelbart and Ted Nelson point the finger at Xerox PARC for this concept of computing. A sad irony. While there were some great ideas developed at PARC, as far as I know only a couple, the bitmapped display and Ethernet, have been adopted by the wider industry. Alan Kay said recently that the GUI, developed at PARC, which was once heralded as a crowning achievement by the computer industry, was really just a means to an end: to give children an interface so they could learn computing ideas, according to their capabilities. He didn’t intend to have adults use this interface, or at least the style of it that they had developed. It wasn’t the really important idea that came out of the Learning Research Group.

The video below demonstrates some functions with Nelson’s data structure that would typically be done today by function-specific applications. The potential I see is a scheme like this could replace data-oriented applications, and make information more relevant and cohesive, without having to duplicate information into different application formats, and without having to open different applications to access the same information in different hierarchies. This would of course be dependent on people understanding computing concepts, not treating the computer as a guide about how to store and retrieve information. This is not too far fetched, given that there are plenty of people who have learned how to use spreadsheets over the last few decades.

When I first got into studying Alan Kay’s work 4 years ago, I remember he said that when he was working at PARC, he and his team thought they had “safely killed off applications”, and in my opinion, after viewing the above video, it’s easy to see why. The idea they had was to look at what computers could deal with, as a medium, find an intersection with human capabilities which could be used for their goal of societal advancement, and come up with a generalized computing structure that would fill the bill, and then some. The problem was the wider culture had no idea what these people had been up to. It was illiterate of computing ideas. So the very notion of what they were doing was alien. Not to mention that a few people at PARC were actively contributing ideas that supported the concept of applications, and making computers model what could be done with paper. Applications kept chugging along out in industry, like they always had.

As Kay has pointed out, this is not the first time this sort of thing has happened in our history. It happened to books after the introduction of the printing press. We are now rapidly moving to a technology world where old media is being digitized: books, magazines, images, video, and audio. The technology that is being created to support this doesn’t provide structured access to the underlying bits of information. As Nelson says, they are just provided as “lumps”. The point is this material is being digitized in its original format. It’s serial, linear. As with everything else in technology, it’s happening because this is what we’re used to, not because we’re really recognizing what the computer’s full potential is, even though many people think we are. We can understand this limited view by recognizing that most consumers use computers as data processing engines whose sole purpose is to compress/decompress data, convert a stream of bits into readable type, convert from digital to analog (and vice versa), persist “blobs” of information, and transmit them over networks. There is some structure to what we do with computers, but as Nelson points out, it’s simplistic. This makes us have to work harder when we start dealing with complexity.

What I like about Nelson’s emphasis is he wants to make it easier for people to study content in a deep and engaging way.

The computer industry has not yet really tried to create a new medium. The companies that have won out historically don’t have a concept for what that would be. Even if they did, they would know that it would alienate their customers if they made it into a product.

Doug Engelbart built upon the same ideas that Nelson discussed to try to achieve a higher goal: to improve the effectiveness of groups in pursuing knowledge and figuring things out. The way in which he tried to do this was to use a computer to take the complexity of an issue and make it clear enough so we could understand it more fully than we otherwise would. His ultimate goal was to create a systemic process for improvement of the group’s effectiveness (ie. a process to improve the group’s improvement process) in understanding information and carrying on constructive arguments about it. What’s kind of a mind-bender is he applied this same principle of group improvement to the process of learning how to more fully understand and create NLS itself!

An idea I’m giving short shrift here (undeservedly) is the “bootstrapping” concept that Engelbart talked about. I have talked about it some in a previous post. I’ve had a feeling for a while now that there’s something very powerful about it, but I have not come to completely understand it yet. Engelbart explains it some in the video.

Edit 5/18/2010: Christina Engelbart, Doug Engelbart’s daughter, and Executive Director of the Doug Engelbart Institute left a comment, complimenting my post here. I’d like to highlight the post she wrote on her blog, called “Collective IQ”, which she says was inspired by mine here. Gosh, I’m flattered. :) Anyway, be sure to give her article a read. She goes more into the subject of augmenting the human intellect than I did here.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

My first instinct to hearing this news (h/t to Bill Kerr) was, “About friggin time!” Here’s a permalink to Bill’s post on it.

Google discovered recently that some of its servers, as well as the servers at 34 other companies were attacked in a sophisticated cracking campaign originating in China. As far as Google’s services were concerned, the attacks seemed to be targeted at trying to access the e-mails of Chinese human rights activists, and Google’s intellectual property. The attack on the former failed, but the attack on the latter apparently succeeded. Google announced after this discovery that it is removing censorship measures on google.cn, their Chinese search service, and they acknowledged that they are facing the prospect of being forced to leave China altogether. Wow! Now, I understand that this was discussed as a business decision, probably from a security standpoint, but I think that this burnishes Google’s image, nevertheless, of “not being evil”. China’s government and business environment are not compatible with Google’s corporate culture. This isn’t the first time that Google has gotten harassed, apparently. The conflicts with the Chinese government have gone on a long time, partly, Google suspects, at the behest of its competitors.

Here’s a link to video of a news segment on this on the News Hour with Jim Lehrer.

Ethan Zuckerman made a good point that Google was blamed for moving into China and agreeing to their censorship guidelines, but they’ve been less stringent on internet communications, and have been more willing to do things the Chinese government doesn’t like, than Google’s competitors, such as Microsoft and Yahoo. The reason they got beat up on more than the others is that Google began with the motto “don’t be evil”. None of their competitors had such a mission statement.

I was originally opposed to Google entering China a few years ago for these reasons. However, apparently Google offered enough openings for human rights activists in China so they could use Google’s services to organize and exert some power in Chinese politics. I hadn’t heard of this until now. It turns out they offered private GMail accounts to Chinese users, based in a U.S. server, and this was one avenue that activists have been using.

Now, these same Chinese activists are worried that Google may be forced to leave, thereby removing a powerful tool they had in advancing their causes. I do feel for these people.

I feel in a strange way after hearing this news that if it took Google continuing the censorship to stay so that Chinese activists would have something that they could continue to use for their causes, then I’d say “bring on the censorship!” It’s better than nothing, and I’m now realizing that this was probably Google’s calculation all along. But I think the jig is up. Probably not even that would repair this situation. As I read about this it felt like the situation with NBC, Conan O’Brien, and the Tonight Show. Basically, “I have to leave, because these bozos want me to do something that will betray my sense of integrity.”

Edit 5-22-2010: I was informed yesterday by Tammy Bruce that despite what some might have heard, Google has not left China. Instead they have relocated to Hong Kong, and have managed to set up what I’d call a “beach head” where they are not censoring their searches. This does not mean that most Chinese have unfettered access to information. From what I hear the Chinese are blocking Google, though my guess is this is not total, or else they would have no choice but to leave entirely.

Read Full Post »

The future of PCs

A while back I wrote a post on the death of the computer chain store, and I speculated a bit on where the PC was going:

The PC business is definitely going through a transition. Somehow I think the future of the PC is your mobile phone…or maybe your TV. It will practically disappear. In some ways this makes sense, but until the I/O interface is figured out so that people can actually use it in a sophisticated way the prospect makes me cringe.

I remember thinking about how the “mobile phone” would take over the PC’s functions. I wish I had written this in my article, because it’s less credible for me to talk about this now. I honestly did think about this at the time. What came to mind was “projection”, that the small computer you would wear would somehow project a screen onto a surface (so that we wouldn’t have to deal with the small screens on mobile phones), detect your finger movements for manipulating objects on the screen (in place of a mouse), and it would project a keyboard onto a surface so that you could type on a keyboard “anywhere”. You wouldn’t have to carry a physical keyboard with you. It would detect all this through one or more cameras. I thought of the “computer you wear” as the phone you carry with you. Well, a young engineer at MIT, Pranav Mistry, came up with such a thing. Only it looks more like a necklace. He calls it “Sixth Sense” (h/t to Tammy Bruce). I’m not taking credit. Obviously thinking of it and implementing it are very different. Implementation takes more skill and effort. Take a look:

Mistry takes it farther than what I had thought of, integrating physical objects and media into the digital world, and vice-versa. It is a further optimization of the idea of computing = digital media, though my hat’s off to Mistry for doing it in a very innovative way that gets us beyond having to use armatures to manipulate digital stuff. Now if we could just integrate programming into this new idiom somehow… Hmmm. Some new ideas are percolating up…

Read Full Post »

Update 8-17-09: I’ve revised this post a bit to clarify some points I made.

I received a request 2-1/2 weeks ago to write a post based on video of a speech that Alan Kay gave at Kyoto University in February, titled “Systems Thinking For Children And Adults.” Here it is. The volume in the first 10 minutes of the video is really low, so you’ll probably need to turn up your volume. The volume in the video gets readjusted louder after that.

On the science of computer science

Kay said what he means by a science of computing is the forward-looking study, understanding, and invention of computing. Will the “science” come to mean something like the other real sciences? Or will it be like library and social science, which means a gathering of knowledge? He said this is not the principled way that physics, chemistry, and biology have been able to revolutionize our understanding of phenomena. Likewise, will we develop a software engineering that is like the other engineering disciplines?

I’ve looked back at my CS education with more scrutiny, and given what I’ve found, I’m surprised that Kay is asking this question. Maybe I’m misunderstanding what he said, but for me CS was a gathering of knowledge a long time ago. The question for me is can it change from that to a real science? Perhaps he’s asking about the top universities.

When I took CS as an undergraduate in the late 80s/early 90s it was clear that some research had gone into what I was studying. All the research was in the realm of math. There was no sense of tinkering with architectures that existed, and very little practice in analyzing it. We were taught to apply a little analysis to algorithms. There was no sense of trying to create new architectures. What we were given was pre-digested analysis of what existed. So it had gotten as far as exposing us to the “TEM” parts (of “TEMS”–Technology, Engineering, Mathematics, Science), but only in a narrow band. The (S)cience was non-existent.

What we got instead is what I’d call “small science” in the sense that we had lots of programming labs where we experimented with our own knowledge of how to write programs that worked; how to use, organize, and address memory; and how to manage complexity in our software. We were given some strategies for doing this, which were taught as catechisms. The labs gave us an opportunity to see where those strategies were most effective. We were sometimes graded on how well we applied them.

We got to experience a little bit of how computers could manipulate symbols, which I thought was real interesting. I wished that there would’ve been more of that.

One of the tracks I took while in college was focused on software engineering, which really focused on project management techniques and rules of thumb. It was not a strong engineering discipline backed by scientific findings and methods.

When I got out into the work world I felt like I had to “spread the gospel,” because what IT shops were doing was ad hoc, worse than the methodologies I was taught. I was bringing them “enlightenment” compared to what they were doing. The nature and constraints of the workplace broke me out of this narrow-mindedness, and not always in good ways.

It’s only been by doing a lot of thinking about what I’ve learned, and my POV of computers, that I’ve been able to see this that I’ve been able to see that what I got out of CS was a gathering of knowledge with some best practices. At the time I had no concept that I was only getting part of the picture even though our CS professors openly volunteered with a wry humor that “computer science is not a science.” They compared the term “computer science” to “social science” in the sense that it was an ill-defined field. There was the expectation that it would develop into something more cohesive, hopefully a real science, later on. Given the way we were taught though, I guess they expected it to develop with no help from us.

Kay has complained previously that the commercial personal computing culture has contributed greatly to the deterioration of CS in academia. I have to admit I was a case in point. A big reason why I thought of CS the way I did was this culture I grew up in. Like I’ve said before, I have mixed feelings about this, because I don’t know if I would be a part of this field at all if the commercial culture he complains about never existed.

What I saw was that people were discouraged from tinkering with the hardware, seeing how it worked, much less trying to create their own computers. Not to say this was impossible, because there were people who tinkered with 8- and 16-bit computers. Of course, as I think most people in our field still know, Steve Wozniak was able to build his own computer. That’s how he and Steve Jobs created Apple. Computer kits were kind of popular in the late 1970s, but that faded by the time I really got into it.

When I used to read articles about modifying hardware there was always the caution about, “Be careful or you could hose your entire machine.” These machines were expensive at the time. There were the horror stories about people who tried some machine language programming and corrupted the floppy disk that had the only copy of their program on it (ie. hours and hours of work). So people like me didn’t venture into the “danger zone.” Companies (except for Apple with the Apple II) wouldn’t tell you about the internals of their computers without NDAs and licensing agreements, which I imagine one had to pay for handsomely. Instead we were given open access to a layer we could experiment on, which was the realm of programming either in assembly or a HLL. There were books one could get that would tell you about memory locations for system functions, and how to manipulate features of the system in software. I never saw discussion of how to create a software computer, for example, that one could tinker with, but then the hardware probably wasn’t powerful enough for that.

By and large, CS fit the fashion of the time. The one exception I remember is that in the CS department’s orientation/introductory materials they encouraged students to build their own computers from kits (this was in the late 1980s), and try writing a few programs, before entering the CS program. I had already written plenty of my own programs, but as I said, I was intimidated by the hardware realm.

My education wasn’t the vocational school setting that it’s turning into today, but it was not as rigorous as it could have been. It met my expectations at the time. What gave me a hint that my education wasn’t as complete as I thought was that opportunities which I thought would be open to me were not available when I looked for employment after graduation. The hint was there, but I don’t think I really got it until a year or two ago.

What would computing as a real science be like?

I attended the 2009 Rebooting Computing summit on CS education in January, and one of the topics discussed was what is the science of computer science? In my opinion it was the only topic brought up there that was worth discussing at that time, but that’s just me. The consensus among the luminaries that participated was that historically science has always followed technology and engineering. The science explains why some engineering works and some doesn’t, and it provides boundaries for a type of engineering.

We asked the question, “What would a science of computing look like?” Some CS luminaries used an acronym “TEMS” (Technology, Engineering, Mathematics, Science), and there seemed to be a deliberate reason why they had those terms in that order. In other circles it’s often expressed as “STEM.” Technology is developed first. Some engineering gets developed from patterns that are seen (best practices). Some math can be derived from it. Then you have something you can work with, experiment with, and reason about–science. The part that’s been missing from CS education is the science itself: experimentation, an interest and proclivity to get into the guts of something and try out new things with whatever–the hardware, the operating system, a programming language, what have you–just because we’re curious. Or, we see that what we have is inadequate and there’s a need for something that addresses the problem better.

Alan Kay participated in the summit and gave a description of a computing science that he had experienced at Xerox PARC. They studied existing computing artifacts, tried to come up with better architectures that did the same things as the old artifacts, and then applied the new architectures to “everything else.” I imagine that this would test the limits of the architecture, and provide more avenues for other scientists to repeat the process (take an artifact, create a new architecture for it, “spread it everywhere”) and gain more improvement.

(Update 12-14-2010: I added the following 3 paragraphs after finding Dan Ingalls’s “Design Principles Behind Smalltalk” article. It clarifies the idea that a science of computing was once attempted.)

Dan Ingalls gave a brief description of a process they used at Xerox to drive their innovative research, in “Design Principles Behind Smalltalk,” published in Byte Magazine in 1981:

Our work has followed a two- to four-year cycle that can be seen to parallel the scientific method:

  • Build an application program within the current system (make an observation)
  • Based on that experience, redesign the language (formulate a theory)
  • Build a new system based on the new design (make a prediction that can be tested)

The Smalltalk-80 system marks our fifth time through this cycle.

This parallels a process that was once described to me in computer science, called “bootstrapping”: Building a language and system “B” from a “lower form” language and system “A”. What was unique here was they had a set of overarching philosophies they followed, which drove the bootstrapping process. The inventors of the C language and Unix went through a similar process to create those artifacts. Each system had different goals and design philosophies, which is reflected in their design.

To give you a “starter” idea of what this process is like, read the introduction to Design Patterns, by Gamma, Helm, Johnson, and Vlissides, and take note of how they describe coming up with their patterns. Then notice how widely those patterns have been applied to projects that have nothing to do with what the Gang of Four originally created with the patterns they came up with. The exception here is the Gang of Four didn’t redesign a language as part of their process. They invented a terminology set, and a concept of coding patterns that are repeatable. They established architectural patterns to use within an existing language. The thing is, if they had explored what was going on with the patterns mathematically, they might very well have been able to formulate a new architecture that encompassed the patterns they saw, which if successful, would’ve allowed them to create a new language.

The problem in our field is illustrated by the fact that more often than not, there’s been no study of the other technologies where these patterns have been applied. When the Xerox Learning Research Group came up with Smalltalk (object-orientation, late-binding, GUI), Alan Kay expected that others would use the same process they did to improve on it, but instead people either copied OOP into less advanced environments and then used them to build practical software applications, or they built applications on top of Smalltalk. It’s just as I described with my CS education: The strategies get turned into a catechism by most practitioners. Rather than studying our creations, we’ve just kept building upon and using the same frameworks, and treating them with religious reverence–we dare not change them lest we lose community support. Instead of looking at how to improve upon the architecture of Smalltalk, people adopted OOP as a religion. This happened and continues to happen because almost nobody in the field is being taught to apply mathematical and scientific principles to computing (except in the sense of pursuing proofs of computability), and there’s little encouragement from funding sources to carry out this kind of research.

There are degrees of scientific thinking that software developers use. One IT software house where I worked for a year used patterns on a regular basis that we created ourselves. We understood the essential idea of patterns, though we did not understand the scientific principles Kay described. Everywhere else I worked didn’t use design patterns at all.

There has been more movement in the last few years to break out of the confines developers have been “living” in; to try and improve upon fundamental runtime/VM architecture, and build better languages on top of it. This is good, but in reality most of it has just recapitulated language features that were invented decades ago through scientific approaches to computing. There hasn’t been anything dramatically new developed yet.

The ignorance we ignore

“What is the definition of ignorance and apathy?”

“I don’t know, and I don’t care.”

A twentieth century problem is that technology has become too “easy”. When it was hard to do anything whether good or bad, enough time was taken so that the result was usually good. Now we can make things almost trivially, especially in software, but most of the designs are trivial as well.

— Alan Kay, The Early History of Smalltalk

A fundamental problem with our field is there’s very little appreciation for good architecture. We keep tinkering with old familiar structures, and produce technologies that are marginally better than what came before. We assume that brute force will get us by, because it always has in the past. This is ignoring a lot. One reason that brute force has been able to work productively in the past is because of the work of people who did not use brute force, creating: functional programming, interactive computing, word processing, hyperlinking, search, semiconductors, personal computing, the internet, object-oriented programming, IDEs, multimedia, spreadsheets, etc. This kind of research went into decline after the 1970s and has not recovered. It’s possible that the brute force mentality will run into a brick wall, because there will be no more innovative ideas to save it from itself. A symptom of this is the hand-wringing I’ve been hearing about for a few years now about how to leverage multiple CPU cores, though Kay thinks this is the wrong direction to look in for improvement.

There’s a temptation to say “more is better” when you run into a brick wall. If one CPU core isn’t providing enough speed, add another one. If the API is not to your satisfaction, just add another layer of abstraction to cover it over. If the language you’re using is weak, create a large API to give it lots of functionality and/or a large framework to make it easier to develop apps. in it. What we’re ignoring is the software architecture (all of it, including the language(s), and OS), and indeed the hardware architecture. These are the two places where we put up the greatest resistance to change. I think it’s because we acknowledge to ourselves that the people who make up our field by and large lack some basic competencies that are necessary to reconsider these structures. Even if we had the competencies nobody would be willing to fund us for the purpose of reconsidering said structures. We’re asked to build software quickly, and with that as the sole goal we’ll never get around to reconsidering what we use. We don’t like talking about it, but we know it’s true, and we don’t want to bother gaining those competencies, because they look hard and confusing. It’s just a suspicion I have, but I think An understanding of mathematics and the scientific outlook is important for all this essential to the process of invention in computing. We can’t get to better architectures without it. Nobody else seems to mind the way things are going. They accept it. So there’s no incentive to try to bust through some perceptual barriers to get to better answers, except the sense that some of us have that what’s being done is inadequate.

In his presentation in the video, Kay pointed out the folly of brute force thinking by showing how humungous software gets with this approach, and how messy the software is architecturally. He said that the “garbage dump” that is our software is tolerated because most people can’t actually see it. Our perceptual horizons are so limited that most people can only comprehend a piece of the huge mess, if they’re able to look at it. In that case it doesn’t look so bad, but if we could see the full expanse, we would be horrified.

This clarifies what had long frustrated me about IT software development, and I’m glad Kay talked about it. I hated the fact that my bosses often egged me on towards creating a mess. They were not aware they were doing this. Their only concern was getting the computer to do what the requirements said in the quickest way possible. They didn’t care about the structure of it, because they couldn’t see it. So to them it was irrelevant whether it was built well or not. They didn’t know the difference. I could see the mess, at least as far as my project was concerned. It eventually got to the point that I could anticipate it, just from the way the project was being managed. So often I wished that the people managing me or my team, and our customers, could see what we saw. I thought that if they did they would recognize the consequences of their decisions and priorities, and we could come to an agreement about how to avoid it. That was my “in my dreams” wish.

Kay said, “Much of the applications we use … actually take longer now to load than they did 20 years ago.” I’ve read about this (h/t to Paul Murphy). (Update 3-25-2010: I used to have video of this, but it was taken down by the people who made it. So I’ll just describe it.) A few people did a side-by-side test of a 2007 Vista laptop with a dual-core Intel processor (I’m guessing 2.4 Ghz) and 1 Gig. RAM vs. a Mac Classic II with a 16 Mhz Motorola 68030 and 2 MB RAM. My guess is the Mac was running a SCSI hard drive (the only kind you could install on a Mac when they were made back then). I didn’t see them insert a floppy disk. They said in the video that the Mac is “1987 technology.” Even though the Mac Classic II was introduced in 1991, they’re probably referring to the 68030 CPU it uses, which came out in 1987.

The tasks the two computers were given were to boot up, load a document into a word processor, quit out of the word processor, and shut down the machine. The Mac completed the contest in 1 minute, 42 seconds, 25% faster than the Vista laptop, which took 2 minutes, 17 seconds. Someone else posted a demonstration video in 2009 of a Vista desktop PC which completed the same tasks in 1 minute, 18 seconds–23% faster than the old Mac. I think the difference was that the laptop vs. Mac demo likely used a slower processor for the laptop (vs. the 2009 demo), and probably a slower hard drive. The thing is though, it probably took a 4 Ghz dual-processor (or quad core?) computer, faster memory, and a faster hard drive to beat the old Mac. To be fair, I’ve heard from others that the results would be much the same if you compared a modern Mac to the old Mac. The point is not which platform is better. It’s that we’ve made little progress in responsiveness.

The wide gulf between the two pieces of hardware (old Mac vs. Vista PC) is dramatic. The hardware got about 15,000-25,000% faster via. Moore’s Law (though Moore’s Law only applied to transistors, not speed), but we have not seen a commensurate speed up in system responsiveness. In some cases the newer software technology is slower than what existed 22 years ago.

When Kay has elaborated on this in the past he’s said this is also partly due to the poor hardware architecture which was adopted by the microprocessor industry in the 1970s, and which has been marginally improved over the years. Quoting from an interview with Alan Kay in ACM Queue in 2004:

Neither Intel nor Motorola nor any other chip company understands the first thing about why that architecture was a good idea [referring to the Burroughs B5000 computer].

Just as an aside, to give you an interesting benchmark—on roughly the same system, roughly optimized the same way, a benchmark from 1979 at Xerox PARC runs only 50 times faster today. Moore’s law has given us somewhere between 40,000 and 60,000 times improvement in that time. So there’s approximately a factor of 1,000 in efficiency that has been lost by bad CPU architectures.

The myth that it doesn’t matter what your processor architecture is—that Moore’s law will take care of you—is totally false.

Another factor is the configuration and speed of main and cache memory. Cache is built into the CPU, is directly accessed by it, and is very fast. Main memory has always been much slower than the CPU in microcomputers. The CPU spends the majority of its time waiting for memory, or data to stream from a hard drive or internet connection, if the data is not already in cache. This has always been true. It may be one of the main reasons why no matter how fast CPU speeds have gotten the user experience has not gotten commensurately more responsive.

The revenge of data processing

The section of Kay’s speech where he talks about “embarrassing questions” from his wife (the slide is subtitled “Two cultures in computing”) gets to a complaint I’ve had for a while now. There have been many times while I’m writing for this blog when I’ve tried to “absent-mindedly” put the cursor somewhere on a preview page and start editing, but then realize that the technology won’t let me do it. You can always tell when a user interaction issue needs to be addressed when your subconscious tries to do something with a computer and it doesn’t work.

Speaking about her GUI apps. his wife said, “In these apps I can see and do full WYSIWYG authoring.” She said about web apps., “But with this stuff in the web browser, I can’t–I have to use modes that delay seeing what I get, and I have to start guessing,” and, “I have to edit through a keyhole.” He said what’s even more embarrassing is that the technology she likes was invented in the 1970s (things like word processing and desktop publishing in a GUI with WYSIWYG–aspects of the personal computing model), whereas the stuff she doesn’t like was invented in the 1990s (the web/terminal model). Actually I have to quibble a bit with him about the timeline.

“The browser = next generation 3270 terminal”
3270 terminal image from Wikipedia.org

The technology she doesn’t like–the interaction model–was invented in the 1970s as well. Kay mentioned 3270 terminals earlier in his presentation. The web browser with its screens and forms is an extension of the old IBM mainframe batch terminal architecture from the 1970s. The difference is one of culture, not time. Quoting from the Wikipedia article on the 3270:

[T]he Web (and HTTP) is similar to 3270 interaction because the terminal (browser) is given more responsibility for managing presentation and user input, minimizing host interaction while still facilitating server-based information retrieval and processing.

Applications development has in many ways returned to the 3270 approach. In the 3270 era, all application functionality was provided centrally. [my emphasis]

It’s true that the appearance and user interaction with the browser itself has changed a lot from the 3270 days in terms of a nicer presentation (graphics and fonts vs. green-screen text), and the ability to use a mouse with the browser UI (vs. keyboard-only with the 3270). It features document composition, which comes from the GUI world. The 3270 did not. Early on, a client scripting language was added, Javascript, which enabled things to happen on the browser without requiring server interaction. The 3270 had no scripting language.

There’s more freedom than the 3270 allowed. One can point their browser anywhere they want. A 3270 was designed to be hooked up to one IBM mainframe, and the user was not allowed to “roam” on other systems with it, except if given permission via. mainframe administration policies. What’s the same, though, is the basic interaction model of filling in a form on the client end, sending that information to the server in a batch, and then receiving a response form.

The idea that Kay brought to personal computing was immediacy. You immediately see the effect of what you are doing in real time. He saw it as an authoring platform. The browser model, at least in its commercial incarnation, was designed as a form submission and publishing platform.

Richard Gabriel wrote extensively about the difference between using an authoring platform and a publishing platform for writing, and its implications from the perspective of a programmer, in The Art of Lisp and Writing. The vast majority of software developers work in what is essentially a “publishing” environment, not an authoring environment, and this has been the case for most of software development’s history. The only time when most developers got closer to an authoring environment was when Basic interpreters were installed on microcomputers, and it became the most popular language that programmers used. The old Visual Basic offered the same environment. The interpreter got us closer to an authoring environment, but it still had one barrier: you either had to be editing code, or running your program. You could not do both at the same time, but there was less of a wait to see your code run because there was no compile step. Unfortunately with the older Basics, the programmer’s power was limited.

People’s experience with the browser has been very slowly coming back towards the idea of authoring via. the AJAX kludge. Kay showed a screenshot of a more complete authoring environment inside the browser using Dan Ingalls’s Lively Kernel. It looks and behaves a lot like Squeak/Smalltalk. The programming language within Lively is Javascript.

We’ve been willing to sacrifice immediacy to get rid of having to install apps. on PCs. App. installation is not what Kay envisioned with the Dynabook, but that’s the model that prevailed in the personal computer marketplace. You know you’ve got a problem with your thinking if you’re coming up with a bad design to compensate for past design decisions that were also bad. The bigger problem is that our field is not even conscious that the previous bad design was avoidable.

Kay said, “A large percentage of the main software that a lot of people use today, because it’s connected to the web, is actually inferior to stuff that was done before, and for no good reason whatsoever!”

I agree with him, but there are people who would disagree on this point. They are not enlightened, but they’re a force to be reckoned with.

What’s happened with the web is the same thing that happened to PCs: The GUI was seen as a “good idea” and was grafted on to what has been essentially a minicomputer, and then a mainframe mindset. Blogger Paul Murphy used to write, from a business perspective, about how there are two cultures in computing/IT that have existed for more than 100 years. The oldest culture that’s operated continuously throughout this time is data processing. This is the culture that brought us punch cards, mainframes, and 3270 terminals. It brought us the idea that the most important function of a computer system is to encode data, retrieve it on demand, and produce reports from automated analysis. The other culture is what Murphy called “scientific computing,” and it’s closer to what Kay promotes.

The data processing culture has used web applications to recapitulate the style of IT management that existed 30 years ago. Several years ago, I heard from a few data processing believers who told me that PCs had been just a fad, a distraction. “Now we can get back to real computing,” they said. The meme from data processing is, “The data is more important than the software, and the people.” Why? Because software gets copied and devalued. People come and go. Data is what you’ve uniquely gathered and can keep proprietary.

I think this is one reason why CS enrollment has fallen. It’s becoming dead like Latin. What’s the point of going into it if the knowledge you learn is irrelevant to the IT jobs (read “most abundant technology jobs”) that are available, and there’s little to no money going into exciting computing research? You don’t need a CS degree to create your own startup, either. All you need is an application server, a database, and a scripting/development platform, like PHP. Some university CS departments have responded by following what industry is doing in an effort to seem relevant and increase enrollment (ie. keep the department going). The main problem with this strategy is they’re being led by the nose. They’re not leading our society to better solutions.

What’s natural and what’s better

Kay tried to use some simple terms for the next part of his talk to help the audience relate to two ideas:

He gave what I think is an elegant graphical representation of one of the reasons things have turned out the way they have. He talked about modes of thought, and said that 80% of people are outer-directed and instrumental reasoners. They only look at ideas and tools in the context of whether it meets their current goals. They’re very conservative, seeking consensus before making a change. Their goals are the most important thing. Tools and ideas are only valid if they help meet these goals. This mentality dominates IT. Some would say, “Well, duh! Of course that’s the way they think. Technology’s role in IT is to automate business processes.” That’s the kind of thinking that got us to where we are. As Paul Murphy has written previously, the vision of “scientific computing,” as he calls it, is to extend human capabilities, not replace/automate them.

Kay said that 1% of people look at tools and respond to them, reconsidering their goals in light of what they see as the tool’s potential. This isn’t to say that they accept the tool as it’s given to them, and adjust their goals to fit the limitations of that version of the tool. Rather, they see its potential and fashion the tool to meet it. Think about Lively Kernel, which I mentioned above. It’s a proof of this concept.

There’s a symbiosis that takes place between the tool and the tool user. As the tool is improved, new ideas and insights become more feasible, and so new avenues for improvement can be explored. As the tool develops, the user can rethink how they work with it, and so improve their thinking about processes. As I’ve thought about this, it reminds me of how Engelbart’s NLS developed. The NLS team called it “bootstrapping.” It led to a far more powerful leveraging of technology than the instrumental approach.

The “80%” dynamic Kay described happened to NLS. Most people didn’t understand the technology, how it could empower them, and how it was developed. They still don’t. In fact Engelbart is barely known for his work today. Through the work that was done in the early days of Xerox PARC, a few of his ideas managed to get into technology that we’ve used over the years. He’s most known now for the invention of the mouse, but he did much more than that.

In the instrumental approach the goals precede the tools, and are actually much more conservative than the approach of the 1-percenters. In the instrumental scenario the goals people have are similar whether the tools exist or not, and so there’s no potential for this human-tool interaction to provide insight into what might be better goals.

Kay talked about this subject at Rebooting Computing, and I think he said that a really big challenge in education is to get students to shift from the “80%” mindset to one of the other modes of thought that have to do with deep thinking, at least exposing students to this potential within themselves. I think he would say that we’re not predisposed to only think one way. It’s just that left to our own devices we tend to fall into one of these categories.

I base the following on the notes Kay had on his slides in his speech:

He said that in the commercial computing realm (which is based on the way mainframes were sold to the public years ago) it’s about “news”: The emphasis is on functionality, and people as components. This approach also says you get your hardware, OS, programming language, tools, and user interface from a vendor. You should not try to make your own. This sums up the attitude of IT in a nutshell. It’s not too far from the mentality of CS in academia, either.

The “new” in the 1970s was a focus on the end-user and whether what they can learn and do. “We should design how user interactions and learning will be done and work our way down to the functions they need!” In other words, rather than thinking functionality-first, think user-first–in the context of the computer being a new medium, extending human capabilities. Aren’t “functionality” and “user” equally high priorities? Users just want functionality from computers, don’t they? Ask yourself this question: Is a book’s purpose only to provide functionality? The idea at Xerox PARC was to create a friendly, inviting, creative environment that could be explored, built on, and used to create a better version of itself–an authoring platform, in a very deep sense.

Likewise, with Engelbart’s NLS, the idea was to create an information sharing and collaboration environment that improved how groups work together. Again, the emphasis was on the interaction between the computer and the user. Everything else was built on that basis.

By thinking functionality-first you turn the computer into a device, or a device server, speaking metaphorically. You’re not exposing the full power of computing to the user. I’m going to use some analogies which Chris Crawford has written about previously. In the typical IT mentality this is the idea. It’s too dangerous to expose the full power of computing to end users, so the thinking goes. They’ll mess things up either on purpose or by mistake. Or they’ll steal or corrupt proprietary information. Such low expectations… It’s like they’re children or illiterate peasants who can’t be trusted with the knowledge of how to read or write. They must be read to aloud rather than reading for themselves. Most IT environments believe that they cannot be allowed to write, for they are not educated enough to write in the computer’s complex language system (akin to hieroglyphics). Some allow their workers to do some writing, but in limited, and not very expressive languages. This “limits their power to do damage.” If they were highly educated, they wouldn’t be end users. They’d be scribes, writing what others will hear. Further, these “illiterates” are never taught the value of books (again, using a metaphor). They are only taught to believe that certain tomes, written by “experts” (scribes), are of value. It sounds Medieval if you ask me. Not that this is entirely IT’s fault. Computer science has fallen down on the job by not creating better language systems, for one thing. Our whole educational/societal thought structure also makes it difficult to break out of this dynamic.

The “news” way of thinking has fit people into specialist roles that require standardized training. The “new” emphasized learning by doing and general “literacy.”

We’re in danger of losing it

Everyone interested in seeing what the technology developed at ARPA and Xerox PARC (the internet, personal computing, object-oriented programming) was intended to represent should pay special attention to the part of Kay’s speech titled “No Gears, No Centers: ARPA/PARC Outlook.” Kay told me about most of this a couple years ago, and I incorporated it into a guest post I wrote for Paul Murphy’s blog, called “The tattered history of OOP” (see also “The PC vision was lost from the get-go”). Kay shows it better in his presentation.

I think the purpose of Kay’s criticism of what exists now is to point out what we’ve lost, and continue to lose. Since our field doesn’t understand the research that created what we have today, we’ve helplessly taken it for granted that what we have, and the method of conservative incremental improvement we’ve practiced, will always be able to handle future challenges.

Kay said that because of what he’s seen with the development of the field of computing, he doesn’t believe what we have in computer science is a real field. And we are in danger of losing altogether any remnants of the science that was developed decades ago. This is because it’s been ignored. The artifacts that are based on that research are all around us. We use them every day, but the vast majority of practitioners don’t understand the principles and outlook that made it possible to create them. This isn’t a call to reinvent the wheel, but rather a qualitative statement: We’re losing the ability to make the kind of leap that was made in the 1970s, to go beyond what that research has brought us. In fact, in Kay’s view, we’re regressing. The potential scenario he paints reminds me of the science fiction stories where people use a network of space warping portals for efficient space travel and say, “We don’t know who built it. They disappeared a long time ago.”

I think there are three forces that created this problem:

The first was the decline in funding for interesting and powerful computing research. What’s become increasingly clear to me from listening to CS luminaries, who were around when this research was being done, is that the world of personal computing and the internet we have today is an outgrowth–you could really say an accident–of defense funding that took place during the Cold War–ARPA, specifically research funded by the IPTO (the Information Processing Techniques Office). This isn’t to say that ARPA was like a military operation. Far from it. When it started, it was staffed by academics and they were given a wide berth in which to do their research on computing. An important ingredient of this was the expectation that researchers would come up with big ideas, ones that were high risk. We don’t see this today.

The reason this computing research got as much funding as it did was due to the Sputnik launch. This got Americans to wake up to the fact that mathematics, science, and engineering were important, because of the perception that they were important for the defense of the country. The U.S. knew that the Soviets had computer technology they were using as part of their military operations, and the U.S. wanted to be able to compete with them in that realm.

In terms of popular perception, there’s no longer a sense that we need technical supremacy over an enemy. However, computing is still important to national defense, even taking the war against Al Qaeda into account. A few defense and prominent technology leaders in the know have said that Al Qaeda is a very early adopter of new technologies, and an innovator in their use for their own ends.

In 1970 computing research split into part government-funded and part private, with some ARPA researchers moving to the newly created PARC facility at Xerox. This is where they created the modern form of personal computing, some aspects of which made it into the technologies we’ve been using since the mid-1980s. The groundbreaking work at PARC ended in the early 1980s.

The second force, which Kay identified, was the rise of the commercial market in PCs. He’s said that computers were introduced to society before we were ready to understand what’s really powerful about them. This market invited us in, and got us acquainted with very limited ideas about computing and programming. We went into CS in academia with an eye towards making it like Bill Gates (never mind that Gates is actually a college drop-out), and in the process of trying to accommodate our limited ideas about computing, the CS curriculum was dumbed down. I didn’t go into CS for the dream of becoming a billionaire, but I had my eye on a career at first.

It’s been difficult for universities in general to resist this force, because it’s pretty universal. The majority of parents of college-bound youth have believed for decades that a college degree means a secure economic future–meaning a job, a career that pays well. It’s not always true, but it’s believed in our culture. This sets expectations for universities to be career “launching pads” and centers for social networking, rather than institutions that develop a student’s faculties, their ability to think, and expose them to high level perspectives to improve their perception.

The third force is, as Paul Murphy wrote, the imperative of IT since the earliest days of the 20th century, which is to use technology to extend and automate bureaucracy. I don’t see bureaucracy as a totally bad thing. I think of Alexander Hamilton’s quote about public debt, rephrased as, “A bureaucracy, if not excessive, will be to us a blessing.” However, in its traditional role it creates and follows rules and procedures formulated in a hierarchy. There’s accountability for meeting directives, not broad goals. Its thinking is deterministic and algorithmic. IT, being traditionally a bureaucratic function, models this (we should be asking ourselves, “Does it have to be limited to this?”) My sense of it is CS responded to the economic imperatives. It felt the need to lean towards what industry was doing, and how it thinks. The way it tried to add value was by emphasizing optimization strategies. The difference was it used to have a strong belief in staying true to some theoretical underpinnings, which somewhat counter-balanced the strong pull from industry. That resolve is slipping.

Kay and I have talked a little about math and science education. He said that our educational system has long viewed math and science as important, and so these subjects have always been taught, but our school system hasn’t understood their significance. So the essential ideas of both tend to get lost. What the computer brings to light as a new medium is that math (as mathematicians understand it, not how it’s typically taught) and science are essential for understanding computing’s potential. They are foundations for a new literacy. Without this perspective, and the general competencies in math and science to support it, both students and universities will likely continue the status quo.

Outlook: The key ingredient

Kay’s focus on outlook really struck me, because we have such an emphasis in our society on knowledge and IQ. My view of this has certainly evolved as I’ve gotten into my studies.

Whenever you interview for a job in the IT industry you get asked about your knowledge, and maybe some questions that probe your management skills. In technology companies that actually invent stuff you are probed for your mental faculties, particularly at tech companies that are known as “where the tech whizzes work.” I had an interview 5 years ago with a software company where the employer gave me something that resembled an IQ test. I have not seen nor heard of a technology company that asks questions about one’s outlook.

Kay said,

What outlook does is give you a stronger way of looking at things, by changing your point of view. And that point of view informs every part of you. It tells you what kind of knowledge to get. And it also makes you appear to be much smarter.

Knowledge is ‘silver,’ but outlook is ‘gold.’ I dare say [most] universities and most graduate schools attempt to teach knowledge rather than outlook. And yet we live in a world that has been changing out from under us. And it’s outlook that we need to deal with that. And in contrast to these two, IQ is just a big lump of lead. It’s one of the worst things in our field that we have clever people in it, because like Leonardo [da Vinci] none of us is clever enough to deal with the scaling problems that we’re dealing with. So we need to be less clever and be able to look at things from better points of view.

This is truly remarkable! I have never heard anyone say this, but I think he may be right. All of the technology that has been developed, that has been used by millions of people, and has been talked about lo these many years was created by very smart people. More often than not what’s been created, though, has reflected a limited vision.

Given how society’s perception of computing has been, I doubt Kay’s vision of human-computer interaction would’ve been able to fly in the commercial marketplace, because as he’s said, we weren’t ready for it. In my opinion it’s even less ready for it now. But certainly the internal and networked computing vision that was developed at PARC could’ve been implemented in machines that the consuming public could’ve purchased decades ago. I think that’s where one could say, “You had your chance, but you blew it.” Vendors didn’t have the vision for it.

What’s needed in the future

One of Kay’s last slides referred to Marvin Minsky. I am not familiar with Minsky, and I guess I should be. He said that in terms of software we need to move from a “biology of systems” (architecture) to a “psychology of systems” (which I’m going to assume for the moment means “behavior”). I don’t really know about this, so I’m just going to leave it at that.

In a chart titled “Software Has Fallen Short” Kay made a clearer case than he has in the past for not idolizing the accomplishments that were made at ARPA/Xerox PARC. In the past he’s tried to discourage people from getting too excited about the PARC stuff, in some cases downplaying it as if it’s irrelevant. He’s always tried to get people to not fall in love with it too much, because he wanted people to improve upon it. He used to complain that the Lisp and Smalltalk communities thought that these languages were the greatest thing, and didn’t dream of creating anything better. Here he explains why it’s important to think beyond the accomplishments at PARC: It’s insufficient for what’s needed in the future. In fact the research is so far behind that the challenges are getting ahead of what the current best research can deal with.

He said that the PARC stuff is now “news,” and my guess is he means “it’s been turned into news.” He talked about this earlier in the speech. The essential ideas that were developed at PARC have not made it into the computing culture, with the exception of the internet and the GUI. Instead some of the “new” ideas developed there have been turned into superficial “news.”

Those who are interested in thinking about the future will find the slide titled “Simplest Idea” interesting. Kay threw out some concepts that are food for thought.

A statement that Kay closed with is one he’s mentioned before, and it depresses me. He said that when he’s traveled around to universities and met with CS professors, they think what they’ve got “is it.” They think they’re doing real science. All I can do is shake my head in disbelief at that. Even my CS professors understood that what they were teaching was not a science. For the most part what’s passing for CS now is no better than what I had–excepting the few top schools.

Likewise, I’ve heard accounts saying that there are some enterprise software leaders who (mistakenly) think they understand software engineering, and that it’s now a fully mature engineering discipline.

Coming full circle

Does computer science have a future? I think as before, computing is going to be at the mercy of events, and people’s emotional perceptions of computing’s importance. This is because the vast majority of people don’t understand what computing’s potential is. Today we see it as “current” not “future.” I think that people’s perception of computing will become more remote. Computing will be in devices we use every day, as we can see today, and we will see them as digital devices, where they used to be analog.

“Digital” has become the new medium, not computing. Computing has been overlayed with analog media (text, graphics, audio, video). Kay has said for a while now that this is how it is with new media. When it arises, the generation that’s around doesn’t see its potential. They see it as the “new old thing” and they just use it to optimize what they did before. Computing for now is just the magical substrate that makes “digital” work. The essential element that makes computing powerful and dynamic has been pushed to the side, with a couple of exceptions, as it often has been.

Kay didn’t talk about this in the video, but he and I have discussed this previously. There used to be a common concept in computing, which has come to be called “generative technology.” It used to be a common expectation that digital technology was open ended. You could do with it what you wanted. This idea has been severely damaged by the way that the web has developed. First, commercial PCs, which were designed to be used alone and in LANs, were thrust upon the internet using native code and careless programming, which didn’t anticipate security risks. In addition, identities became more loosely managed, and this became a problem as people figured out how to hide behind pseudonyms. Secondly, the web browser wasn’t designed initially as a programmable medium. A scripting language was added to browsers, but it was not made accessible through the browser. The scripting language was not designed too well, either.

Many security catastrophes ensued, each eroding people’s confidence in the safety of the internet, and the image of programming. People who didn’t know how to program, much less how the web worked, felt like they were the victims of those who did know how to program (though this went all the way back to stand-alone PCs as well when mischievous and destructive viruses circulated around in infected executables on BBSes and floppy disks). Programming became seen as a suspicious activity, rather than a creative one. And so as vendors put up defensive barriers to try to compensate for their own flawed designs, it only reinforced the initial design decision that was made when the commercial browser was conceived: that programming would be restricted to people who worked for service providers. Ordinary users should neither expect to gain access to code to modify it, nor want to. It’s gotten to the point we see today where even text formatting on message boards is restricted. HTML tags are restricted or banned altogether in favor of special codes, and you can’t use CSS at all. Programming by the public on websites is usually forbidden, because it’s seen as a security risk. And most web operators don’t see the value of letting people program on their site.

Kay complained that despite the initial idealistic visions of how the internet would develop, it’s still difficult or impossible to send a simulation to somebody on a message board, or through e-mail, to show the framework for a concept. What I think he had envisioned for the internet is a multimedia environment in which people could communicate in all sorts of media: text, graphics, audio, video, and simulations–in real time. Specialized software has made this possible using services you can pay for, but it’s still not something that people can universally access on the internet.

To get to the future we need to look at the world differently

I agree with the sentiment that in order to make the next leaps we need to not accept the world as it appears. We have to get out of what we think is the current accepted reality, what we’ve put up with and gotten used to, and look at what we want the world to be like. We should use that as inspiration for what we do next. One strategy to get that started might be to look at what we find irritating about what currently exists, what we would like to see changed, and think about it from a fundamental, structural perspective. What are some things you’ve tried to do, but given up on, because when you tried to use the tools or resources available they just weren’t up to the task? What sort of technology (perhaps a kind that doesn’t exist yet) do you think would do the job?

For further reading/exploring:

A complete system (apps. and all) in 20KLOC – Viewpoints Research

Demonstration of Lively Kernel, by Dan Ingalls

Edit 8-21-2009: A reader left a comment to an old post I wrote on Lisp and Dijkstra, quoting a speech of Dijkstra’s from 10 years ago, titled “Computing Science: Achievements and Challenges.” Towards the end of his speech he bemoaned the fact that CS in academia, and industry in the U.S. had rejected the idea of proving program correctness. He attributed this to an increasing mathematical illiteracy here. I think his analysis of cause and effect is wrong. My own CS professors liked the discipline that proofs of program correctness provided, but they rejected the idea that all programs can and should be proved correct. Dijkstra held the view that CS should only focus on programs that could be proved correct.

I think Dijkstra’s critique of anti-intellectualism in the U.S. is accurate, however, including our aversion to mathematics, and I found that it answered some questions I had about what I wrote above. It also gets to the heart of one of the issues I harp on repeatedly in my blog. His third bullet point is most prescient. Quoting Dijkstra:

  • The ongoing process of becoming more and more an amathematical society is more an American specialty than anything else. (It is also a tragic accident of history.)
  • The idea of a formal design discipline is often rejected on account of vague cultural/philosophical condemnations such as “stifling creativity”; this is more pronounced in the Anglo-Saxon world where a romantic vision of “the humanities” in fact idealizes technical incompetence. Another aspect of that same trait is the cult of iterative design.
  • Industry suffers from the managerial dogma that for the sake of stability and continuity, the company should be independent of the competence of individual employees. Hence industry rejects any methodological proposal that can be viewed as making intellectual demands on its work force. Since in the US the influence of industry is more pervasive than elsewhere, the above dogma hurts American computing science most. The moral of this sad part of the story is that as long as computing science is not allowed to save the computer industry, we had better see to it that the computer industry does not kill computing science. [my emphasis]

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

I’ve been coming across videos lately that get more into the creative ideas that inspired research projects which were out of this world for their time, and give me feelings of inadequacy even today.

Two anniversaries happened in November 2008. One was the 40th anniversary of the idea of the Dynabook. The other was the 40th anniversary of Douglas Engelbart’s NLS demo.

Alan Kay – the Dynabook concept, 1968

Alan Kay gave a historical background on the ideas that led to the Dynabook concept. It’s 1 hour, 44 minutes.

Douglas Engelbart – NLS demo, 1968

Alan Kay and Andy van Dam met to discuss the significance of Engelbart’s work, and what still needs to be done, at the Program for the Future conference. It’s 1 hour, 26 minutes, and it’s a great talk.

Here is a collection of video clips of the 40th anniversary event for the NLS demo, held by the Stanford Research Institute (SRI). The original members of the NLS development team were in attendance to talk about the experience of building this amazing system. They give more details about how it was constructed. One of Engelbart’s daughters, Christina, talks about the conceptual framework her father implemented through the process of building NLS–incremental improvement of the group and the system. NLS was intended to increase the working power of professional groups through a concept Engelbart called “augmentation”, augmenting the human intellect. His goals were similar to Licklider’s concept of human-computer symbiosis.

My thanks go to Rosemary Simpson of Brown University for providing these links. This is great stuff.

In an interview on Nerd TV a few years ago Douglas Engelbart talked about the struggle he went through to implement his vision. It’s a sad tale, with occasional triumphs. It’s good to see his efforts getting public recognition in the present day.

You can learn more about Engelbart’s work at the Doug Engelbart Institute. What I think is of particular interest is the library section. You can view the complete 1968 demo there, along with the papers he wrote. It’s interesting to note when the papers were written, because his concepts of what was possible with the system he envisioned will sound familiar to people who are accustomed to today’s computer technology. Considering what was the norm in computing at the time this is amazing.

Related post: Great moments in modern computer history

Read Full Post »

Hi guys. Just FYI, a little more than a week ago I wrote a comment on one of Paul Murphy’s blog postings, called “The worst PC myth of all”. Murphy is a blogger on ZDNet. He liked my comment a lot, and he and I agreed to have it as a guest post on his blog, called “Managing L’Unix”. I changed it a bit for posting, but the message is the same. It showed up today, titled “The PC vision was lost from the get-go”.

Paul Murphy sees himself as an “agent of change” in IT systems, so he tends to talk mostly about his philosophy of infrastructure, and his own attempts at reforming it in businesses. I read his blog often, because I have gotten insights from him in the past, especially when he talks occasionally about software development/programming issues. In fact, one of his posts from a couple years ago inspired me to search for material on the internet related to something he talked about. This led to a feast of information, knowledge, and wisdom, which I have continued to explore and enjoy to this day.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

Hi guys. I’m still very busy with other stuff right now. I’ve yearned to get back to my research, and sharing my findings on here. I’ve had to be patient and persistent. It’s going to be slow-going for a while.

I found this article on reddit, called Rental Car IT, by Neal Ford. It encapsulates what I think is going on in IT, in the large. That is, companies are unwittingly making their systems more complex, not less, and therefor less manageable as time passes, due to what he calls “accidental complexity”. The reason I’m covering this here is the mindset it illustrates in our industry applies just as well to the issues of software development.

Ford talks about customers he’s done business with, and how he tries to talk them into simplifying their systems. They seem to agree in principle with the idea, but when it comes down to making a decision they consistently choose the “less risky” option of buying off-the-shelf software, which ends up making their systems more complex and unweildy than they were before.

Ford also points out that customers frequently spend millions of dollars on pre-fabbed systems to solve simple IT problems.

He talks about something which has been a bone of contention for me. He describes an incident where he suggests to a senior IT guy that they talk to the users about what they want out of the system. The IT guy scoffs at the idea, saying the users should have no say in it, because, “We’ve tried talking to them–they don’t know what they want, so we have to define it for them.” Justin James talked about a related subject in a blog post called “Enterprise software is about data–not people”. I and Justin’s other readers had a good discussion on there about this. Ford says this attitude has the effect of creating cumbersome, complex systems that hinder important things like customer service. I agree users tend to not know what they want, but that doesn’t mean they should be totally ignored. All this attitude does is hinder productivity. The users are a part of the business operation. If a system is not working in a compatible fashion with the way they think and work, it creates inefficiency, because users are having to repeatedly take their minds off the real task they’re trying to accomplish so they can “deal with the machine”.

Some of the comments to Ford’s post were interesting, too. One said that it’s all about risk to the decision-makers, not to the company. If a project goes bad and they used a package from one of the major vendors, there are a lot of other people that can be blamed for the failure. Whereas if they try to develop the solution in-house and the project fails, then the IT executives themselves will be on the chopping block.

The sense I got from reading this is that increasingly enterprise IT development is being sequestered; moved, separated from the company, precisely because of past IT project failures. In other words, our ignorance about what we’re really doing is gradually discrediting IT development. People don’t want to take the risk anymore. I am reminded of a phrase which goes, “The biggest risk is not taking a risk at all.”

This attempt to remove risk and liability from internal IT is not necessarily serving companies well. What’s being missed is that a business’s computing systems should model the business. Companies such as the ones described in the article are attempting to fall back on an Industrial Age idea of solving a problem by acquiring standardized equipment (software systems) and making it interoperate with their existing equipment (software systems). In other words, take something that was designed by a group of engineers who have no idea what your business is about, and was designed with a particular purpose in mind, while at the same time it tries to allow some customization (it isn’t always flexible/generic enough to allow the customization you want), and attempt to make it model your business. Another name for it is “the data processing mindset”. Users are mere “operators” of this equipment, just as their industrial forebearers were. Their job is to learn how to operate it, and use it the way it was designed–without them in mind.

These businesses are trying to build their computing systems using Computer Engineering and Information Systems disciplines and infrastructure almost exclusively, avoiding what Computer Science and Software Engineering have to offer to the organization–sequestering it to the major software companies. They want to deal with pre-fabbed “boxes”, not code. The reason this doesn’t work well is they’re dealing with information, not widgets. They’re delivering a unique service, one where domain-specific information and semantics are key components. This is not a manufacturing process, and in the long run it cannot be dealt with effectively using this mindset.

—Mark Miller,
http://tekkie.wordpress.com

Read Full Post »

Older Posts »

Follow

Get every new post delivered to your Inbox.