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

Skeezics Boondoggle skeezics at q7.com
Wed Jan 18 00:03:52 CST 2006


On Tue, 17 Jan 2006, Richard wrote:

> I hear this complaint about X all the time, but its always from the
> perspective of "I just need to plot a pixel and X makes me do all this
> crap", not caring about the breadth of problems that X solves.  This
> was the sort of argument used *for* NeWS and *against* X.  I tried the
> former and the latter, both at the same time period and both with the
> latest available tools at the time.  NeWS was hell and X was within my
> grasp.  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

I recall reading through source of the early releases of the X11 APIs, and
it was a complete clusterfuck internally.  Back in the late 80's(?) my
stepdad got back from a week-long class in X11 programming and didn't know
whether to shit or go blind - seriously, the early code from MIT was total
*crap*.  I mean, you could tell _which functions were written by which
contributors_ because they all had different calling conventions and
naming conventions, and even then the API was a sprawling, bloated
disaster.  Damn, I wish I could find that old notebook with our notes in
it... (Compare and contrast with virtually any code I've seen from CMU,
which is goddamned Shakespeare in comparison...)

In fairness, maybe - *maybe* - the code has been cleaned up in subsequent
releases over the years, but it was highly unimpressive upon first 
encounter.

> X", you have to show that your alternative is demonstrably better at
> solving the same problems.  That noone has persuaded me of this shows
> me that they don't understand the problems that X tries to solve and
> instead they are thinking of it like the C=64 where they just want a
> dumb memory-mapped frame buffer so that they can code their own
> version of setpixel(x,y,c).

So, what ARE the problems X tries to solve?

Provide a barebones interface that runs on minimal hardware?  Okay, that
was important IN 1986, but it's kinda ridiculous now.  An iPod has more 
computing power than the early "engineering workstation" class machines, 
which were the vanguard of computing back in the day.

Provide transparent network connectivity for varied I/O devices?  
Great; but NeXT's Display Postscript allowed you to make network
connections into the window server and do remote windowing as well - the
only thing missing was building in SSL or SSH encryption for better
security... (the whole "Public window server" on/off switch was lame.)

Provide a device-independent coordinate system?  Uh huh, Postscript
certainly does that, with the advantage that your *printed output* could
be generated by the same code that drew your *displayed* output.  Oh, 
right.  X11 doesn't concern itself with mere hardcopy.

What else?  Color model?  Printing support?  Multiple fonts?  Basic
drawing operators?  Clipping regions?  Compositing and alpha channel
support?  DPS on a NeXT does *all* of those things as well as X11 - 
most of them far, far better.

What am I missing that X does that's so spiffy?  The 35 goddamned startup
files and scripts needed to even launch the stupid thing?  The 80MB+ of
disk space even a minimal distribution takes up?  The 400 "toolkits" and
window managers to choose from, not one of which is half as elegant or
usable as NeXTSTEP was?  Gosh, does this program use Alt-blah, Ctrl-blah,
or Meta-blah for cut/copy/paste?  Gosh, how come neither ^H, Backspace or
Delete works in this dialog box, and all I can do is highlight the text
and type over it?  Or why *can't* I select text when programs linked
against tookit Xblah run under blahWM?  Maybe it's the TWENTY THREE
MEGABYTE executable "hello, world" programs when linked against the
massively bloated Xwhatever libraries?  That's bigger than the entire hard
drive in my first workstation...

X11 is the Wal-Mart of APIs.  Having 538 "choices" for any given method is
as useful as having 175 kinds of toothpaste - it just makes you crazy.  
That's not "flexibility", it's madness.

Oh!  Right:  "round windows."  I forgot about that.  (The X11 chapter in 
the Unix Haters Handbook is one I agree with wholly...)

NeWS didn't suck because it was based on Postscript; NeWS' problems were
due in large part because you had only one VM context and any errant
program could whack the whole window system.  The input mangler hacked
into it was fairly bogus too, as I recall - but I only dabbled in NeWS.  
NeXT and Adobe actually worked together to define the Display Postscript
system and their collaboration produced a far better design.

Have you ever used a NeXT machine?  Even today those lovely old 33MHz 68k
boxes look better, "feel" infinitely more solid, provide more
sophisticated UI features, and often are as fast as X11 running on
significantly beefier hardware.  (It takes _seconds_ for Netscape 7 to
open a "save" dialog on my dual-300Mhz U2 with 512MB of RAM, which is just
SAD compared to, say, Omniweb on my 128MB Color Turbo...)

Obviously that's as subjective a judgement as I can make, but I defy you
to show me a single comprehensive X11 environment (WM + apps) on any
platform that can compare with NeXTSTEP 3.3 for consistency, performance,
stabilty, aesthetics, etc.  DPS proved conclusively that you could do NeWS
right.  And I find it hilarious that years after everyone mocked NeWS (and
then NeXT) saying that Postscript was "too slow", every single major Unix
vendor had rolled DPS extensions into their X servers.  Geez.

To this day, however, X11 is barely more than a conduit for running
multiple xterm windows, a clock, an old version of Netscape, and maybe the
GUI front-end to Netbackup or Networker.  Okay, maybe in fairness Linux
and BSD have pushed X11 graphical apps more to the fore, but they still
pale in comparison to say, the Quartz/PDF-based MacOSX, direct descendent
of NeXTSTEP/DPS.  It doesn't seem to matter how many GHz you throw at X11,
apps still feel like they're on stilts.  Boing.  Squish.  Lag.  I still
use 'olvwm' mostly because it's relatively "clean" and minimal, and
largely because I am far to damned lazy to go through the hassle of
retraining my fingers and redoing all my damn config files to accommodate
CDE or GNOME or whatever the latest memory and disk sucking hog Sun says
should be the new default desktop...

Don't get me wrong - I'd still use X any day over Windows, which easily
ranks as the most aesthetically hideous, illogical, maddening, badly
engineered GUI in the history of mankind... but it's just kinda pathetic
that we're still stuck with it after all these years.  I just can't
believe that X11 is the best the industry can do.  Then again, we don't
have flying cars yet either, so lack of a decent Unix GUI is just another
brutal letdown of our failed "modern" age. :-/

I still wish that OpenStep had caught on - and that perhaps instead of
wasting 10 years building out the bloat farm that is the Java class
library, that effort had gone into refinements to add functionality (not
that it lacks much) to the compact, elegant OpenStep APIs.  Then maybe the
Unix world would have provided a far more serious challenge to MS on the
desktop... at least MacOSX is something...

-- Chris



More information about the rescue mailing list