David Chisnall wrote:
On Friday, Nicolas and I gave a presentation on the ideas and design
for the Étolié project (the slides for which will be available some
time next week when Nicolas has added a few more notes to them). One
thing that came up at this was the fact that some of the terminology we
were presenting to the audience appeared ambiguous. In my view, this
could become a problem in the future, when trying to explain why Étolié
is better or even different than other systems. I would like to
propose the following terms, and see if they make sense to anyone else:
Object[1] - something containing data, stored either by ObjectKit or
DataKit. These represent data in the system, i.e. parts of documents.
They are maintained by the environment.
Component - something which manipulates objects. A component either
transforms the object, or provides a view of the object. Components
each exist in their own address space, and may present a UI.
Filter - a component which has no user interface of its own. Filters
transform one object into a different object (or the same object, in
the case of the null filter).
Widget - a widget has its own internal state and UI, but does not
interact directly with objects. A clock or a CD player would be an
example of a widget. These are things that don't really fit with the
component / document model. They could be called applications, but I
don't want to call them that, because it would engender confusion with
application-based environments. Unlike OS X, there is a clear use for
widgets[2].
Personally, I think widget is a bad choice as well, mostly because lots
of people call UI controls widgets, and immediately think of
widgets-in-the-UI-sense when you say the word (at least in English) Why
not call it an Applet? Docklet? I think the former is preferable,
personally.
Application - a program from a legacy environment. I would suggest
that GNUstep applications run in Étoilé run with the old GNUstep theme,
not Nesedah, to provide a visual clue that they are not full members of
the Étoilé environment.
Hm, not so sure about that...that's not very end-user friendly, at all.
You're thinking like a developer, not a user ;-)
Do these terms make sense?
[1] I'm not sure this is the best word, since the word object already
has strong meanings. Really, these things are concrete instances of
ADTs, but I can't think of a better word at present.
I'm not so sure about this either...Thesaurus.com had this to say on the
matter:
Main Entry: object
Definition: thing
Synonyms: article, body, bulk, commodity, dealie-bob, dohickey,
doodad, entity, fact, gadget, gimmick, gizmo, item, jobby, mass, matter,
phenomenon, reality, something, substance, thing, volume,
whatchamacallit, widget
The only problem is, I'm not sure any of those are better...
[2] On OS X (TIger) , widgets seem to be just like applications, except
that they are smaller and don't conform to the HIGs.
except they're not applications in the traditional sense...they're
JavaScript applets, for the most part, AFAIR