Article View: comp.windows.misc
Article #980Re: Window Toolkits and Systems for a bunch of systems.
From: David Haynes
Date: Wed, 27 Jul 1988 18:40
Date: Wed, 27 Jul 1988 18:40
83 lines
4527 bytes
4527 bytes
In article <4937@vdsvax.steinmetz.ge.com> barnett@steinmetz.ge.com (Bruce G. Barnett) writes:
>We are also looking for a window toolkit for user interfaces. The
>primary feature we are looking for is the ability to quickly develop
>complex applications. We have used an internally developed package
>that lets you interactively lay out panels with buttons, sliders,
>etc. Unfortunately, this isn't adequate.
>
>We *Would* like an interactive, object oriented environment.
>
>We would also like to have a somewhat portable window system,
>running on common workstations. (Sun, Apollo, DEC, HP, Symbolics).
It seems to me that asking your window manager to supply all this
is a bit much. As I see it, when people say "portable" they really
mean that they do not have to re-write the code in order to get
it from one system to another. The objective of the requirement
of portability is one of cost --- the lower the better.
However, if you are writing your application such that it depends on
the tools of a particular window manager, you are effectively
reducing your portability rather dramatically. In addition, you
may be setting yourself up for "look and feel" problems from the
point of view that your product does not have a "perceivable market
difference".
One of the ways around this is to add a layer of protocol between the
application and the window manager. This is the approach taken by
both NeWs and the X Windowing System. However, certainly in the case
of X, I think that they have made an error in their way of implementing
the Toolkit libraries.
X causes the toolkit libraries to be linked in with the application
code. This causes large applications which are only portable between
X servers -- fair enough. But, what if I only have a few X servers
and a few NeWs servers and a few dumb terminals to support? I would
have to have my application written in X, NeWs (postscript) and, say,
curses. Hardly a portable solution either.
[To be fair, X does not force you to do things this way. It's just
that this is the common way in which X is being used today]
So, why not add layers of protocols between the application,
something I will call the "agent" and the window manager?
The agent in this case, could be something as simple as a
forms manager, or as complex as a 3D graphics package. The point
is this: Since the agents hold the knowledge of how a task is
to be presented, the application has only to be concerned about
how the data is to be manipulated. Again, since the window manager
is concerned about how the data from the agent is to be physically
converted for the display device, the agent is only responsible
for determining how to format the data from the application in
a virtual sense.
What does this gain us?
1. Portability -- an application, speaking the correct protocol,
would not have to be re-written to support either X or NeWs.
2. Clearer programs: Application code need only deal with the
manipulation of data, not the presentation of data.
3. Customizability -- If you don't like a particular agent,
substitute your own.
4. Growth -- As new systems become available, only the agents
would have to be re-written (only is not a small thing however)
In addition, the protocol can be grown as the requirements
for it become more complex.
Does it work?
Yes, these comments are basically about a small system I and
Stephen Lane developed here to test these ideas. Using the X
Windowing System, we were able to develop an application for
taking telephone messages using only 14 protocol commands
from the application (eg: Load_form("telephone.msg");)
Unfortunately, the plug was pulled on this before I could
take it as far as I wanted to (sigh)...
If anyone is interested in discussing this further (or wants to
talk about data dictionaries for forms systems such as these)
drop me a line. (Of course, if you want to hire me to continue on
this concept, call collect ;-) )
-david-
Technical Details
Message-ID:
<3085@geac.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!yunexus!geac!davidReferences:
<732@muddcs.Claremont.EDU> <356@uva.UUCP> <4937@vdsvax.steinmetz.ge.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!yunexus!geac!david From: david@geac.UUCP (David Haynes) Newsgroups: comp.windows.misc Subject: Re: Window Toolkits and Systems for a bunch of systems. Keywords: Window Toolkits, Window Systems, Portability Message-ID: <3085@geac.UUCP> Date: 27 Jul 88 18:40:02 GMT Article-I.D.: geac.3085 References: <732@muddcs.Claremont.EDU> <356@uva.UUCP> <4937@vdsvax.steinmetz.ge.com> Reply-To: david@geac.UUCP (David Haynes) Organization: The now dead IU project Lines: 83