1984 is well known in the Apple world as the year the Macintosh was introduced. In 1983, Apple had released the Lisa. At this point, it would only be appropriate to go back to 1968, before the advent of UNIX, many years before Apple or Microsoft were even founded, and in fact, almost seventeen years before the first version of Microsoft Windows was released.
NLS: The oNLine System
On December 9, 1968, an astounding technology demonstration happened at the Convention Center in San Francisco during the Fall Joint Computer Conference (FJCC). Douglas Engelbart and his team of 17 colleagues working in the Augmentation Research Center at the Stanford Research Institute (SRI) in Menlo Park, California, presented NLS (oNLine System), an "online" system they had been creating since 1962. The "astounding" adjective is justified by the amount of innovation demonstrated on that one day.
Engelbart said at the beginning of his presentation that: "The research program that I am going to describe to you today is quickly characterizable by saying: 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 responsible, err, responsive ... how much value could you derive from that? Well that basically characterizes what we've been pursuing for many years ..."
The Computer Mouse
Engelbart demonstrated the first computer mouse, a three button "pointing device" with a tracking spot, or "bug" on the screen. The underside of the mouse had two wheels that could roll or slide on a flat surface. Each wheel controlled a potentiometer. As the user moved the mouse, the respective rolling and sliding motions of the two wheels resulted in voltage changes that were translated to relative coordinate changes on the screen.
A 5-Chord Key Set
Another input device Engelbart used in his demonstration was a chord key set, a five finger equivalent of a full-sized keyboard. The key set could be used to input up to 31 (25 minus the state when no keys are pressed) characters.
Engelbart showed that text could be entered, dragged, copied and pasted, formatted, scrolled, grouped hierarchically in multiple nested levels (for example, multiple line of text could be collapsed into a single line), and so on. The text so created could be saved in files, with provision for storing meta-data (the file's owner, time of creation, etc.) The use of a mouse made these operations much easier. Engelbart referred to the overall mechanism as view control.
The system was useful while editing code as well: blocks of code could be expanded and collapsed, with support for auto-completion.
Furthermore, documents could contain embedded statements for markup, which allowed formatting them for a specific purpose, like printing.
Hypertext and Imagemaps
Using hypertext, that is, text with hyperlinks, Engelbart could jump from one location to another. This could happen either as a result of searching (by name, say), or by explicit use of live hyperlinks, that could be visible or invisible.
The system also had picture drawing capabilities, and even pictures could have live hyperlinks (similar to latter day imagemaps).
Ted Nelson came up with the term "hypertext", while the concept itself is ascribed to Vannevar Bush. As the science advisor to US President F. D. Roosevelt in 1945, Bush thought of association as an alternative to indexing while "linking" two pieces of information.
The system provided powerful search facilities where keywords could be weighted, and search results were ordered accordingly. The results could also be presented as hyperlinks.
The computer screen could be split into a frozen display and a scanning window. Thus, while you were reading a manual, say, and you needed to look up a term, you could split the screen and view the term's definition in the dynamically changing scanning window, rather like modern day frames in web pages.
The system also kept track of who you were and what you were doing. People could work collaboratively on files, annotate each other's text, and leave notes for each other, similar in some respect to modern-day document versioning systems.
It was also possible to leave message for one or more specific people. A special language, essentially a programmable filter, would allow a "test" to be associated with pieces of text. Thereafter, a reader could only view what he was allowed to, as determined by the result of the context-sensitive test.
The SRI team demonstrated live audio-video conferencing. The communicating parties could even have collaborative screen sharing with independent capabilities. For example, two people could look at the same display, but one of them would only have read-only privileges.
Engelbart stated that their system was a vehicle to allow humans to "operate" (compose, study, and modify) within the domain of complex information structures - where content represents concepts. NLS was meant to be a tool to navigate complex structures, something linear text could not do well.
Engelbart was also involved in the creation of DARPA's ARPANet, the precursor to the Internet. His team planned to create a special service for ARPANet that would provide relevant network information, one that would answer questions like: Who is providing what services? What protocol do I use to get there? Who is down today and who is up?
The inherent philosophy, explicitly stated by Engelbart as well, was bootstrapping, that is, to build tools that let you build better tools, recursively. A very successful example of this philosophy is Unix.
Even with such impressive innovations, NLS ran into misfortune. Many of the team members went to the nascent Xerox PARC, where they hoped to create a distributed network version of NLS (as opposed to time-sharing). Worse still, SRI dropped the program and there was no funding. Engelbart went to a phone networking company called Tymshare, where he used to sit in a cubicle in an office building in Cupertino: very near to the birthplace of the Macintosh.
The work done at Xerox PARC would greatly influence the face (and surely the interface) of computing. The first version of Smalltalk was deployed at PARC in 1972. Inspired by Simula, the first language to use object concepts, Smalltalk was a truly object-oriented programming language. It was also an operating environment with an integrated user interface, overlapping windows, cut-and-paste, integrated documents, etc. and would facilitate development of useful and interesting tools such as a WYSIWYG editor, a music capture and editing system, an animation system, and so on.
Later on, Smalltalk would also be one of the inspirations behind the Objective-C programming language.
The primary person behind Smalltalk, Alan Kay, was one of the founding members at PARC. In the late 1960's, he came up with the idea of a powerful, easy to use lap-sized personal computer, called Dynabook. Kay would later be an Apple Fellow.
With inspirations from Kay's work, another effort began at Xerox PARC in 1972: one to create a personal computer.
The "personal" in Xerox's personal computing effort implied a non-shared system containing sufficient processing power, storage, and I/O capability to support the computing needs of a single user. The result was the Alto: a system consisting of a 16-bit medium scale integrated, or MSI (referring to the number of electronic components on a chip) processor, a bit-mapped 606 x 808 point graphical display, a keyboard, a five-finger keyset, a 3-button mouse (one with a ball, rather than SRI's wheels), and a computer box that housed the processor, disk(s), and their power supplies. It had interfaces for connection to printers and plotters, and a 2.94 Mbps ETHERNET interface via which it could be connected to other Altos and laser printers. The Alto's processor did not support virtual memory.
By 1979, over 1500 Altos were in use, within and outside of Xerox.
The Alto ran a lowest-priority task (task 0) called the Emulator, the microcode for which was stored in the standard Alto microcode ROM. It emulated a standard instruction set, thus aiding in portability. Other standard tasks included tasks for the disks (Disk sector task, Disk word task), networking (ETHERNET task), display (Display word task, Cursor task, Display horizontal task, Display vertical task), and memory (Memory refresh task, Parity task).
The Alto's operating system was implemented in BCPL. It provided drivers for disks, keyboard, and display, management of memory, the clock, interrupts, and other events, a file system, a BCPL environment, and miscellaneous functions. The system's debugger, called "Swat", saved machine state in a file named "Swatee". The Alto Executive was equivalent to a Unix shell. Its networked version, the NetExec, loaded programs from a boot server available via the ETHERNET rather than from the local disk.
The Alto began with and went on to have many more productivity applications, such as Bravo (for powerful, multi-windowed text processing), Laurel (a display-oriented message system providing facilities to display, forward, classify, file, print messages and their replies), Markup (a document illustration application), Draw (an interactive illustrator program for creating pictures composed of lines, curves, and text captions), Neptune (a file utility program for managing file directories on Alto disks), etc. Many programming languages became available on the Alto, such as Mesa (similar to Pascal), Smalltalk, and Lisp.
The applications mentioned above were usually very sophisticated. Draw, for example, divided the screen into multiple areas: brush menu, command menu, font menu, picture area, caption area, and a message area for displaying informational, error, or prompting messages. Officetalk, an experimental forms-processing system on the Alto, was an inspiration for the STAR System developed later.
As inter-network communication facilities were developed at PARC (leading to an internet packet format called PARC Universal Packet, or Pup), Alto also included FTP and TELNET abilities.
Xerox used the Alto's technology to come up with a system designed for office professionals, the STAR System.
Xerox STAR System
Xerox introduced the 8010 STAR Information System at a Chicago trade show in April 1981. The STAR's hardware was based on the Alto, with "better" components (more memory, bigger disks, higher resolution display, faster ETHERNET, etc.) An important difference was that the STAR user interface was designed before actually building the hardware or software.
The STAR user interface provided the user with an electronic metaphor for the physical office. There were electronic analogs of common office objects: paper, folders, file cabinets, mail boxes, calculators, and so on. It would be an understatement to say that the STAR interface influenced many systems that came after it. Consider:
- The user's first view of the working environment was the Desktop, which displayed small pictures (icons) of familiar objects such as documents, folders, file drawers, in- and out-baskets, etc.
- The user could click on an icon, and push the OPEN key to "open" an icon, which resulted in a window displaying the icon's contents. Icons could represent either "Data" (Document, Folder, Record File), or "Function". The user could copy, delete, file, mail, move, open, close, and print data icons. The function icons operated on data icons, and many of them are analogous to today's "application" icons. Examples of function icons included File Drawer, In- and Out-Baskets, Printer, Floppy Disk Drive, User, User Group, Calculator, Terminal Emulator, and Network Resource Directory.
- Windows had title bars displaying the icon name and a context-sensitive command menu, with context-sensitive help accessible via the "?" button. They also had horizontal and vertical scroll bars (with page-up, page-down, and jump-to). However, the STAR windows were explicitly designed not to overlap (considered a nuisance in the Alto by STAR's designers): they could only be tiled.
- An abstraction called Property Sheets was analogous to today's "control" or "property" panels. A related abstraction called Option Sheets implemented a visual interface for providing "options" (arguments) to commands. For example, the "Find" option sheet was a powerful tool for searching text (including textual properties such as case, font, size, face, position, etc.) in a part or whole of a document or a selection. It also allowed changing of the "found" text (and its properties) to something else, with optional confirmation.