Title: Tools for the Tool Makers
1Tools for the Tool Makers
- CS 376, Fall 2005
- Kevin Collins
2Past, Present and Future of User Interface
Software Tools
- Authors Brad Myers, Scott Hudson and Randy Pausch
Initial questions?
3- Window Managers handle window drawing, sharing,
layout, overlapping, etc, and event generation
(upcalls!) - GUI/widget toolkits provide a good-cop/bad-cop
choice to developers who can choose the
easier-to-use (and standardized) widget-set or
build their own much harder (and non-standard)
graphical elements. Toolkits therefore encourage
developers to build standardized applications in
an efficient way. - GUI interface builders, OOP, Component
architectures (COM, JavaBeans, etc), hypertext,
scripting languages, etc.
I keep hearing about these gooey tools, what are
they?
4- Automatic interface generation compiled either
from grammars or other models - Constraint-based interface descriptions
- User Interface Management Systems (?)
- Did they try anything else along the way?
5So we already have lots of user interface tools
why do we need new or improved ones?
- The ongoing diversity of computing devices
- Interfaces using recognition of more natural
human communication - 3D computing interfaces
- End-user programming and other stuff
Lets see
6Interfaces on these very large and very small
displays typically cannot use the desktop model
- Do we need new a model or just some refinements
to the tools and new applications?
7What non-desktop devices do you use? Do we need a
new model just for different sized devices?
Maybe icons/menus/windows/etc can work with minor
adjustments if they are used in a device-friendly
way?
Its hard to say at this point, but it doesnt
seem like a foregone conclusion that we need a
new or overhauled model.
8What about recognition-based interfaces how
well/often are we using them already?
- These sound promising, why dont we have more and
better interfaces like these?
9Because its hard to make good ones..
- Context is very important for understanding
people. But, it is much easier to build software
to be context-ignorant (besides the specific
tasks it is built to do). - The computer is doing you a favor by speaking
your language, but its not much of a favor unless
it works.
But why?
Oh
10For example, can you read these words?
How about these?
Eh, no. Your second grade teacher wouldnt be
proud.
Barely. But I can see that its much harder to
read individual words without having the context
of a sentence and a topic of discussion. It would
be very difficult to make a readword.exe program.
11Will we need new tools to handle
recognition-based interfaces or can we use the
existing register/event model?
Seems very likely that well need both new models
and tools..
12The third dimension Do you use it? When? How?
Cool -- but the paper seems to be focused on
visual 3D interfaces
13When are visual 3D interfaces useful?
When Im goofing around in reality or virtual
reality, the 3rd dimension is very useful to me
for picking bananas and swinging from trees but
Im not sure if it can help me with my
productivity applications.
14How about these end-user programmers? Are they
really different from regular users? Do we need
new models for them?
Hard to say, but Im not convinced we need to
build new models (and tools) for them.
15Would you rather hit your head or stub your toe?
- As a general point, the article points out that
most applications are either smooth for beginners
(low threshold) or highly capable for advanced
users (high threshold), but not both. Do you find
yourself in or between these two categories?
What?! Neither.
Oh. I like to do everything on the command line
so I can automate things after the first time --
I guess that makes me a toestubbing primate.
16Final comments on this paper?
17Natural Programming Languages and Environments
- Authors Brad Myers, John Pane and Andy Ko
Initial Comments? Video!
18Who and what is a system like HANDS or Alice most
useful for?
- Learning about software in a high-output
environment? - Prototyping for new GUI applications?
- High volume banking systems?
- Personal automation within other applications?
These low-threshold natural programming
environments look pretty cool, but, like any
tool, it is important to know when and why they
are useful (or not).
19Generally, when are end-users willing to debug
whatever it is they are working on?
I wouldnt want to be debugging this powerpoint
presentation right now Maybe theyre more
willing to do it when its okay to have problems?
20- Is there anything more general that we might
learn from this research?
- Investigating not just how users use their
software, but how they conceive of it (the user
model) could be interesting - Aggregate operators could be efficient both from
development and runtime standpoints
21Final thoughts?