The Tunes Interfaces Subproject
Project scope
The Interfaces subproject is devoted towards specifying how things
will interact and interface. This includes humans speaking to
computers, computers speaking to humans, computers speaking to each
other.
The project currently has two main areas to look at. The first is how to
create Tunes User Interfaces that are easier to program for
and use that existing ones. Basically to fix everything wrong with
today's programming and using environments.
The second is the development of a syntax for the HLL. Fare has a
good start going with the semantics, but without some sort of syntax,
you can't have much of a language.
Project Members
Project coordinatior:
Chris
Members: who knows these days, with Tunes in its zombie-like state?
Project Goals/To Keep In Mind
- Speed
- Portability
- Ease of use -- both in learning and, perhaps to a greater extent,
operation
- Looking towards the future, alternative technologies -- not everyone
wants to use a mouse/VGA screen
Plan of Action
HLL
- design an intelligent language syntax
UI
- Find strengths/weaknesses of existing UIs, as well as new
technologies that may be coming down the road. Design and
impliment a new UI API for Tunes based on these findings.
- TUNES wants to be able to support all classes of computations.
Let's look at some of the availible classes, to see how they might
be implimented in a eutopian(-wannabe) OS.
- In Fare's words: build, for text, graphical, audio, ... UIs
"some automatic (but programmable)
interface generators for structures (that is, if I define a
structure, automatically generate the behavior of the
structured editor for it). Let's take basic constructors
lists, vectors, meta-constructors"
Internal Developments
(most recent items first)
Automatic Interface Generation
On Word Processing in Tunes
On Games in Tunes
Tunes against the WWW
Worlds E-mail List Thread: lots of good, old discussion.
Basic ideas thereof:
- All TUNES interaction (both user and machine-based -- there's hardly
a difference) takes place in the context of a "world". You "log in"
to a world, as opposed to opening a shell, and interaction is based
therein.
- Sub-worlds/sub-objects provide for different "frames" of interaction --
a text world might replace your word processor, for example.
- Worlds can enhance/enrich the semantics and interface of an object,
but cannot be allowed to disrupt the basic semantics of the object.
- Worlds should not provide undue abstraction
- Every object exists in some world, weather it be a visible one, or in
some "hard world" -- like on disk
- Unresolved: can objects exist in more than one world at a time?
Some of Rainer's UI Thoughts
What's Wrong With Today's UIs and What We Can
Do to Help: old musings of Chris
Jecel's GUI Paper:
describes GUI advantages, evolution, and the gap between machine's state and
user's perception thereof
Otherwhere on the WWW
WWW UI Links
Up to the Tunes home page
Page maintainer (no more):
Chris
(chrisha@simba.lakeside.sea.wa.us)