A history of end user programming
03-Feb-10
A brief history of the evolution of computer programming from the 60s to the present day, by Peter Hale.
The 1960s
Dartmouth BASIC (beginner's all-purpose symbolic instruction code) was designed and implemented at Dartmouth College by John Kemeny and Thomas Kurtz. Over time BASIC became a popular language for home and business use. It introduced many people to programming as a hobby or career. Recently, many variations of BASIC have appeared as programming languages, or macro languages within applications (e.g. Microsoft Office).
Many of the modern concepts of computer graphics, dynamic objects and object-oriented programming were prototyped by Ivan Sutherland in 1963 in Sketchpad. Sketchpad was the first program to utilize a complete graphical user interface. It helped change the way people interact with computers. Sketchpad is considered to be the ancestor of modern CAD (computer-aided drafting/design) programs as well as a breakthrough in the development of computer graphics in general. Sutherland demonstrated with Sketchpad that computer graphics could be utilized for artistic and technical purposes as well as showing a novel method of human-computer interaction.
In the mid 1960s Seymour Papert, a mathematician who had been working with Jean Piaget in Geneva co-founded the MIT Artificial Intelligence Laboratory in the United States with Marvin Minsky. Papert worked with the team led by Wallace Feurzeig that created the first version of Logo in 1967. Logo is often used for teaching, and is a dialect of Lisp (a language whose name derives from 'list processor'). The work of Papert demonstrates the approach of Constructionism. The Constructionism idea is based on the constructivist theories of Piaget. The idea is that people construct new knowledge more effectively when they are engaged in constructing meaningful products.
In the late sixties Alan Kay used the term 'personal computer' and created a concept prototype, the FLEX Machine, he also envisaged a 'Dynabook' machine, the sketches for this look very similar to the laptop computers of recent years. Alan Kay and Seymour Papert envisioned in the 1960s the computer's role as a tool for the mind, an 'idea processor'. Kay and Papert have worked at bringing computers into this role through the Logo language and environment by Papert and the open source Smalltalk language and environment, by Kay.
The Simula language was developed by Ole-Johan Dahl and Kristen Nygaard and this included object-oriented concepts. Simula can therefore be considered the first object-oriented programming language, and a predecessor to Smalltalk, C , Java, C#, and other object-oriented languages. Simula was designed for performing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages. Simula included objects, classes, garbage collection, and discrete event simulation.
Douglas Engelbert worked on a project to augment the human intellect. As part of the Augment project he demonstrated hypertext and video conferencing. He is best known as the inventor of the mouse, Windows, email, and the word processor. Engelbart led one of the most important projects funded by ARPA (Advanced Research Projects Agency) in the 1960s: a networked environment designed to support collaborative interaction between people using computers. It was named the NLS (oNLine System). This prototype, developed at the Stanford Research Institute, influenced the development of the first personal computer and the graphical user interface at Xerox Palo Alto Research Center (PARC) in the early 1970s.
The 1970s
Alan Kay joined Xerox PARC California in 1971. Throughout the seventies the group at PARC led by Kay developed an integrated programming language and environment called Smalltalk. Smalltalk was an early pioneer of object-oriented programming, influenced by the first object-oriented programming language Simula. Alan Kay designed the system, which Dan Ingalls implemented. Through the seventies the group developed Smalltalk, which was one of the first systems to pioneer the WIMP (Windows, Icons, Menus and Pointers) interface. Squeak and Croquet have developed from the early work in Smalltalk, and provided a tool for end-user programming, collaboration, visualisation, and simulation. Open-source and commercial Smalltalk programming environments have been developed, and Smalltalk is also used as a way of enabling constructionist learning and object-oriented programming.
In the early seventies the Alto personal computer was created at PARC. The Alto eventually featured the world's first what-you-see-is-what-you-get (WYSIWYG) editor, a commercial mouse for input, a graphical user interface (GUI), and bit-mapped display, offered menus and icons, and linked to a local area network. The Alto provided the foundation for Xerox's STAR 8010 Information System.
The development of the Altair computer in 1975, and the Apple II, helped create the personal computer revolution of the late seventies, and the eighties. There was still a need to find a common use for a personal computer that would increase the demand for it. In 1978, Harvard Business School student Daniel Bricklin had the idea for an interactive visible calculator. Bricklin and Bob Frankston then co-invented the software program VisiCalc. VisiCalc was a spreadsheet, and the first 'killer application' for personal computers, as this application provided a justification for using personal computers as a productive tool.
The 1980s
During the 1980s, ownership of personal computers became increasingly popular and many home users programmed using BASIC. There were many varieties of personal computers sold for home use. Bellis explains that in the early eighties IBM developed the first personal computer to be built from off-the-shelf parts (called open architecture). This included a command line operating system written by Microsoft and their BASIC programming language.
Apple developed the graphical user interface (GUI) for the Lisa that later became the Macintosh (Mac). The IBM-style PC became most popular for business applications, while the Apple Mac was often used for desktop publishing.
While at CERN (particle physics laboratory), Tim Berners-Lee proposed a project based on the concept of hypertext, to facilitate sharing and updating of information amongst researchers. He then saw an opportunity to join hypertext with the internet.
The 1990s
End-user programming research continued using techniques of visual programming e.g. (Alice, 2006), Programming by Example (Cypher, 1993), (Guibert, 2004), and (Smith, 1993), programming with automated assistance (Rich and Waters, 1990), and natural language programming. Squeak and Croquet have developed from the early work in Smalltalk.
Berners-Lee developed hypertext markup language (HTML), and has been involved with the World Wide Web Consortium (W3C), in developing standards based languages for the web. This has encouraged the growth of the Semantic Web which allowed both humans and computers to search and interact with pages, and so encouraged the development of interactive web pages and communities.
The 2000s
Henry Lieberman has been involved with end-user programming research since the 1960s. He is author of 'Your Wish is My Command: Giving Users the Power to Instruct their Software'. This is about empowering them to create and modify their own programs. Programming by example (PBE) is a technique where a software agent records user's behaviour in an interactive graphical interface, then automatically writes a program that will perform that behaviour for the user. This technique is used for recording Macros in office applications.
Recent, present and future research can enable the use of Semantic Web technologies (Berners-Lee and Fischetti, 1999), to enable end-user programming. This fusion of research and technologies is illustrated by (Lieberman, 2000) that contains explanations of both areas of research - Semantic Web, and end-user programming. A related development is that of Web 2.0, explained by Anderson, this report explains how the technologies used are enabling user-centred web applications, and the use of the web as a development platform. Anderson explains "As a Web 2.0 concept, this idea of opening up goes beyond the open-source software idea of opening up code to developers, to opening up content production to all users and exposing data for re-use and combination. Anderson's report talks of Web 2.0 trends towards the 'end of the software release cycle, lightweight programming models, software above the level of a single device, and rich user experiences.' Visual development environments based on AJAX (asynchronous Javascript And XML), aim to reproduce on the web the functionality provided by office tools such as Excel (often used as an end-user programming environment). The Semantic Web and Web 2.0 techniques could be combined with programming by example research, and visual programming developed from the research of Sutherland, Papert, Kay, and many others. This should enable users to experience a much more meaningful interaction with computers. Semantic Web and Web 2.0 are related as Berners-Lee's intention in the early development of Semantic Web technologies was for pages to be interactive.
A trend has been towards partnerships that can further end-user programming by means of collaboration and sharing ideas. These collaborations include the end-users shaping effective software (EUSES) research collaboration and the Institute for End-user Computing, (IEUC). This kind of collaborative research is important because end-user programming requires interdisciplinary research that includes coordinated research of the Semantic Web, visualisation, human computer interaction, and collaboration. Much of user-driven programming requires sharing of information in a way understandable to non-programmers. Creation of a multi-levelled translation process between the user's view of the information and the representation required for computers requires a range of skills and knowledge, and knowledge of this history.
Visit Peter Hale's blog - User Driven Modelling.
Bellis, M. 'Inventors of the Modern Computer, The History of the IBM PC - International Business Machines' http://inventors.about.com/library/weekly/aa031599.htm.
Bergin, T. J., Gibson, R. G., 1996. 'History of Programming Languages, Volume 2', ISBN-10: 0-201-89502-1; ISBN-13: 978-0-201-89502-5.
Berners-Lee, T., Fischetti, M., 1999. 'Weaving the Web'. Harper San Francisco; Paperback: ISBN:006251587X.
Bricklin, D. 'VisiCalc: Information from its creators, Dan Bricklin and Bob Frankston' http://www.bricklin.com/visicalc.htm.
Cypher, A., 1993. 'Watch What I Do Programming by Demonstration'. MIT Press, Chapter 1 online http://www.acypher.com/wwid/Chapters/01Pygmalion.html ISBN:0262032139.
Dmoz Open Directory Project, Visual Languages http://dmoz.org/Computers/Programming/Languages/Visual/.
End-users Shaping Effective Software (EUSES), Welcome to EUSES http://eusesconsortium.org/.
Guibert, N., Girard, P., Guittet, L., 2004. 'Example-based Programming: a pertinent visual approach for learning to program. Proceedings of the working conference on Advanced visual interfaces'. pp 358-361 - ISBN:1-58113-867-9.
Institute for End-user Computing (IEUC), Institute for End-user Computing Inc. http://www.ieuc.org/home.html.
Kay, A., ETech 2003 Presentation. In: ETech O'Reilly Emerging Technology Conference, Westin Santa Clara April 22-25 2003 http://www.lisarein.com/alankay/tour.html (Lisa Rein's Tour Of Alan Kay's presentation).
Kyoto Prize Laureates, 2004. Dr. Alan Curtis Kay (U.S.A., b. 1940) - Computer Scientist, President, Viewpoints Research Institute.
Lieberman, H., 2000. 'Your Wish is My Command: Giving Users the Power to Instruct their Software', Morgan Kaufmann.
MIT Logo Foundation, What is Logo? http://el.media.mit.edu/Logo-foundation/logo/index.html.
Palo Alto Research Center (PARC) - PARC History http://www.parc.com/about/milestones.html.
Papert, S. 'What is Logo? And Who Needs it? An essay. In: LCSI's book, Logo Philosophy and Implementation'. http://www.microworlds.com/company/philosophy.pdf.
Papert, S., Harel, I., 1991. 'Situating Constructionism An essay'. Constructionism (Ablex Publishing Corporation, 1991) http://www.papert.org/articles/SituatingConstructionism.html.
Power, D. J. 'A Brief History of Spreadsheets', http://dssresources.com/history/sshistory.html.
Rauterberg, M. 'History of HCI - Sketchpad (Ivan Sutherland - Presentation by MIT Lab' http://www.idemployee.id.tue.nl/g.w.m.rauterberg/presentations/HCI-history/sld020.htm.
Rich, C., Waters, R. C., 1990. 'The Programmer's Apprentice'. The ACM Digital Library - ISBN:0-201-52425-2.
Shim, J.P., Warkentin, M., Courtney, J. F., Power, D J., 2002. 'Past, present, and future of decision support technology. Decision Support Systems' 33 pp 111-126.
Smith, D. C., 1993. 'Pygmalion: An Executable Electronic Blackboard. A. Cypher, ed. Watch What I Do: Programming by Demonstration'. MIT Press, Chapter 12139.
Stanford University, The Demo http://sloan.stanford.edu/mousesite/1968Demo.html.
Wikipedia, Dartmouth BASIC http://en.wikipedia.org/wiki/Dartmouth_BASIC.
Wikipedia, Simula http://en.wikipedia.org/wiki/Simula.
Details
- Author:
- Neil Davey
- Publisher:
- KnowledgeBoard
- Date:
- 03-Feb-10
- Sections:
- Home , News
This article has been read 1828 times.
