A Guided Tour of the Common Lisp Interface Manager

Total Page:16

File Type:pdf, Size:1020Kb

A Guided Tour of the Common Lisp Interface Manager A Guided Tour of the Common Lisp Interface Manager Ramana Rao <raoQxerox.com> William M. York <york~ila.com> Xerox Palo Alto Research Center International Lisp Associates, Inc. Dennis Doughty <[email protected]> International Lisp Associates, Inc. Abstract formatting; and high level facilities like context sen- sitive input, an adaptive toolkit, and an application The Common Lisp Interface Manager (CLIM) is a building framework. powerful Lisp-based system that provides a layered CLIM will eventually support a large num- set of facilities for building user interfaces. These ber of window enviromnents including Genera[16], facilities include a portable layer called Silica that in- X[12], the Macintosh[l], Microsoft Windows[5], cludes basic windowing, input, output services, and SunView[13], and NextStep[6]. CLIM is designed to mechanisms for constructing window types and user exploit the functionality provided by the host envi- interface components; stream-oriented input and out- ronment to the degree that it makes sense. For ex- put facilities extended with presentations and con- ample, CLIM top level windows are typically mapped text sensitive input similar to the work pioneered in onto host windows, and input and output opera- the Genera UI system; and a gadget-oriented toolkit tions are ultimately performed by host window sys- similar to those found in the X world extended with tem code. Another example is that CLIM supports support for look and feel adaptiveness. In this arti- the incorporation of toolkits written in other lan- cle, we present an overview of CLIM's broad range guages (e.g. C-based toolkits that implement Motif[7] of functionality and present a series of examples that or OpenLook[15]). However, in both cases, a uniform illustrates CLIM's power. interface provided by CLIM allows Lisp applications to deal only with Lisp objects and functions regard- less of their operating platform (i.e. combination of Introduction Lisp system, host computer, and host window envi- ronment). Common Lisp is a language standard that has pro- vided a broad range of functionality, and that has, An important goal that has guided the design of to a large degree, successfully enabled the writing CLIM has been to layer the specification into a num- of truly portable Lisp programs. The emergence of ber of distinct facilities. Furthermore, the specifica- CLOS and the cleanup efforts of Ansi X3J13 have tion doesn't distinguish the use of a facility by higher further enhanced the utility and portability of Com- level CLIM facilities from its use by CLIM users. mon Lisp. However, one major stumbling block re- For example, the geometry substrate, which includes mains in the path of those endeavoring to write large transformations and regions, is designed for efficient portable applications. The Common Lisp community use by the graphics and windowing substrates as well has not yet provided a standard interface for imple- as by CLIM users. This means that, in general, a menting user interfaces beyond the most basic oper- CLIM user can reimplement higher level CLIM fa- ations based on stream reading and printing. cilities using the interfaces provided by lower level The Common Lisp Interface Manager (CLIM) ad- facilities. dresses this problem by specifying an interface to a This modular, layered design has a number of ben- broad range of services necessary or useful for de- efits. The CLIM architecture balances the goal of veloping graphical user interfaces. These services ease of use on one hand, and the goal of versatility on include low level facilities like geometry, graphics, the other. High level facilities allow programmers to event-oriented input, and windowing; intermediate build portable user interfaces quickly, whereas lower level facilities like support for Common Lisp stream level facilities provide a useful platform for building operations, output recording, and advanced output toolkits or frameworks that better support the spe- copyright 1990 Ramana Rao of Xerox Parc, William M. York & Dennis Doughty of ILA IV-i. 17 Applications Frames Command Loops Frame Managers Presentations Adaptive Gadget Panes Extended Streams Layout Panes Application Panes Panes Formatted Output, Graphs Standard Sheets Output Recording Sheet Definition Graphics Ports Geometry Look and Feel Common Lisp w/CLOS Host Window System Operating System Hardware Figure 1: An Overview of CLIM functionality cific needs or requirements of a particular application. scribes Silica, application building functionality, and For example, CLIM's application framework and many of the high level facilities of CLIM in greater adaptive toolkit allow users to develop applications detail. These sections present a series of real code that automatically adopt the look and feel of the examples that gradually build up higher and higher host's environment. (We often call this "adaptive- CLIM concepts. ness," "look and feel independence," or occasion- ally more picturesquely, "chameleon look and feel" .) However, many users may need or want to define a 1 Overview of Functionality particular look and feel that stays constant across all host environments (we call this "portable look Figure 1 shows the various aspects of a host environ- and feel"). Such users can circumvent the look and ment in which CLIM lives as well as the various ele- feel adaptiveness provided by CLIM, while still using ments provided by CLIM. Below we briefly describe most of the application framework facility and other a number of CLIM's areas of functionality. Later sec- high level CLIM facilities like context sensitive input. tions will illustrate many of these components. Furthermore, using the lower level facilities of CLIM, they can develop portable toolkit libraries that define Geometry CLIM provides points, rectangles, and and implement their own particular look and feel. transformations; and functions for manipulating these object types. Another major benefit of CLIM's modular design is that application programs need only load CLIM Graphics CLIM provides a portable interface to facilities that they use. This is particularly impor- a broad set of graphics functions for drawing tant because of the extent of functionality provided complex geometric shapes. The CLIM drawing by CLIM. For example, some applications may not model supports a wide variety of drawing op- use some CLIM facility, say presentations or output tions (such as line thickness), a sophisticated ink- recording, and in such cases, these facilities need not ing model, color, and full affine transformations, be loaded. Similarly, other applications may not need which allows graphics to be arbitrarily trans- all gadget implementations or any Lisp-based gadget lated, rotated, and scaled. implementations, since they are running in an envi- ronment in which C-based gadgets have been incor- Silica CLIM provides a portable layer called Sil- porated. ica for implementing sheets (windows and other The next section presents an overview of the func- window-like objects). Silica specifies a uniform tionality provided by CLIM. The rest of paper de- interface for creating and managing hierarchies IV-I. 18 of sheets, regardless of their class or other prop- in terms of the details of its appearance or op- erties. In addition, Silica defines a standard eration. Application that use these gadget types sheet class that implements a straightforward and related facilities will automatically adapt to window that supports much of the functionality use whatever toolkit is available and appropriate of an X[12] or NEWS[14] window. for the host environment. In addition, portable Lisp-based implementations of the abstract gad- Common Lisp Streams CLIM integrates the get pane protocols are provided. Common Lisp Stream I/O functionality with the CLIM graphics, windowing, and panes facilities. 2 Silica Output Recording CLIM provides a facility for capturing all output done to a sheet and auto- The Silica layer of CLIM serves two primary func- matically repainting it when necessary. In addi- tions. First, it provides a portable windowing model tion, this facility provides a substrate for other that insulates higher levels of CLIM and CLIM users CLIM facilities including formatted output and from the details of the host window system. So from presentations. the perspective of most CLIM user's, Silica is the win- dow system. However, on most platforms, Silica will Formatted Output CLIM provides a set of high- use the services of a host window system to provide level macros that enable programs to produce efficient windowing, input and output facilities. In neatly formatted tabular and graphical displays easily. this regard, Silica can be viewed as a portable CLX (the Lisp interface to the Xll protocol). Presentations CLIM provides the ability to asso- Second, Silica provides an extensible framework ciate semantics with output, such that Lisp ob- that can be used to explore alternative window jects may be retrieved later via user gestures (e.g. system implementations. For example, two other mouse clicks) on their displayed representation. Common Lisp window systems interfaces have been This context sensitive input is modularly layered build within the Silica framework: the Deli Window on top of the output recording facility and is System[8] and Common Windows[2]. integrated with the Common Lisp type system. Moreover, the extensible framework also allows A mechanism for type coercion is also included, sharing and reusing of functionality typically associ- providing the basis
Recommended publications
  • Why Os/2 Failed: Business Mistakes Compounded by Memory Prices
    Mountain Plains Journal of Business and Economics Volume 10 Issue 1 Article 4 Date Published: 10-1-2009 Why Os/2 Failed: Business Mistakes Compounded By Memory Prices Eric G. Swedin Weber State University Davis Follow this and additional works at: https://openspaces.unk.edu/mpjbt Part of the Business Commons Recommended Citation Swedin, E. G. (2009). Why Os/2 Failed: Business Mistakes Compounded By Memory Prices. Mountain Plains Journal of Business and Economics, 10(1). Retrieved from https://openspaces.unk.edu/mpjbt/ vol10/iss1/4 This Case Study is brought to you for free and open access by OpenSPACES@UNK: Scholarship, Preservation, and Creative Endeavors. It has been accepted for inclusion in Mountain Plains Journal of Business and Economics by an authorized editor of OpenSPACES@UNK: Scholarship, Preservation, and Creative Endeavors. For more information, please contact [email protected]. 36 WHY OS/2 FAILED: BUSINESS MISTAKES COMPOUNDED BY MEMORY PRICES ERIC G. SWEDIN WEBER STATE UNIVERSITY DAVIS ABSTRACT In 2006, IBM ended their support of OS/2, closing the book on an ambitious effort to create a modern operating system for the personal computer. IBM and Microsoft released the OS/2 operating system in December 1987 to replace the primitive DOS with a more sophisticated, preemptive multitasking operating system for personal computers. This article argues that OS/2 failed because of the U.S.-Japan Semiconductor Trade Agreement of 1986, subsequent accusations of DRAM chip dumping by the United States, and the resulting tariffs on Japanese memory chips, led to a memory chip shortage that drove up memory prices.
    [Show full text]
  • The Library for System Solutions End User Interface Reference
    The Library for System Solutions End User Interface Reference Document Number GG24-4107-00 July 1994 International Technical Support Organization Boca Raton Center Take Note! Before using this information and the product it supports, be sure to read the general information under “Special Notices” on page xi. First Edition (July 1994) This edition applies to IBM and non-IBM products for End User Interface development. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address given below. An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been removed, comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. 91J Building 235-2 Internal Zip 4423 901 NW 51st Street Boca Raton, Florida 33431-1328 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1994. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Abstract This document is part of the Library for Systems Solutions, which is intended for professionals involved in defining solutions in the heterogeneous computing environments. The library consists of three types of documents: • Computing Technology • Function Reference • Technology Reference This document is the Function Reference book regarding End User Interface. The book consists of two parts.
    [Show full text]
  • Microsoft Windows for MS
    Month Year Version Major Changes or Remarks Microsoft buys non-exclusive rights to market Pattersons Quick & Dirty Operating System from December 1980 QDOS Seattle Computer Products (Developed as 86-DOS) (Which is a clone of Digital Researches C P/M in virtually every respect) Microsoft buys all rights to 86-DOS from Seattle Computer Products, and the name MS-DOS is July 1981 86-DOS adopted for Microsoft's purposes and IBM PC- DOS for shipment with IBM PCs (For Computers with the Intel 8086 Processor) Digital Research release CP/M 86 for the Intel Q3 1981 CP/M 86 8086 Processer Pre-Release PC-DOS produced for IBM Personal Mid 1981 PC-DOS 1.0 Computers (IBM PC) Supported 16K of RAM, ~ Single-sided 5.25" 160Kb Floppy Disk OEM PC-DOS for IBM Corporation. (First August 1982 PC-DOS 1.1 Release Version) OEM Version for Zenith Computer Corporation.. (Also known as Z-DOS) This added support for September 1982 MS-DOS 1.25 Double-Sided 5.25" 320Kb Floppy Disks. Previously the disk had to be turned over to use the other side Digital Research release CP/M Plus for the Q4 1982 CP/M Plus Intel 8086 Processer OEM Version For Zenith - This added support for IBM's 10 MB Hard Disk, Directories and Double- March 1983 MS-DOS 2.0 Density 5.25" Floppy Disks with capacities of 360 Kb OEM PC-DOS for IBM Corporation. - Released March 1983 PC-DOS 2.0 to support the IBM XT Microsoft first announces it intention to create a GUI (Graphical User Interface) for its existing MS-DOS Operating System.
    [Show full text]
  • User Interface Software Tools
    User Interface Software Tools Brad A. Myers August 1994 CMU-CS-94-182 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Also appears as Human-Computer Interaction Institute Technical Report CMU-HCII-94-107 This report supersedes CMU-CS-92-114 from February, 1992, published as: Brad A. Myers. ‘‘State of the Art in User Interface Software Tools,’’ Advances in Human- Computer Interaction, Volume 4. Edited by H. Rex Hartson and Deborah Hix. Norwood, NJ: Ablex Publishing, 1993. pp. 110-150. Abstract Almost as long as there have been user interfaces, there have been special software systems and tools to help design and implement the user interface software. Many of these tools have demonstrated significant productivity gains for programmers, and have become important commercial products. Others have proven less successful at supporting the kinds of user interfaces people want to build. This article discusses the different kinds of user interface software tools, and investigates why some approaches have worked and others have not. Many examples of commercial and research systems are included. Finally, current research directions and open issues in the field are discussed. This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, ARPA Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NCCOSC or the U.S. Government. CR CATEGORIES AND SUBJECT DESCRIPTORS: D.2.2 [Software Engineering]: Tools and Techniques-User Interfaces; H.1.2 [Models and Principles]: User/Machine Systems-Human Factors; H.5.2 [Information Interfaces and Presentation]: User Interfaces-User Interface Management Systems; I.2.2 [Artificial Intelligence]: Automatic Programming-Program Synthesis; ADDITIONAL KEYWORDS AND PHRASES: User Interface Software, Toolkits, Interface Builders, User Interface Development Environments.
    [Show full text]
  • Operating System: Windows
    Windows, in computer science, personal computer operating system sold by Microsoft Corporation that allows users to enter commands with a point-and-click device, such as a mouse, instead of a keyboard. An operating system is a set of programs that control the basic functions of a computer. The Windows operating system provides users with a graphical user interface (GUI), which allows them to manipulate small pictures, called icons, on the computer screen to issue commands. Windows is the most widely used operating system in the world. It is an extension of and replacement for Microsoft’s Disk Operating System (MS-DOS). The Windows GUI is designed to be a natural, or intuitive, work environment for the user. With Windows, the user can move a cursor around on the computer screen with a mouse. By pointing the cursor at icons and clicking buttons on the mouse, the user can issue commands to the computer to perform an action, such as starting a program, accessing a data file, or copying a data file. Other commands can be reached through pull-down or click-on menu items. The computer displays the active area in which the user is working as a window on the computer screen. The currently active window may overlap with other previously active windows that remain open on the screen. This type of GUI is said to include WIMP features: windows, icons, menus, and pointing device (such as a mouse). Computer scientists at the Xerox Corporation’s Palo Alto Research Center (PARC) invented the GUI concept in the early 1970s, but this innovation was not an immediate commercial success.
    [Show full text]
  • Comparing the SAS System Under OS/2 and Microsoft Windows Which
    comparing the SAS System under OS/2 and Microsoft Windows Which is right for you? Mark W. Cates SAS Institute Inc. Abstract As we enter into the 1990s, two operating systems are available to enhance productivity forcEersonalcomput­ ers and provide a future platform for PC software users. The two environments, OS/2 • version 1.3 and Microsoft Windows ® 3.0 provide fundamentally the same user interface and similar features, but the underly­ ing operating systems are radically different. Today, corporations large and small are deciding which operat­ ing system should be used in their organizations and for which applications. The platform for more powerful and mission critical applications is clearly OS/2. However, with the introduction and overwhelming accep­ tance of Windows 3.0, supporting DOS compatibility, a graphical user interface compatible with Presentation Manager, and access to extended and virtual memory, a large memory alternative to OS/2 is available. This paper discusses these two environments with respect to the SAS System. The paper presents the advantages and disadvantages of the operating systems, configuration issues, and future directions, with respect to the SAS System. Issues that are particularly important to the SAS System are described in detail. Finally, the implications of the new 32 bit OS/2 version 2.0 are presented. (In this paper, Microsoft Windows 3.0 will be referred to as an operating system. Actual~, Microsoft Windows is a layered operating environment that runs on top of the operating system PC DOS •. For purposes of this paper, the distinction between operating environment and operating system is not important.) SAS release status for OS/2 and Windows Version 6.06 of the SAS System has been in production for OS/2 1.2 and 1.3 Standard and Extended Edition, as well as Microsoft's OEM versions since November 1990.
    [Show full text]
  • Laser Printer
    15-292 History of Computing The GUI and the rise of Microsoft ! Based on slides originally published by Thomas J. Cortina in 2004 for a course at Stony Brook University. Revised in 2013 by Thomas J. Cortina for a computing history course at Carnegie Mellon University. Early History of the GUI l First real-time graphic display systems for computers are developed for the SAGE Project and Ivan Sutherland's Sketchpad system. l Doug Engelbart's Augmentation of Human Intellect project at SRI in the 1960s developed the On-Line System, which incorporated a mouse-driven cursor and multiple windows. Xerox PARC l Xerox PARC (Palo Alto Research Center) was the birthplace of many foundations of modern computing l the mouse l the laser printer l the Smalltalk programming language l Interpress (a precursor to PostScript) l the Ethernet l Xerox PARC invents prototype of the world's first personal computer: the Alto l the first WYSIWYG editor, first commercial use of a mouse, graphical user interface, bit-mapped display Mouse l The mouse was invented by Douglas Engelbart of Stanford Research Institute in 1963 after extensive usability testing. l He received a patent in Nov. 1970 for a "X-Y Position Indicator For A Display System". l He was the recipient of the 1997 ACM Turing Award. Engelbart l A later variation, invented in the early 1970s by Bill English at Xerox PARC, replaced the external wheels with a single ball which could rotate in any direction. Laser Printer l In 1938, Chester Carlson invented a dry printing process called xerography, commonly called a Xerox, the foundation technology for laser printers to come.
    [Show full text]
  • IBM Workplace Collaboration Services V2.6 and IBM Workplace Software Products V2.6
    Software Announcement January 17, 2006 IBM Workplace Collaboration Services V2.6 and IBM Workplace software products V2.6 Overview IBM Workplace Managed Client, the optional rich client for Workplace At a glance IBM Workplace Collaboration Collaboration Services users, helps Services and IBM Workplace make people more productive by IBM Workplace Collaboration Managed Client , the optional full enabling them to make better Services V2.6 and IBM Workplace rich client, are IBM Workplace informed decisions and take targeted software products V2.6: actions, fast. Because Workplace products that deliver a complete and • integrated collaborative platform. Managed Client is deployed, Integrate with IBM Workplace Built on open standards and provisioned, and managed from the Designer delivering network-based Workplace Collaboration Services • Include support for Lotus collaboration to users of all types, server, it offers Workplace Managed Notes and Domino V7.0 IBM Workplace products are Client functions with operational changing the way organizations characteristics that are comparable • Provide interoperability with the collaborate. to Web browsers. Key “better than Lotus Notes calendar browser” capabilities include local • IBM Workplace Collaboration execution of code, an encrypted data Support out-of-office Services delivers an integrated store with offline use support, and a notifications collaborative environment that full array of productivity tools • Contain block mail send for includes a wide range of capabilities including word processor, quota enforcement like e-mail, calendaring, presence spreadsheet, Presentation awareness, instant messaging, Manager , and project planner. • Enhance Web conference learning, team spaces, Web Workplace Managed Client also management conferencing, document and Web includes a capability called “Activity • Have document management content management.
    [Show full text]
  • Why OS/2 2.0
    Why OS/2 2.0 October 1992 IBM Personal Systems ii Why OS/2 2.0 Preface Trademark Acknowledgements The following terms are trademarks or registered trademarks of the IBM Corporation in the United States and/or other countries: IBM PS/2 RISC System/6000 OS/2 Operating System/2 Presentation Manager SAA Systems Application Architecture Extended Services Microsoft and MS-DOS are registered trademarks. Windows, Windows NT, Win32, and Win32s are trademarks of Microsoft Corporation. Disclaimer Some of the information in this paper concerns future products, or future releases of current, commercially available products. Discussion of Windows is based on information which the Microsoft Corporation has made publicly available as of October 1, 1992, or information in the public trade press and is subject to change. IBM's future products and their performance, functions and availability are based upon IBM's current intent and are subject to change. Special Notices References in this publication to IBM's current and future products, programs or services do not imply that IBM intends to make these generally available in all countries in which IBM operates. IBM may have patents or pending patent applications covering subject matter in this document. This document does not grant anyone a license to those patents, patent applications or to any other IBM intellectual property. Preface iii iv Why OS/2 2.0 Contents Executive Summary 1 Why OS/2 Surpasses both Windows 3.x and Windows NT 1 Why OS/2? 3 The best of both worlds 3 Freedom of Choice 3 A productive environment for the user 3 A platform you can rely on 4 Superior connectivity 4 The integrated system 4 32-bit power 4 Platform for growth 5 Value for money 5 Protects today's investment, and is a base for the future 5 What are some alternatives to OS/2? 7 Windows 3.x 7 Windows NT 9 The Windows client-server strategy 11 Windows Myths 13 Myth #1: The marketplace has chosen - Windows is the standard.
    [Show full text]
  • Oral History of Lee Lorenzen
    Oral History of Lee Lorenzen Interviewed by: Dag Spicer Recorded May 24, 2017 Mountain View, CA CHM Reference number: X8217.2017 © 2017 Computer History Museum Table of Contents Early Family Life and Schooling ................................................................................................. 4 Decision to Leave the Air Force and First Computing Job .......................................................... 7 Southern Methodist University ................................................................................................... 9 Early Computer Users and Business Applications .....................................................................11 First Job at Xerox ......................................................................................................................12 Early Work on Graphical User Interfaces at Xerox ....................................................................14 Star ...........................................................................................................................................15 Lone Star ..................................................................................................................................16 Xerox’s Patents, Licensing, and Commercialization ..................................................................19 WYSIWYG and Desktop Applications .......................................................................................20 Move to Digital Research and GEM ..........................................................................................21
    [Show full text]
  • Multimodal, Asynchronously Shared Slide Shows As a Design Strategy for Engineering Distributed Work in the National Airspace System
    MULTIMODAL, ASYNCHRONOUSLY SHARED SLIDE SHOWS AS A DESIGN STRATEGY FOR ENGINEERING DISTRIBUTED WORK IN THE NATIONAL AIRSPACE SYSTEM DISSERTATION Presented in Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the Graduate School of the Ohio State University By Roger James Chapman, B.S, M.S. * * * * * The Ohio State University 2002 Dissertation Committee: Approved by: Professor Philip J. Smith Professor Charles E. Billings ___________________________________ Adviser Professor Nadine Sarter Department of Industrial & Systems Engineering Graduate Program Copyright by Roger James Chapman 2002 ABSTRACT This research focused on the design and evaluation of a multimodal asynchronous communications tool that uses an annotated slide show structure for messages, to support collaborative analysis of post-operations in the National Airspace System (NAS). Voice-based asynchronous annotations communicated between writers working collaboratively have been found to support more extensive discussion of problems in draft documents and to be preferred over text based discussion for some types of feedback. People point naturally when discussing the content of a shared image, and voice synchronized with pointing in asynchronous annotation systems has been found to be more efficient in scheduling tasks, than voice-only, or text only communication. Synchronized voice and pointing has also been shown to focus attention and improve retention of information in multimedia presentation systems. This research involved investigating how
    [Show full text]
  • A History of the GUI 11/3/11 9:20 PM
    A History of the GUI 11/3/11 9:20 PM A History of the GUI By Jeremy Reimer | Published 6 years ago Introduction Today, almost everybody in the developed world interacts with personal computers in some form or another. We use them at home and at work, for entertainment, information, and as tools to leverage our knowledge and intelligence. It is pretty much assumed whenever anyone sits down to use a personal computer that it will operate with a graphical user interface. We expect to interact with it primarily using a mouse, launch programs by clicking on icons, and manipulate various windows on the screen using graphical controls. But this was not always the case. Why did computers come to adopt the GUI as their primary mode of interaction, and how did the GUI evolve to be the way it is today? In what follows, I?ll be presenting a brief introduction to the history of the GUI. The topic, as you might expect, is broad, and very deep. This article will touch on the high points, while giving an overview of GUI development. Prehistory Like many developments in the history of computing, some of the ideas for a GUI computer were thought of long before the technology was even available to build such a machine. One of the first people to express these ideas was Vannevar Bush. In the early 1930s he first wrote of a device he called the "Memex," which he envisioned as looking like a desk with two touch screen graphical displays, a keyboard, and a scanner attached to it.
    [Show full text]