[rescue] NeWS (was: FS/FTGH: Sun kit)

Richard legalize at xmission.com
Wed Jan 18 12:31:07 CST 2006


In article <200601180338.WAA21010 at Sparkle.Rodents.Montreal.QC.CA>,
    der Mouse <mouse at Rodents.Montreal.QC.CA>  writes:

> >>> I tried writing some UI by programming the display postscript and
> >>> it was horrible.
> >> Writing UIs by programming Xlib is not that great either.
> > The comparable tool at the time wasn't Xlib (after all NeWS had
> > objects you could instantiate, you didn't have to write raw DPS),
> 
> ...but I thought you said you were writing in DPS...

NeWS had basic objects you could instantiate for things like menus and
whatnot, but you still had to write your own postscript glue to make
it all work together.  It wasn't as bad as having to draw every single
piece of UI chrome in your own PS code, but the glue was pretty
horrendous.

> > but Xt+Motif.
> 
> That's almost worse.  Xt is a horribly broken interface.

OK, for all of you who have jumped all over me in this thread, please
go back and carefully read what I have been saying.  Nowhere have I
promoted X11 or Xt or anything else as a beautiful interface.  If you
read what I've been posting, I'm talking about discussions of ivory
tower beauty vs. pragmatics of getting stuff done.

DPS and NeWS are ivory tower beauties IMO.  They look great in theory,
but in practice were horribly difficult to use.  Is that the fault of
the design?  No, but having a good design is not enough (again, I'm
repeating myself).  It also has to have a good enough implementation
to be useful in the real world, which is where I work.

My other example of Standard ML was another case in point.  Its a
beuatiful language.  Its also impractical because it doesn't
interoperate with the real world code bases that you always have to
talk to.  Its great if you're an academic and can afford to write your
entire world from scratch.  In the commercial space you rarely can
afford that luxury.

> (Motif I
> don't know, except that (a) it isn't, or at least wasn't when I cared,
> open source, and (b) it imposed a whole lot of policy I was unwilling
> to tolerate.)

Motif is a widget set that does indeed impose policy.  (Xt, like Xlib,
tries not to impose policy, but its hard to make a widget set without
imposing a mechanism at the very least and probably a little policy
sneaks in with the mechanism.)  The X Window System mantra was "tools,
not rules".  Motif imposes some rules on UI -- namely the rules that
go along with an interface that has the "look and feel" of the Windows
3.1 GUI, because after all, that's what Motif was designed to be -- a
UI toolkit for X11 that reproduced the look and feel of Windows
because that was a common interface mechanism that people already
knew.  If you don't like the UI of Windows, you won't like Motif for
the same reason.  But, you could always create your own widget set.

Xt is a poor man's object oriented infrastructure and that point is
freely admitted in the docs, the source and by the implementors on the
discussion lists.  Would it have been better to have something that
was really object oriented and not a home-brew object system?  Sure,
but at the time C++ was not yet widely adopted.  If you want something
more OO, try InterViews.  However, I don't know that it ever gained
any signficant popularity.

> > I don't know anyone that ever coded a UI in raw Xlib;
> 
> I'm not sure whether I'm bragging or complaining when I say this, but,
> I have.  As I sit here and look at my X screen, every client - every
> last one of them - is my own code, written directly atop Xlib.

Are you literally calling raw Xlib functions in every client, or did
you evolve to the point where you had your own layers of functionality
on top of Xlib?

I've written dinky interfaces that talked raw Win32, but if I were to
do lots of UI I would use VB6 or C# these days.  I've tried MFC but
every time I use it, it feels like I need to re-learn it all over
again.  For whatever reason, MFC doesn't have much "stickiness" to my
brain unless I used it every single day.  Again, MFC isn't pretty, but
it gets the job done.

I guess that's the point I'm making: I'm more interested in getting
the job done than using a system that's difficult but "beautiful".

> The server is basically the x.org (nee Consortium) sample server, but
> with my own ddx layer to take advantage of the hardware.  (It's running
> on a SS20 with a cg14, and I wrote my own ddx layer so I could have
> 8bpp and 24bpp on the screem simultaneously.)

That's pretty cool.  xwd does indeed have a problem with grabbing a
root window when the child windows are in a different visual.  I think
I did a hack on it once to understand the visuals and dump them out
properly to a superset file format (i.e. 24-bit rgb), but I never
contributed the code back to the consortium.

> > I'm very knowledgable about X and I've yet to see a criticism of X
> > that wasn't myopic in scope.  Its not enough to say "I don't like X",
> > you have to show that your alternative is demonstrably better at
> > solving the same problems.
> 
> I don't see why.  What's wrong with seeing problems even when you don't
> have solutions for them?

Well, the parallel in political discussions is what libertarians
sumamrize as "utopia is not an option".  By this, we mean that you
can't counter a libertarian position for deregulation or what have you
by simply saying "I don't like it".  That's a statement of opinion,
but it isn't a rebuttal of the argument and its not a viable
alternative.

This is the same thing I'm getting at with X.  Again, I haven't been
saying that X is a thing of beauty by which all other graphics
libraries should be judged, I'm saying that X has the benefit of
pragmatics.

Its widely and freely available.  It has a vendor port for virtually every
weird workstation that was on the market.  (Admittely with the descendence
of workstations and the ascendence of x86 PCs, this is less an important
factor now than it was in 1988.)  Having a common API across gobs of
workstations from different vendors is a *huge* pragmatic advantage.
SGI had their own proprietary window system before they moved to NeWS
and then to X.  Sun had SunView.  HP had something else, I think.
Apollo had DomainOS.  I have no idea what places like Stellar, Ardent
and what not used before X became ubiquitous, but I'm willing to bet
that if they had machines out before X became widely adopted they used
a proprietary windowing and graphics system.

I attempted to use workstations just at the end of the proprietary
era and it was a huge pain in the ass for every system to be
different.  The uniformity of the X Window System across all these
different vendors was a huge pragmatic win.
-- 
"The Direct3D Graphics Pipeline"-- code samples, sample chapter, FAQ:
          <http://www.xmission.com/~legalize/book/>
             Pilgrimage: Utah's annual demoparty
                <http://pilgrimage.scene.org>



More information about the rescue mailing list