History of End User Programming
1960s
In the 1960s Dartmouth BASIC programming language [7] was designed and implemented at Dartmouth College by John Kemeny and Thomas Kurtz. Over time BASIC became a popular language for home users, and business use, it introduced many people to programming as a hobby or career. Many of the modern concepts of computer graphics, dynamic objects and object oriented programming were prototyped by Ivan Sutherland in 1963 in Sketchpad [13][14]. In the mid 1960s Seymour Papert, a mathematician who had been working with Piaget in Geneva, came to the United States where he co-founded the MIT Artificial Intelligence Laboratory with Marvin Minsky. Papert worked with the team from Bolt, Beranek and Newman, led by Wallace Feurzeig that created the first version of Logo [25] in 1967. In the late sixties Alan Kay [2][3][17] 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. The Simula [28] language was developed by Ole-Johan Dahl and Kristen Nygaard and this included Object-Oriented concepts. Douglas Engelbert’s worked on a project to augment the human intellect, as part of the Augment [8] project he demonstrate Hypertext and video conferencing.
1970s
Alan Kay joined the Xerox Palo Alto Research Center (PARC) [17][19] California in 1971. Throughout the seventies the group at PARC led by Dr. Kay developed an integrated programming language and programming environment called Smalltalk [10]. In the early seventies the Alto personal computer was created at the 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, and offered menus and icons, and linked to a local area network. The Alto provided the foundation for Xerox’s STAR 8010 Information System. 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, came up with the idea for an interactive visible calculator. Bricklin and Bob Frankston then co-invented the software program VisiCalc [1]. 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.
1980s
During the 1980s ownership of personal computers became increasingly popular and many home users programmed using BASIC. In the early eighties IBM developed the first personal computer built from off the shelf parts (called open architecture) [15]. This included a command line operating system written by Microsoft and the Microsoft BASIC programming language. Apple developed the GUI further for the Lisa [5] 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.
1990s
End User Programming research has continued to the present day. Research has continued in techniques of Visual Programming [9] e.g. Alice [4], Programming by Example [2][21], programming with automated assistance [20], and Natural Language Programming [27]. Squeak and Croquet[6] have developed from the early work in Smalltalk.
Tim Berners-Lee [23] developed HyperText Markup Language (HTML), and has been involved with the World Wide Web Consortium (W3C) [29] in developing standards base languages for the Web. This has encouraged the growth of the ‘Semantic Web’ [11] which allows both humans and computers to search and interact with pages more and so encouraged the development of interactive web pages and communities.
2000s
Recent, present and future research can enable the use of semantic web technologies, (developed from HTML by Tim Berners-Lee [23] and others), to enable End User Programming. This fusion of research and technologies is illustrated by Henry Lieberman’s home page [12] which has explanations of both areas of research. Examples of this fusion include Protégé [22], Jena [16], TopBraid Composer [24], and OpenCyc [18]. Information about these technologies is available in my semantic web page – http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm. A related development is that of web 2.0. Visual development environments based on AJAX (Asynchronous JavaScript And XML) [26] aim to reproduce on the web, the functionality provided by office tools such as Excel (which is often used as an End User Programming Environment). Information about Ajax and Web 2.0 is available in my Ajax/web2.0 page – http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.
References
1. A Brief History of Spreadsheets – http://dssresources.com/history/sshistory.html – Decision Support System Resources – by D. J. Power, Editor, DSSResources.COM.
2. Alan Kay – http://www.acypher.com/wwid/FrontMatter/index.html – Watch What I Do – Programming by Example.
3. Alan Kay ETech 2003 presentation – http://www.lisarein.com/alankay/tour.html – Lisa Rein’s Tour Of Alan Kay’s Etech 2003 Presentation.
4. Alice v2.0 – http://www.alice.org/ – Learn to Program Interactive 3D Graphics.
5. Apple Lisa – http://fp3.antelecom.net/gcifu/applemuseum/lisa2.html – The First Affordable GUI – Lisa 1 Jan-83 Jan-84, Lisa 2 Jan-84 Apr-85.
6. Croquet – http://www.opencroquet.org/ – a new open source software platform for creating deeply collaborative multi-user online applications.
7. Dartmouth BASIC – http://en.wikipedia.org/wiki/Dartmouth_BASIC – Wikipedia.
8. The Demo – http://sloan.stanford.edu/mousesite/1968Demo.html – Stanford University.
9. Dmoz Open Directory Project – http://dmoz.org/Computers/Programming/Languages/Visual/ – Visual Languages – Programming Languages Reference – Visual Languages.
10. The Early History Of Smalltalk by Alan Kay – http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_II.html – 1967-69–The FLEX Machine, a first attempt at an OOP-based personal computer – Alan Kay – Smalltalk.org.
11. Fifteen Years of the Web – http://news.bbc.co.uk/1/hi/technology/5243862.stm – Internet Timeline – BBC Technology.
12. Henry Lieberman – http://web.media.mit.edu/~lieber/ – Research Scientist – MIT Media Laboratory.
13. History of HCI – http://www.idemployee.id.tue.nl/g.w.m.rauterberg/presentations/HCI-history – Key systems, people and ideas – Presentation by Matthias Rauterberg.
14. History of HCI – Sketchpad (1963) – http://www.idemployee.id.tue.nl/g.w.m.rauterberg/presentations/HCI-history/sld020.htm – Ivan Sutherland – MIT Lab – Presentation by Matthias Rauterberg.
15. Inventors of the Modern Computer – http://inventors.about.com/library/weekly/aa031599.htm -The History of the IBM PC – International Business Machines.
16. Jena – [http://jena.hpl.hp.com/juc2006/proceedings.html] – First Jena User Conference – Proceedings.
17. Kyoto Prize Laureates 2004 – [http://www.kyotoprize.org/commentary_kay.htm] – 2004 Kyoto Prize Laureates – Dr. Alan Curtis Kay (U.S.A., b. 1940) – Computer Scientist, President, Viewpoints Research Institute.
18. OpenCyc – http://www.opencyc.org/ – OpenCyc.org – General knowledge base and commonsense reasoning engine.
19. Palo Alto Research Center (PARC) – History – [http://www.parc.xerox.com/about/history/default.html] – PARC History.
20. The Programmer’s Apprentice – http://portal.acm.org/citation.cfm?id=87912&dl=ACM&coll=GUIDE – The ACM Digital Library.
21. Programming by Example – http://web.media.mit.edu/~lieber/PBE/index.html.
22. Protege – http://protege.stanford.edu/ – Protégé Home – Ontology Development Environment.
23. Tim Berners – [http://www.w3.org/People/Berners-Lee/Lee] – Tim Berners-Lee.
24. TopBraid – http://www.topbraidcomposer.com/ – Semantic Modeling Toolset – Visual modeling environment.
25. What is Logo? – http://el.media.mit.edu/Logo-foundation/logo/index.html – MIT Logo Foundation, What is Logo.
26. Wikipedia – http://en.wikipedia.org/wiki/Ajax_{3bb2a8e703be8d5bb7fc1289a915cd39229c5bcd006c8cdf059732c7e19a8eab}28programming{3bb2a8e703be8d5bb7fc1289a915cd39229c5bcd006c8cdf059732c7e19a8eab}29 – Ajax (programming).
27. Wikipedia – http://en.wikipedia.org/wiki/Natural_language_and_computation – Natural language processing.
28. Simula – http://en.wikipedia.org/wiki/Simula – Simula.
29. World Wide Web Consortium (W3C) – http://www.w3.org – Leading the Web to Its Full Potential….