[comp.windows.misc] Why I'm suspicious of X

geoff@desint.UUCP (Geoff Kuenning) (02/17/88)

Well, my posting criticizing NeWS certainly achieved its goal of
provoking discussion!

To give the other side a fair chance, I thought I'd stir things up a
bit more by pointing out some major flaws in X11.  (Equal time and
all that, you know -- it's primary season here in the U.S. :-)

The biggest flaw with X, of course, is its baroque complexity.  Need
to draw a rectangle?  No problem, X has four or five different ways.
There are two major ways to paint text, each supported by several
library routines that have essentially the same argument lists.  I
confess I can never remember whether I want to "Draw" or "Image"
a string.  This goes on and on, until there are over 100 routines in
Xlib.  It's so bad that somebody recently complained about the
alphabetical arrangement of the recently-published Xlib manual;  while
it's easy to find the description of a known routine, one badly needs a
categorized listing to discover how to (e.g.) discover the
characteristics of the current visual.  (To be fair, X11 is vastly
better than X10.)

Contrast this with Postscript and NeWS, which manage to compose a
(relatively) small number of operators to get a lot of operations.
Whether you want a rectangle, circle, or character, you build it with a
"path" and then decide whether you want to stroke (that always sounded
obscene to me :-) or fill it.

Another problem with X, to my eyes, is that the X consortium has
allowed those of us on the outside to force them into rushing the
release.  (Not to criticize the individuals involved -- we all know
what pressure can be like!)  The result is several areas that are still
too "researchy" and ill-defined.  For example, when I first asked about
the interaction of colormaps with window managers, the basic response was
"Well, we really haven't had time to play with that much.  Any suggestions?"
I have yet to raise the issue of colormaps and colored cursors, but it's
pretty obvious there are serious problems.

A final defect is a pretty obvious "Not Invented Here" syndrome.  For
X11, they picked up the Postscript ideas on line cap and join styles.
But it would appear that they did this on hearsay, rather than actually
reading the Postscript manual, because some very simple and effective
ideas from Postscript were *not* picked up.  Postscript has a way to
limit mitering on narrow-angle joins, to prevent huge spikes.  X11 has
none.  Similarly, Postscript has a way to specify the approximate
accuracy of curve and arc rendering, so you can trade off speed and
esthetics.  Not so for X11.  Try drawing a 5x5 circle of linewidth 2
on the X11 sample server -- you get a pentagon.  Obviously a server
implementer can change this and produce an octagon or whatever, but the
applications programmer has absolutely no control, and the protocol can't
talk about it without an extension.

At this point, a lot of this is moot.  The NeWS/X war is going to be won
in the marketplace, not on the technical front.  I think I see a lead for
X, because the variety of companies that support it is larger.  It will
be fun to see if the marketing wizards at Sun can overcome this lead.
-- 
	Geoff Kuenning   geoff@ITcorp.com   {uunet,trwrb}!desint!geoff

klee@daisy.UUCP (Ken Lee) (02/18/88)

In article <1684@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes:
>The biggest flaw with X, of course, is its baroque complexity.

I think X has a bigger problem than that, namely flexibility.  X takes
a very conservative approach to everything.  It works well, with
current hardware and current application programming styles, but really
doesn't look toward the future.  Some features that I think will soon
be important, but that are difficult or impossible to accomplish in X
are:

1.  input model.  Input has always been a weak point to graphics/window
systems.  X is no different.  Currently, the client must wade through
tons of low level events before it can construct a high level event to
act upon.  High level event handling is limited to packages like
menus.  A better input model would allow the client to specify how high
level input can be derived from low level events, then only worry about
the high level.  The object-oriented lightweight process mechanism in
NeWS makes this clean and easy.

2.  output model.  The X imaging model is very tightly tied to current
breeds of workstations (framebuffers, color maps, etc.).  NeWS, on the
other hand, uses a stencil/paint imaging model that can be used on a
much wider variety of display devices.  Both have their problems with
current applications, of course, but I think the NeWS model will be
applicable to a much wider class of future hardware.

3.  toolkits.  All the X toolkits that I've seen are function libraries
that must be linked to the client.  On the other hand, all the NeWS
toolkits (e.g., litewin, liteitem) are server extensions that you can
download (and modify) if you wish.  Implementing the toolkits in the
server saves memory, lowers communication bandwidth, etc.  It also
makes writing clients in languages other than C much easier.

4.  server programability.  This has been discussed on the net
already.  I still think it's a great idea.

5.  popularity.  This is both good and bad.  After only a year or so of
heavy use, X is becoming a defacto standard.  Can you imagine
standardizing on UNIX after so little time?  I don't have a solution
for this, but I would be suprised if X is still here 5 years from now.

Comments?  What do you think belongs in the window system of the
future?

Ken

mao@blipyramid.BLI.COM (Mike Olson) (02/19/88)

In article <1684@desint.UUCP>, geoff@desint.UUCP (Geoff Kuenning) writes:
> The biggest flaw with X, of course, is its baroque complexity.
> ...  This goes on and on, until there are over 100 routines ...

as someone doing non-trivial user interface stuff under X11, i agree with you.
what i find worst of all is the set of parameters i have to pass to Xlib
routines -- by the eigth or ninth "cmap_def_return", i forget where i am,
and have to count commas to find my place.

still, i don't think this makes X11 a horrible protocol.  windowing systems,
particularly hardware-independent ones, are hard.  X11 has some nice
abstractions, and frees me as a programmer from worrying about the hardware
i'm running on (most of the time, anyway).  i had the same problem learning
the macintosh toolkit -- i had post-it notes all over the place and kept
_inside_macintosh_ open constantly.  given my willingness to do that, i wrote
some nifty programs.

my view?  i don't think there's a "best windowing system."  there are
windowing systems that do what i want, and others that don't.  i'll choose
the one that suits me best when i need one.

> Try drawing a 5x5 circle of linewidth 2 on the X11 sample server -- you
> get a pentagon.

he's right; i presume the protocol people at mit and the consortium are
listening?  most problems of this sort will vanish, though, when commercial
implementations are available.  X11 is young, yet.

> The NeWS/X war is going to be won in the marketplace, not on the technical
> front.  I think I see a lead for X, because the variety of companies that
> support it is larger.

we chose X11 for development here because of its widespread support.  mit
and company did the right thing in making the source available early, and for
free.  one caveat, though:  as long as Xlib calls are so arcane, training
programmers to use it is going to be tough.  a simpler interface *must* be
developed.  personally, i don't think Xtk is it, but this isn't the place for
that discussion.  i do urge the X11 consortium to consider not just *user*
interface standards, but a simpler *programmer's* interface.  my Xlib manual
is getting pretty dog-eared.
					mike olson
					britton lee, inc.
					...!ucbvax!ucsfcgl!blia!mao
					olson@ucbvax.berkeley.edu

these opinions do not necessarily represent those of my employer.

reggie@pdn.UUCP (George W. Leach) (02/23/88)

In article <1684@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes:
>
>At this point, a lot of this is moot.  The NeWS/X war is going to be won
>in the marketplace, not on the technical front.  I think I see a lead for
>X, because the variety of companies that support it is larger.  It will
>be fun to see if the marketing wizards at Sun can overcome this lead.

      How can anything be won in the marketplace when most vendors will
only offer the marketplace a single solution?  It is all politics.  The
reason lots of vendors (mostly those opposed to the recent Sun and AT&T
agreements) are going with X11 is that it does not belong to any one
vendor.  Sun was successful with NFS because there was no competing
solution that came from an independent source (if you believe that DEC's
backing of MIT did not affect this status).

      X11 seems to be attractive to many on the low end market.  Can NeWS
address this area?  Who knows.  SCO is planning on supporting the X11/NeWS
merge here.  So perhaps on the low end market there will be a choice.  You
will have to turn to third parties for NeWS on many products where vendors
will only support X for their machines.  This alone gives X a huge leg up
in the race.  


-- 
George W. Leach					Paradyne Corporation
{gatech,rutgers,attmail}!codas!pdn!reggie	Mail stop LF-207
Phone: (813) 530-2376				P.O. Box 2826
						Largo, FL  34649-2826

benoni@ssc-vax.UUCP (Charles L Ditzel) (02/25/88)

In article <2307@pdn.UUCP>, reggie@pdn.UUCP (George W. Leach) writes:
> In article <1684@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes:
> >At this point, a lot of this is moot.  The NeWS/X war is going to be won
> >in the marketplace, not on the technical front.  I think I see a lead for
>       How can anything be won in the marketplace when most vendors will
> only offer the marketplace a single solution?  It is all politics.  The
> reason lots of vendors (mostly those opposed to the recent Sun and AT&T
> agreements) are going with X11 is that it does not belong to any one
> vendor.  Sun was successful with NFS because there was no competing
> solution that came from an independent source (if you believe that DEC's
> backing of MIT did not affect this status).

Well this pre-supposes that alot of people that learn the virtues of NeWS
over X will remain silent (and vice versa).  Look if people let vendors
get away with giving them only X11 with their Unix then what you say is
true...however now that NeWS is standard Unix...certain identifiable
vendors will have a rough time selling their Unix with only X11. :^)
Some of us (that constitute part of the marketplace) are already busy 
requesting vendors support NeWS/X11.  Some vendors like Silicon Graphics 
are offering both (even before the AT&T/Sun deal). Other vendors have 
stated that they will support only X11...not surprisingly these companies 
may have a rough time selling their machines...since it is lacking part 
of the standard unix release - (not to mention that if you are a buyer - 
would you buy from a vendor that offered two possible solutions or just one).

>       X11 seems to be attractive to many on the low end market.  Can NeWS
People are writing NeWS ports to the Mac II and 386 boxes...
----------------
Naturally my opinions are my own and do not belong to the company I work for.

stpeters@dawn.steinmetz (Dick St.Peters) (02/26/88)

In article <1684@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes:
>The biggest flaw with X, of course, is its baroque complexity.

Not to my mind.  The biggest (the *definitive*) flaw of X is that it
can only do rectangular windows.  X can't do what I want; NeWS can.
That makes the choice simple.

>At this point, a lot of this is moot.  The NeWS/X war is going to be won
>in the marketplace, not on the technical front.  I think I see a lead for
>X, because the variety of companies that support it is larger.

The marketplace judgement is what customers choose to buy, not what
vendors choose to sell.  More than one vendor has arrived proclaiming
"X!" and left mumbling "NeWS".

Anyway, the real answer to "Best window system, NeWS or X" is "both".

--
Dick St.Peters                        
GE Corporate R&D, Schenectady, NY
stpeters@ge-crd.arpa              
uunet!steinmetz!stpeters