180 likes | 258 Views
Toolkits and Languages. CSE 490JL Section Dec 1 st & 3 rd 2004 Richard C. Davis & Kate Everitt. Outline. Definitions Language Toolkit History Evaluation Breadth/Depth Path of least resistance Ease of Use Future The Big Picture. The Power of Language.
E N D
Toolkits and Languages CSE 490JL Section Dec 1st & 3rd 2004 Richard C. Davis & Kate Everitt
Outline • Definitions • Language • Toolkit • History • Evaluation • Breadth/Depth • Path of least resistance • Ease of Use • Future • The Big Picture
The Power of Language • Language has value imbued in it • Words of a language limit what is expressible • Examples • Eskimo (Inuit) words for “snow” • Greek words for “love”
What is a Toolkit? • A set of reusable components built in a language • Language: Java • Toolkits: AWT, Swing
Why Build Toolkits? • Quality of interfaces • Speed of creation • Determines expressible applications
Discussion • By this time, you have all used a wide variety of tools & languages • Which belong in the hall of fame and which in the hall of shame?
History of Toolkits:UIMS • UIMS • User Interface Management System • Term coined by David Kasik (Boeing 1982) • Early UIMS • William Newman's Reaction Handler (Imperial College, London 1966) • Smalltalk Window Manager (PARC 1974)
History of Toolkits:Toolkits go “Mainstream” • First Widely Adopted Toolkits • XLib (MIT, 1984) • Mac Toolbox (Apple, 1984) • Win16 (Microsoft 1990) • Toolkits evolve • Win16->Win32->MFC • XLib->Motif Widget Set
History of Toolkits:Today • Desktop • Windows Forms • Cocoa (Mac OS X) • Rapid Prototyping • Visual Basic • Tk (Tcl, Perl, Python) • Cross-platform • Swing • GTK, GTK+ • QT • Web • HTML, CSS • Flash • AWT, Swing
Evaluation • What do we want in a toolkit? • Depth / Breadth • Path of least resistance • Ease of use • Robustness
Breadth/Depth • Toolkits have value imbued in them • Depth: how powerful the methods are • Breadth: the coverage of the methods • Methods and objects of a toolkit limit what is expressible
Path of Least Resistance • Apart from what is possible, even if functionality is there, toolkits afford the creation of different kinds of programs • Path of least resistance (Myers et al) • Consider: Creating a webpage in flash vs html
Ease of Use: Toolkit as UI • We can consider the toolkit as a UI with programmers as the users. How do standard UI principles hold for toolkits? • Visibility of system status (is that object really gone?) • Consistency • Conceptual model • Affordances • Relationship to the real world
Ease of Use: Toolkit as UI • Can we test the usability of toolkits? • HE’s? • Usability Testing? (Papier Mache) • “Paper prototyping”? • Papier-Mâché (Klemmer et al 2004) • Heuristics • Ease of Use • Facilitating Reuse • Schemas Yield Similar Code
Future • Ubiquitous computing, Speech UI’s, Pen-based UI’s, Physical UI’s • Need for new paradigms, new ideas, new toolkits
Discussion • What is the importance of controlling the design of a new toolkit or language?
The Big Picture • Market forces often determine the language/toolkit used in a project • But engineers have some say • Hard to choose a toolkit • How to evaluate without programming? • Toolkits are constantly changing • Try to keep toolkit knowledge current • Listen for other programmers’ comments • Get experience with a broad range
References • Brad Myers, Scott E. Hudson, and Randy Pausch, "Past, Present and Future of User Interface Software Tools," ACM Transactions on Computer Human Interaction, To Appear in the Special Millennium Issue • Brad Myers, User Interface Software Tools, ACM Transactions on Computer-Human Interaction, Vol 2, No 1, March 1995, pp 64-103 • Scott R. Klemmer, Jack Li, James Lin, and James A. Landay, Papier-Mâché: Toolkit Support for Tangible Input. CHI Letters, Human Factors in Computing Systems: CHI2004. 6(1).