Revisiting the Lessons of Timesharing
“Those who cannot remember the past are condemned to repeat it.” George Santayana, might have been talking about how today’s Internet-based computing echoes computer timesharing from the 1960s and 1970s. How can the lessons learned from that early era of computing help us to design better systems and applications today? The tale of personal computing’s evolutionary path shows what experienced engineers and developers can bring to the design table.
Once upon a time, computers were so large and expensive that hardly anyone could afford to have one. Computer users punched their program instructions and data into cards and brought the decks of cards to a computer center. Operators at the computer center fed the cards into the computer’s input device. The printed results were available after a considerable wait. This inconvenient system seemed to take forever to debug software because of the delays after each cycle of correction and re-submission. There wasn’t much ready-to-use software and the benefits of computing were available to very few.
Computer timesharing let more people enjoy the advantages of “personal computing.” Hundreds of users could use their own keyboard/printer terminals to share the resources of one central computer. In the 1960s and 1970s, computer timesharing companies spread around the world, operating large data centers and communications networks to provide dial-up services for their users. Timesharing companies opened branch offices in large cities and employed armies of salesmen to locate and cultivate new customers. The new customers could do their own interactive programming, or use extensive libraries of ready-to-use software for their computing needs.
The timesharing companies provided the central computers, communications networks, software libraries, customer support and education, printing services, remote job entry for traditional “batch” computing jobs, client data storage, and a one-stop-shop for word processing, accounting, messaging, engineering analysis and other customer requirements.
Developers of early timesharing systems dealt with issues like utilizing limited bandwidth, providing rapid access to large amounts of data, and insuring that individual users didn’t monopolize computer resources. Tools like “linked lists,” “sparse matrices,” “hashing,” and priority queuing helped improve timesharing systems. Today’s computers and communication networks are vastly more powerful than their early counterparts, but disciplines like Information Theory, Queuing Theory, Distributed Computing and Peer-to-Peer computing can still enhance system performance and reduce costs.