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].
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.
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.
[2] On OS X (TIger) , widgets seem to be just like applications,
except that they are smaller and don't conform to the HIGs.