[comp.windows.news] Window System Extensibility

amanda@mermaid.intercon.com (Amanda Walker) (01/05/90)

In article <9001042053.AA10511@brillig.UMD.EDU>, don@CS.UMD.EDU (Don Hopkins)
writes:
> I will be impressed if
> somebody can implement pie menus in NeXTStep (with or without
> the round windows) as seamlessly as they dropped into NeWS (so
> every application gets pie menus, without modification).

One of the things that has impressed me about NeWS over X, SunView, and
any other window system that I've used except for the Macintosh OS is
that it factors out the user interface code from client programs.  Under
NeWS, the code to draw windows, handle user input events, and so on is
determined when the program is invoked, not when it is compiled or linked.
This separation of code is the single greatest advantage that NeWS has over
X, in my opinion.  To take a concrete example, there was a while when I had
a Sun 3/50 on my deks running NeWS 1.1 with liteUI.  I rewrote and twiddled
the UI PostScript code and produced a window system that looked more like
a Mac than a Sun, including customizable color icons selectable per window,
and so on, without touching a byte of client code.  The same binaries that
ran on my machine looking like a Macintosh ran on my co-workers machines
looking like vanilla liteUI.

I don't want half a dozen kinds of windows and UI policies on my screen,
each depending on which toolkit the author decided to use.  I want to decide
what my screen looks like, and have it stay consistent.  One of the strengths
of Apple's X server for the Mac OS is that it has an option to use the native
window system as the X window manager.  This means I can have an xterm or
whatever that acts just like all of the rest of the windows on my screen.
This is a win.  With NeWS, this could be taken even farther, since the *server*
is responsible for higher levels of user interaction abstraction, such as
widget appearance and event handling.  If I want to change how a NeWS client
interacts with me, I can do it, because these decisions are not decided at
compile time, but at invocation time.  I find this to be a great advantage
over more classical approaches to windowing UIs.  If I (or someone else,
for that matter) makes an improvement or a change that I want to use, I can,
without disturbing anyone else and still have it apply across the board
when I'm using even older client software.  This is the gem behind all of
Sun's marketing hype.

Unless I have missed a pretty fundamental shift in philosophy, X does not
permit such flexibility.

Amanda Walker
InterCon Systems Corporation
--