RUBY: Reminiscing About User Interfaces by Brad Over the Years

Total Page:16

File Type:pdf, Size:1020Kb

RUBY: Reminiscing About User Interfaces by Brad Over the Years RUBY: Reminiscing about User interfaces by Brad over the Years Brad A. Myers Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bam [email protected] 1© 2017 – Brad A. Myers 40th Anniversary! RUBY Reminiscing about User interfaces by Brad over the Years 3 © 2017 – Brad A. Myers 35 CHI conferences: 1982 - 2017 4 © 2017 – Brad A. Myers Lots of Badges 5 © 2017 – Brad A. Myers 35 CHI conferences: 1982 - 2017 6 © 2017 – Brad A. Myers Conference ribbons 1990 (Thanks to Ben Shneiderman for the picture) 7 © 2017 – Brad A. Myers Baby me 8 © 2017 – Brad A. Myers Brad with Hair 9 © 2017 – Brad A. Myers Nerdy me 10 © 2017 – Brad A. Myers ~1974 - Teletype 11 By Jamie ‐ Flickr: Telex machine TTY, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=19282428 © 2017 – Brad A. Myers MIT 12 © 2017 – Brad A. Myers Observations • Brad is really old… • If you don’t keep stuff, you won’t have it 40 years later! 13 © 2017 – Brad A. Myers Spatial Data Management System (SDMS) • ~ 1977 • MIT Architecture Machine Group • Predecessor of MIT Media Lab • Undergraduate research 14 Christopher F. Herot, Richard Carling, Mark Friedell, and David Kramlich. 1980. A prototype Spatial Data Management System. In Proceedings of the 7th annual conference on Computer graphics and interactive techniques (SIGGRAPH '80). ACM, New York, NY, USA, 63‐70. DOI=http://dx.doi.org/10.1145/800250.807470 © 2017 – Brad A. Myers Xerox PARC • Important research lab • Summer intern 15 Picture credit: http://www.digibarn.com/collections/locations/xerox‐parc/ © 2017 – Brad A. Myers Smalltalk group at PARC • Summer 1977 • Systems Sciences Lab (SSL) • Alan Kay Alan Kay • Also: Dan Ingalls, Adele Goldberg, Ted Kaehler, Bruce Horn, etc. 16 © 2017 – Brad A. Myers Xerox Alto • 1979 17 © 2017 – Brad A. Myers Computer Sciences Lab (CSL) at PARC • Summer 1978 • Summer & Fall 1979 – Master’s Thesis • Used the “Mesa” programming language • Advised by: Dan Swinehart (PARC) and David Reed (MIT) • Helped by: John Warnock, Ed Satterthwaite, Butler Lampson, Warren Teitelman, Bill Paxton and Paul Rovner 18 © 2017 – Brad A. Myers Incense • Displays data structures similar to how they might be drawn on a blackboard • Customizable 19 © 2017 – Brad A. Myers SIGGRAPH’83 20 © 2017 – Brad A. Myers Observations • It’s better not to write out and read a talk. 21 © 2017 – Brad A. Myers Three Rivers Computer Corporation • 1980-1983 • Pittsburgh, PA • PERQ workstation 22 © 2017 – Brad A. Myers 23 © 2017 – Brad A. Myers Bernita • 1982 24 © 2017 – Brad A. Myers Bernita • 1982 • 35 years! 25 © 2017 – Brad A. Myers Sapphire for PERQ • 1983 • SAPPHIRE Screen Allocation Package Providing Helpful Icons and Rectangular Environments 26 © 2017 – Brad A. Myers 1983 - 1987 27 © 2017 – Brad A. Myers Percent-Done Progress Indicators • CHI’1985 paper Static busy signals Progress indicators are better 28 © 2017 – Brad A. Myers Two-Handed Input [Buxton and Myers, CHI’1986] 29 © 2017 – Brad A. Myers Taxonomy, 1986 • Programming by Example vs. with Example • Visual Programming vs. Program Visualization 30 © 2017 – Brad A. Myers Observations • A good taxonomy or survey can be a nice contribution 31 © 2017 – Brad A. Myers Peridot, 1986-87 • PERIDOT Programming by Example for Real-time Interface Design Obviating CC BY‐SA 3.0, https://commons.wikimedia.org/ Typing w/index.php?curid=996283 32 © 2017 – Brad A. Myers Peridot, 1986-87 33 © 2017 – Brad A. Myers Observations • If you are first, then you can just show “it can be done” • To show “better” requires different evidence • User study or measurements • Showing it can be used by certain users • Depends on what you want to claim 34 © 2017 – Brad A. Myers Observations • Having kids while a graduate student can work out since you have more flexible time than when you are a professor. Ryan Myers was born in Peridot Toronto, Canada in © 2017 – Brad A. Myers August, 1985 My Four Sons, 1993 36 © 2017 – Brad A. Myers Family Today • 2016 37 © 2017 – Brad A. Myers Carnegie Mellon University, 1987… • 30 years this summer! 38 © 2017 – Brad A. Myers Garnet, 1988 - 1994 • GARNET Generating an Amalgam of Real-time, Novel Editors and Toolkits 39 © 2017 – Brad A. Myers Prototype-Instance Object System • Any object can be the prototype for other objects • Now used by JavaScript • Changes to prototype propagate • Structural inheritance 40 © 2017 – Brad A. Myers Constraints • Values automatically computed based on dependencies • Connect graphics • Showed useful for copying values • “Data bindings” • Introduced “pointer variables” for constraints • E.g., “same size as whatever is selected” 41 © 2017 – Brad A. Myers Retained Object Model • “Display list” for graphics • Automatically handles refresh • Like DOM for web pages today 42 © 2017 – Brad A. Myers “Interactors” Input Model • Parameterized objects for each kind of behavior • Key behaviors used in GUIs • Independent of the graphics • Reusable for all interactions • Never need to write event handlers • Concept used by Adobe Flash Catalyst, etc. 43 © 2017 – Brad A. Myers Higher Level Tools in Garnet LAPIDARY AGATE GILT MARQUISE Lisp-based A Graphical Mostly Assistant for Gesture-recognizer Interface Automated, Prototyping And Layout Remarkably Interface Trainer by Tool Quick Designs Example JADE User Allowing Judgment-based Interface Remarkable Automatic Software Yield Dialog Environment Editor © 2017 – Brad A. Myers C32 CMU's Clever and Compelling Contribution to Computer Science in C32 CommonLisp which is Customizable and Characterized by a Complete Coverage of • CHI’1991 Code and Contains a Cornucopia of Creative Constructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, and Communicated using Columns of Cells, that are Constantly Calculated so they Change Continuously, and Cancel 45 Confusion. © 2017 – Brad A. Myers Silk • James Landay PhD, 1996 • SILK Sketching Interfaces Like Krazy 46 © 2017 – Brad A. Myers 3 Generations of CHI Academy • Baecker, Buxton, Myers, Landay 47 © 2017 – Brad A. Myers Programming By Demonstration TOURMALINE GAMUT Text-formatting Games Ought to Are Use and Made Rely on Using Macrostyles This And Layout Inferred Nicely by Example © 2017 – Brad A. Myers Programming By Demonstration TOURMALINE GAMUT Text-formatting Games Ought to Are Use and Made Rely on Using Macrostyles This And Layout GOLD Inferred Graphs and Nicely by Output Example Laid-out by Demonstration © 2017 – Brad A. Myers All the Widgets, CHI’1990 • Scroll Bars • Menus • Palettes • Command Buttons • Radio Buttons • Check Boxes • Text Selection • Basic Text Editing • Dialog Boxes • Selecting Graphics • Basic Editing of Graphics • Desktops • Window Manager Commands 50 © 2017 – Brad A. Myers Amulet: 1994 – 1998 • AMULET Automatic Manufacture of Usable and Learnable Editors and Toolkits 51 © 2017 – Brad A. Myers Command Objects • TOPAZ Transcripts Of Programs Activated with Zeal 52 © 2017 – Brad A. Myers Pebbles, 1998 - • PEBBLES PDAs for Entry of Both Bytes and Locations from External Sources 53 © 2017 – Brad A. Myers Pebbles Projects 54 © 2017 – Brad A. Myers Pebbles Projects • Command Post of the Future • Successful DARPA program • Expected to be about speech/gestures • Actual issues were mainly situation awareness • Including connected mobile devices 55 © 2017 – Brad A. Myers Personal Universal Controller (PUC) • Jeff Nichols PhD, 2006 Specifications Control Feedback 56 © 2017 – Brad A. Myers Personal Universal Controller (PUC) 1400 1200 1000 800 600 400 Average Time (sec) 200 0 57 HP HP-PUC HP- Canon Canon-PUC Canon- Consistent Consistent © 2017 – Brad A. Myers EdgeWrite • Jake Wobbrock, PhD, 2006 58 © 2017 – Brad A. Myers Sugilite • Current PhD work of Toby Li • See our paper, Thurs, 11:30 - 12:50 in Room 203 • SUGILITE (come to the talk to see what it stands for!) 59 © 2017 – Brad A. Myers Natural Programming, 1995- • Make programming easier and more correct by making it more natural • Closer to the way that people think about algorithms and solving their tasks • Novice, expert, and [Scaffidi, Shaw and Myers 2005] 100,000,000 90,000,000 “end-user” 80,000,000 60,000,000 55,000,000 programmers 40,000,000 60 20,000,000 13,000,000 6,000,000 3,000,000 0 © 2017 – Brad A. Myers Users Spreadsheets and Self-Described Scientists & Professional DBs Programmers Engineers Programmers HCI Study of Programmers 1973 1980 Copyright © 2012 – Brad A. Myers Allen Newell and Stuart Card, 1985 • “Millions for compilers but hardly a penny for understanding human programming language use. Now, programming languages are obviously symmetrical, the computer on one side, the programmer on the other. In an appropriate science of computer languages, one would expect that half the effort would be on the computer side, understanding how to translate the languages into executable form, and half on the human side, understanding how to design languages that are easy or productive to use.... The human and computer parts of programming languages have developed in radical asymmetry.” 62 © 2017 – Brad A. Myers Observations: • Intuitions of programmers about what would be helpful are often wrong • Need to do studies of programmers 63 © 2017 – Brad A. Myers High Goal: Gentle Slope Ceiling Systems Web Development Java Visual Basic Flash Server-side Swing C Programming C or C# Programming Difficulty of Use JavaScript ActionScript CSS & HTML Basic Goal Low editor Threshold Program Complexity and Sophistication 64 © 2013 – Brad A. Myers Making Programming Easier • Key focus of most
Recommended publications
  • Stanford University Medical Experimental Computer Resource (SUMEX) Records SC1248
    http://oac.cdlib.org/findaid/ark:/13030/c8s46z8g Online items available Guide to the Stanford University Medical Experimental Computer Resource (SUMEX) Records SC1248 Daniel Hartwig & Jenny Johnson Department of Special Collections and University Archives January 2018 Green Library 557 Escondido Mall Stanford 94305-6064 [email protected] URL: http://library.stanford.edu/spc Guide to the Stanford University SC1248 1 Medical Experimental Computer Resource (SUMEX) Records SC... Language of Material: English Contributing Institution: Department of Special Collections and University Archives Title: Stanford University Medical Experimental Computer Resource (SUMEX) records Identifier/Call Number: SC1248 Physical Description: 33 Linear Feet Date (inclusive): 1975-1991 Special Collections and University Archives materials are stored offsite and must be paged 48 hours in advance. For more information on paging collections, see the department's website: http://library.stanford.edu/spc. Conditions Governing Access Materials are open for research use. Audio-visual materials are not available in original format, and must be reformatted to a digital use copy. Conditions Governing Use All requests to reproduce, publish, quote from, or otherwise use collection materials must be submitted in writing to the Head of Special Collections and University Archives, Stanford University Libraries, Stanford, California 94304-6064. Consent is given on behalf of Special Collections as the owner of the physical items and is not intended to include or imply permission from the copyright owner. Such permission must be obtained from the copyright owner, heir(s) or assigns. Restrictions also apply to digital representations of the original materials. Use of digital files is restricted to research and educational purposes.
    [Show full text]
  • The Development of Smalltalk Topic Paper #7
    The Development of Smalltalk Topic Paper #7 Alex Laird Max Earn Peer CS-3210-01 Reviewer On Time/Format 1 2/4/09 Survey of Programming Languages Correct 5 Spring 2009 Clear 2 Computer Science, (319) 360-8771 Concise 2 [email protected] Grading Rubric Grading Total 10 pts ABSTRACT Dynamically typed languages are easier on the compiler because This paper describes the development of the Smalltalk it has to make fewer passes and the brunt of checking is done on programming language. the syntax of the code. Compilation of Smalltalk is just-in-time compilation, also known Keywords as dynamic translation. It means that upon compilation, Smalltalk code is translated into byte code that is interpreted upon usage and Development, Smalltalk, Programming, Language at that point the interpreter converts the code to machine language and the code is executed. Dynamic translations work very well 1. INTRODUCTION with dynamic typing. Smalltalk, yet another programming language originally developed for educational purposes and now having a much 5. IMPLEMENTATIONS broader horizon, first appeared publically in the computing Smalltalk has been implemented in numerous ways and has been industry in 1980 as a dynamically-typed object-oriented language the influence of many future languages such as Java, Python, based largely on message-passing in Simula and Lisp. Object-C, and Ruby, just to name a few. Athena is a Smalltalk scripting engine for Java. Little Smalltalk 2. EARLY HISTORY was the first interpreter of the programming language to be used Development for Smalltalk started in 1969, but the language outside of the Xerox PARC.
    [Show full text]
  • The Cedar Programming Environment: a Midterm Report and Examination
    The Cedar Programming Environment: A Midterm Report and Examination Warren Teitelman The Cedar Programming Environment: A Midterm Report and Examination Warren Teitelman t CSL-83-11 June 1984 [P83-00012] © Copyright 1984 Xerox Corporation. All rights reserved. CR Categories and Subject Descriptors: D.2_6 [Software Engineering]: Programming environments. Additional Keywords and Phrases: integrated programming environment, experimental programming, display oriented user interface, strongly typed programming language environment, personal computing. t The author's present address is: Sun Microsystems, Inc., 2550 Garcia Avenue, Mountain View, Ca. 94043. The work described here was performed while employed by Xerox Corporation. XEROX Xerox Corporation Palo Alto Research Center 3333 Coyote Hill Road Palo Alto, California 94304 1 Abstract: This collection of papers comprises a report on Cedar, a state-of-the-art programming system. Cedar combines in a single integrated environment: high-quality graphics, a sophisticated editor and document preparation facility, and a variety of tools for the programmer to use in the construction and debugging of his programs. The Cedar Programming Language is a strongly-typed, compiler-oriented language of the Pascal family. What is especially interesting about the Ce~ar project is that it is one of the few examples where an interactive, experimental programming environment has been built for this kind of language. In the past, such environments have been confined to dynamically typed languages like Lisp and Smalltalk. The first paper, "The Roots of Cedar," describes the conditions in 1978 in the Xerox Palo Alto Research Center's Computer Science Laboratory that led us to embark on the Cedar project and helped to define its objectives and goals.
    [Show full text]
  • MVC Revival on the Web
    MVC Revival on the Web Janko Mivšek [email protected] @mivsek @aidaweb ESUG 2013 Motivation 30 years of Smalltalk, 30 years of MVC 34 years exa!tly, sin!e "#$# %ot in JavaScri&t MVC frameworks 'or Sin(le)*age and +ealtime web a&&s ,e Smalltalkers s-ould respe!t and revive our &earls better Contents MVC e &lained %istory /sa(e in !.rrent JavaScri&t frameworks /sa(e in Smalltalk C.rrent and f.t.re MVC in 0ida/Web MVC Explained events Ar!hite!tural desi(n &attern - Model for domain s&e!ifi! data and logi! View updates Controller ) View for &resentation to t-e .ser ) Controller for intera!tions wit- t-e .ser UI and .&datin( domain model Domain changes Main benefit: actions observing ) se&aration of !on!erns Model MVC based on Observer pattern subscribe ) 3bserver looks at observee Observer changed - 3bservee is not aware of t-at s u 4e&enden!y me!-anism2 B t n - 3bserver is de&endent on 3bservee state e observing v - 3bservee m.st re&ort state !-an(es to 3bserver E b - *.b/S.b Event 6.s de!ou&les 3bservee from u S / 3bserver to &reserve its .nawarnes of observation b u changed P Observee Main benefit: (Observable) ) se&aration of !on!erns Multiple observers subscribe - M.lti&le observers of t-e same 3bservee Observer changed - 7n MVC an 3bservee is View and 3bservee is domain Model, t-erefore2 s u B t - many views of t-e same model n e observing v - many a&&s E b - many .sers u S / - mix of all t-ree !ases b u Observee changed P (Observable) Example: Counter demo in Aida/Web M.lti.ser realtime web !ounter exam&le -ttp://demo.aidaweb.si – !li!k Realtime on t-e left – !li!k De!rease or In!rease to c-an(e counter – !ounter is c-an(ed on all ot-er8s browsers History of MVC (1) 7nvented by 9rygve +eenska.g w-en -e worked in "#$:1$# wit- Alan ;ay's group on <ero *arc on Smalltalk and Dynabook – 'inal term Model)View)Controller !oined 10.
    [Show full text]
  • Dynamic Object-Oriented Programming with Smalltalk
    Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Autumn Semester 2009 LECTURE TITLE What is surprising about Smalltalk > Everything is an object > Everything happens by sending messages > All the source code is there all the time > You can't lose code > You can change everything > You can change things without restarting the system > The Debugger is your Friend © Oscar Nierstrasz 2 ST — Introduction Why Smalltalk? > Pure object-oriented language and environment — “Everything is an object” > Origin of many innovations in OO development — RDD, IDE, MVC, XUnit … > Improves on many of its successors — Fully interactive and dynamic © Oscar Nierstrasz 1.3 ST — Introduction What is Smalltalk? > Pure OO language — Single inheritance — Dynamically typed > Language and environment — Guiding principle: “Everything is an Object” — Class browser, debugger, inspector, … — Mature class library and tools > Virtual machine — Objects exist in a persistent image [+ changes] — Incremental compilation © Oscar Nierstrasz 1.4 ST — Introduction Smalltalk vs. C++ vs. Java Smalltalk C++ Java Object model Pure Hybrid Hybrid Garbage collection Automatic Manual Automatic Inheritance Single Multiple Single Types Dynamic Static Static Reflection Fully reflective Introspection Introspection Semaphores, Some libraries Monitors Concurrency Monitors Categories, Namespaces Packages Modules namespaces © Oscar Nierstrasz 1.5 ST — Introduction Smalltalk: a State of Mind > Small and uniform language — Syntax fits on one sheet of paper >
    [Show full text]
  • As We May Communicate Carson Reynolds Department of Technical Communication University of Washington
    As We May Communicate Carson Reynolds Department of Technical Communication University of Washington Abstract The purpose of this article is to critique and reshape one of the fundamental paradigms of Human-Computer Interaction: the workspace. This treatise argues that the concept of a workspace—as an interaction metaphor—has certain intrinsic defects. As an alternative, a new interaction model, the communication space is offered in the hope that it will bring user interfaces closer to the ideal of human-computer symbiosis. Keywords: Workspace, Communication Space, Human-Computer Interaction Our computer systems and corresponding interfaces have come quite a long way in recent years. We no longer patiently punch cards or type obscure and unintelligible commands to interact with our computers. However, out current graphical user interfaces, for all of their advantages, still have shortcomings. It is the purpose of this paper to attempt to deduce these flaws by carefully examining our earliest and most basic formulation of what a computer should be: a workspace. The History of the Workspace The modern computerized workspace has its beginning in Vannevar Bush’s landmark article, “As We May Think.” Bush presented the MEMEX: his vision of an ideal workspace for researchers and scholars that was capable of retrieving and managing information. Bush thought that machines capable of manipulating information could transform the way that humans think. What did Bush’s idealized workspace involve? It consists of a desk, and while it can presumably be operated from a distance, it is primarily the piece of furniture at which he works. On top are slanting translucent screens, on which material can be projected for convenient reading.
    [Show full text]
  • Session 1: Introducing Extreme Java
    Extreme Java G22.3033-006 Session 1 – Main Theme Introducing Extreme Java Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Agenda • Course Logistics, Structure and Objectives • Java Programming Language Features • Java Environment Limitations • Upcoming Features in “Tiger” 1.5 • Model Driven Architectures for Java Systems • Java Enterprise Application Enabling • Agile Modeling & eXtreme Programming • Aspect-Oriented Programming & Refactoring • Java Application Performance Enhancement • Readings, Class Project, and Assignment #1a 2 1 Course Logistics • Course Web Site • http://cs.nyu.edu/courses/spring03/G22.3033-006/index.htm • http://www.nyu.edu/classes/jcf/g22.3033-007/ • (Password: extjava) • Course Structure, Objectives, and References • See detailed syllabus on the course Web site under handouts • See ordered list of references on the course Web site • Textbooks • Mastering Java 2, J2SE 1.4 • J2EE: The Complete Reference • Expert One-on-One: J2EE Design and Development 3 Part I Java Features 4 2 Java Features Review • Language Categories • Imperative • Functional • Logic-based • Model-based PL Comparison Framework • Data Model • Behavioral Model • Event Model • Execution, Persistence, etc. • See Session 1 Handout on Java Review 5 J2SE 1.4 Features http://java.sun.com/j2se/1.4/index.html 6 3 J2SE 1.4 Features (continued) • HotSpot virtual machine • Full 64-bit support • Improved garbage collection • Ability to exploit multiprocessing • Optimization of the Java2D
    [Show full text]
  • Creating Graphical User Interfaces
    i i \main" 2004/6/14 page 355 i i C H A P T E R 15 Creating Graphical User Interfaces 15.1 WHERE DO GRAPHICAL USER INTERFACES COME FROM? 15.2 CREATING A BASIC GRAPHICAL USER INTERFACE 15.3 CALLBACKS AND LAYOUT MANAGERS 15.4 USING SCROLLING LISTS Chapter Learning Objectives ² To make graphical user interfaces out of components such as windows, text ¯elds, buttons, and scrolling lists. ² To use callbacks to handle user interface events. ² To use trees for conceptualizing user interface structure. 15.1 WHERE DO GRAPHICAL USER INTERFACES COME FROM? The ¯rst computers were incredibly painful and tedious to work with. You \pro- grammed" them by literally rewiring them. There wasn't a screen, so you couldn't have a \graphical" user interface at all. Our common experience of using a keyboard to interact with the computer didn't come until much later. In the late 1960's, the dominant mode of interaction with the computer was through punched cards. Using a keyboard on a card punch machine, you prepared your instructions for the computer on pieces of cardboard that were then ordered in the right sequence and loaded into the computer. Heaven help the person who dropped her stack of cards and had to re-order hundreds of cards of a large program! The output from the computer back to the programmer was typically large piles of paper printouts, though was some starting work with computer music and computer graphics (on specialized, expensive monitors). In the 1960's and 1970's, computer scientists began envisioning a new role for the computer in its interaction with humans.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria Revision 1.0
    Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Revision 1.0 Rana Naim∗ Mohammad Fahim Nizam† Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Sheetal Hanamasagar‡ Jalal Noureddine§ Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Marinela Miladinova¶ Concordia University Montreal, Quebec, Canada [email protected] Abstract This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following criteria: secure programming practices, web application development, web service composition, OOP-based abstractions, reflection, aspect orientation, functional programming, declarative programming, batch scripting, and UI prototyping. We study these languages in the context of the above mentioned criteria and the level of support they provide for each one of them. Keywords: programming languages, programming paradigms, language features, language design and implementation 1 Introduction Choosing the best language that would satisfy all requirements for the given problem domain can be a difficult task. Some languages are better suited for specific applications than others. In order to select the proper one for the specific problem domain, one has to know what features it provides to support the requirements. Different languages support different paradigms, provide different abstractions, and have different levels of expressive power. Some are better suited to express algorithms and others are targeting the non-technical users. The question is then what is the best tool for a particular problem.
    [Show full text]
  • CSCI-344 Programming Language Concepts (Section 3)
    CSCI-344 Programming Language Concepts (Section 3) Lecture 18 Introduction to Smalltalk Instructor: Hossein Hojjat October 19, 2016 Smalltalk: Grandparent of all object-oriented languages 1 Traveling upward (in the picture) through heavy seas we come to the pinnacle, a snow white island rising like an ivory tower out of the surrounding shark infested waters. Here we find the fantastic kingdom of Smalltalk, where great and magical things happen. But alas ... the craggy aloofness of the kingdom of Smalltalk keeps it out of the mainstream of things. (Byte Magazine August 1978, p. 18) 2 Xerox PARC • It all started here, in Rochester! • In early seventies Xerox corporation (Rochester) started a second research center in west coast Xerox PARC (Palo Alto Research Center Incorporated) • PARC was the driving force behind many inventions in modern computing - Laser printers - Computer-generated bitmap graphics - Graphical user interface - WYSIWYG text editor - Ethernet as a local-area computer network - Object-oriented programming (Smalltalk) 3 Xerox PARC 4 Alan Kay • In 1968 Kay created a revolutionary concept: “A Personal Computer For Children Of All Ages” • Thin portable computer, highly dynamic device that weighed no more than two pounds • It embodied all the elements of a graphical user interface, or GUI • Software component of this research was Smalltalk - Smalltalk went on to have a life of its own independent of the concept 5 Implementations • Smalltalk-80 was the first language variant made available outside of PARC • Squeak is a modern, open-source, highly portable, fast, full-featured Smalltalk implementation - Derived directly from Smalltalk-80 original Smalltalk-80 code 6 Basic Concepts • Smalltalk is a pure object oriented language • Everything in Smalltalk is an object! - Basic primitive types (integers) are objects - Every value is an object: number 5 is an object - ..
    [Show full text]
  • Croquet: a Collaboration System Architecture
    Croquet: A Collaboration System Architecture David A. Smith, Alan Kay, Andreas Raab, David P. Reed VPRI Technical Report TR-2003-002 Viewpoints Research Institute, 1025 Westwood Blvd 2nd flr, Los Angeles, CA 90024 t: (310) 208-0524 VPRI Technical Report TR-2003-002 Croquet A Collaboration System Architecture David A. Smith Alan Kay 1 Andreas Raab David P. Reed 104 So. Tamilynn Cr. 1209 Grand Central Ave University of MIT Media Laboratory Cary NC, 27513 Glendale, CA 91201 Magdeburg, Germany 20 Ames Street davidasmith@ alan.kay@ andreas.raab@ Room E15-492 bellsouth.net viewpointsresearch.orG squeakland.orG CambridGe, MA 02139 [email protected] ABSTRACT1 this question was asked lonG aGo, and the strenGth of the Croquet [18] is a computer software architecture built from answer has successfully carried us for a quarter century. On the Ground up with a focus on deep collaboration between the other hand, the current environments are really just the teams of users. It is a totally open, totally free, highly thin veneer over what even lonG aGo were seriously portable extension to the Squeak [5] proGramminG system. outmoded approaches to development and desiGn. Many of Croquet is a complete development and delivery platform the really Good fundamental ideas that people had were left for doinG real collaborative work. There is no distinction on the cuttinG room floor. between the user environment and the development environment. great deal has happened in the last few decades that allows Croquet is focused on interactions inside of a 3D shared for some fundamentally new approaches that could not have space that is used for context based collaboration, where been considered at the time.
    [Show full text]
  • Silicon Valley Inventor of 'Cut, Copy and Paste' Dies 20 February 2020
    Silicon Valley inventor of 'cut, copy and paste' dies 20 February 2020 cutting portions of printed text and affixing them elsewhere with adhesive. "Tesler created the idea of 'cut, copy, & paste' and combined computer science training with a counterculture vision that computers should be for everyone," the Computer History Museum in Silicon Valley tweeted Wednesday. The command was made popular by Apple after being incorporated in software on the Lisa computer in 1983 and the original Macintosh that debuted the next year. Tesler worked for Apple in 1980 after being Lawrence "Larry" Tesler, who invented the "cut, copy recruited away from Xerox by late co-founder Steve and paste" command, died on Monday Jobs. Tesler spent 17 years at Apple, rising to chief scientist. Silicon Valley on Wednesday was mourning a pioneering computer scientist whose He went on to establish an education startup and accomplishments included inventing the widely do stints in user-experience technology at Amazon relied on "cut, copy and paste" command. and Yahoo. Bronx-born Lawrence "Larry" Tesler died this week © 2020 AFP at age 74, according to Xerox, where he spent part of his career. "The inventor of cut/copy & paste, find & replace, and more was former Xerox researcher Larry Tesler," the company tweeted. "Your workday is easier thanks to his revolutionary ideas. Larry passed away Monday, so please join us in celebrating him." A graduate of Stanford University, Tesler specialized in human–computer interaction, employing his skills at Amazon, Apple, Yahoo, and the Xerox Palo Alto Research Center (PARC). The cut and paste command was reportedly inspired by old time editing that involved actually 1 / 2 APA citation: Silicon Valley inventor of 'cut, copy and paste' dies (2020, February 20) retrieved 28 September 2021 from https://techxplore.com/news/2020-02-silicon-valley-inventor-dies.html This document is subject to copyright.
    [Show full text]