[comp.windows.x] is news loosing the battle?

bzs@bu-cs.BU.EDU (Barry Shein) (07/07/88)

Hi, my name is Barry Shein and I am an alc...no, that's not right...

I am not and never have been a card carrying member of...ummm, one more time...

I'm trying to be very open-minded on the X/NeWS issue. This means I've
probably pissed off both camps sufficiently and they are each quite
sure I lean the other way, as religions are wont to do (see for
example the writings of Cardinal Newman, "one cannot be both a
believer and questioner"), relgions are usually more open to
identifying heretics than observants...

First, I have vastly more experience with X than NeWS tho I don't
think I misunderstand NeWS, I think I get the point.

I am very sensitive to the "imaging model" issue. One of the first
things anyone attempting to write a toolbox in X runs into (at least
any honest person) is the whole issue of pixel sizes and relative
metrics, particularly with fonts, big problem with X, claims of
"portability" seem to slip away when they can't even abstract the bit
density of the screen away from the programmer (reminiscent of the old
IBM/JCL decks I've had to debug, "no no no, you can't specify 8000
bytes/track on a 3330 you fool!!!")

For example, I was just writing an X11 widget which is a general
purpose "meter", something with marked points and hands etc. If you
resize the meter there's no problem redrawing the hash marks or hands
to conform nicely, but what to do about the fonts?? (eg.  markings
around the edge), not much except guess that some other font size
*might* now be appropriate, sort of, using some threshold calculation
(and hope that size is available in this server etc.)

Generalized text can be even worse and the whole model (X) lends
itself to such absurdities as distributing one bitmap font set on the
tape (ludicrous! these are 84 dpi fonts and I'm on a 91 dpi screen,
that's enough to make kerning etc just look wrong (and forget things
like Hi-res monitors) and was my motivation for writing "gfto" which
at least lets you regen fonts for your screen dpi, tho that only
addresses part of the problem.)

On the other hand, there it is (X), and it basically works quite well
AS ADVERTISED and fits a model of subroutine access nicely enough
(although object data management in C is less than wholesome, I'm not
sure that mere Postscript can quite address that although an object
oriented approach helps, at any rate, that's not *obviously* a fault
of X but might be a sin of omission.)

But NeWS seems to solve the imaging problem trivially (while creating
others, like who the heck *wants* to program in postscript other than
Don Hopkins :-)

Why couldn't the whole remote interpreter thing (in re X) be
more or less resolved by judicious use of the "rsh" command?
Aren't window handles global? So why not something like:

	sprintf(buf,"rsh %s Xfrob -wid 0x%x", HOST, WINDOWID);
	system(buf);

Sure, that's a little slow because you have to authenticate on each
command but opening a socket to a remote shell or using something like
rexec/rexd/rpc directly could solve that (you get the idea.)

Forking has some overhead, is it important? I dunno, Unix sez no, not
in general and this case would tend to weigh in its favor (if the
thing was so short-lived that fork/exec is a major factor then you may
as well have computed that on the client, that's another problem,
*someone* has to make all these decisions.)

It does mean you'd have to compile (with its disadvantage of either
needing to make the decision beforehand or incurring the delay of
compiling some rcp'd code, with the advantage of course that it would
now be compiled/optimized, again assuming we bothered because it was
too expensive to do on the client so cost is a relative thing and
run-time speed is important ultimately.) Shared libraries of course
help the disk space and loading time issue etc.

Don't talk to me about dynamically loaded C object decks, I've had too
much blood run out of my eyes porting those beasts and until someone
puts that into OS's universally I say forget it except in special
cases, and whoever puts it into the system should be obliged to write
the routine needed for every OS that's requested, forever. It doesn't
even port between minor OS releases in most cases.

Similarly one could easily imagine opening a socket to a lisp which
has CLX (Common Lisp X) pre-loaded and passing lisp structs much as
above (I know, all together, "lisp is a memory pig", is postscript
lightweight on memory? is this still a critical issue to most people?
actually lisp doesn't have to be that much of a memory pig, that's an
old wives tale borne mostly of non-paged 64KB/256KW machines.)

My prediction? (hmm, maybe shoulda included comp.society.futures)

That something else will come along in the next coupla years making
both X and NeWS obsolete, if I knew what it was I'd go ahead and
implement it, make a coupla billion and leave the rest of y'all in the
dust :-)

Don't confuse good ideas with mediocre implementations (there, good, I
pissed off everyone *again*.)

	-Barry Shein, Boston University

matheny@Unisyn.COM (John Matheny) (07/07/88)

As an application developer, these are some of the attributes that I
considered when evaluating the X Window System and NeWS:

Portability.  I want to minimize the amount of effort it takes to port
applications from one platform to another.  Therefore, I want to use a
window system that exists on all of platforms in which I am
interested.  The X Window System seems to have an upper hand in this
at the moment.  However, I believe that this may change when X.11/NeWS
is in UNIX V.4 and when vendors stop telling and start listening to
their customers who understand the issues.

Device independence.  I want the window system to insulate my
applications from having to know about the basic characteristics of
the display device: output resolution, bit-mapped displays versus
printers, keyboard mapping, pointing devices, color availability, etc.
This lets me spend more time concentrating on the functionality of my
application rather than its environment.  The PostScript imaging model
in NeWS supports this very well; the X Window System does not.

Performance in a network environment.  I want my application's user
interface to perform well in a wide variety of configurations: same
machine, machines separated by a high-speed LAN, machines separated by
a phone line.  Therefore, I want the flexibility of putting all or
part of my application's user interface, both input- and output-
related components, close to the user where it can be the most
responsive.  If I use NeWS I have that flexibility.  With the X Window
System I am stuck with everything residing on the client.  I believe
that dynamic server programmability, whether it is a window system
server, a compute server, or a database management server, is a key to
performance.

Development environment.  I want the window system to include tools
and/or techniques that facilitate software development.  I have found
that all of the functions and their arguments in the X Window System
and toolkits to be at least as compilicated of a "language" to learn
than the equivalent in PostScript/NeWS.  I was able to become
proficient in PostScript/NeWS in a very short amount of time and found
a number of features that make it very attractive: it has an
interpreter that I can type to and get immediate feedback; it lets me
do "late binding" of variables and even functions, making my software
both more simple and more general; both the input model and the output
model are wonderfully flexible; and the object-oriented programming
features of NeWS keep my software organized, well-structured, and
extensible.  I haven't had any difficulty in switching between C-based
application programming and NeWS-based user interface programming.

In summary, NeWS meets my window system requirements much better than
the X Window System.  NeWS offers a programmable server for dynamic
extensibility and superior performance in a network environment,
features a very powerful stencil/paint graphics model that is device-
and resolution-independent, and facilitates development with an
interactive, object-oriented environment.  All of these are features
that I want when building state-of-the-art application user interfaces.
-- 
John Matheny  Internet: matheny@Unisyn.COM  UUCP: uunet!unisyn!matheny
Unisyn, Inc., 3300 Mitchell Lane, Boulder, CO  80301   +1 303 443 7878

carlson@aftac.tis.llnl.gov (John Carlson) (07/07/88)

In article <23656@bu-cs.BU.EDU> bzs@bu-cs.BU.EDU (Barry Shein) writes:
>I am very sensitive to the "imaging model" issue. One of the first
>things anyone attempting to write a toolbox in X runs into (at least
>any honest person) is the whole issue of pixel sizes and relative
>metrics, particularly with fonts, big problem with X, claims of
>"portability" seem to slip away when they can't even abstract the bit
>density of the screen away from the programmer (reminiscent of the old
>IBM/JCL decks I've had to debug, "no no no, you can't specify 8000
>bytes/track on a 3330 you fool!!!")

Ideally I could scroll my display around a large root window.
Call it a virtual windowing system (swap and page rectangles?).
Also, I may want to zoom in on a particular window, if it is a
graphics display, or if the text is too small to read.

>Why couldn't the whole remote interpreter thing (in re X) be
>more or less resolved by judicious use of the "rsh" command?
>Aren't window handles global? So why not something like:
>
>	sprintf(buf,"rsh %s Xfrob -wid 0x%x", HOST, WINDOWID);
>	system(buf);
>
>Sure, that's a little slow because you have to authenticate on each
>command but opening a socket to a remote shell or using something like
>rexec/rexd/rpc directly could solve that (you get the idea.)

Using rsh in a window system is like using rcp in a file system.
We should be able to share windows between servers (hosts).
What I type in a window on my display/screen will appear in the
same window on your display/screen without the application knowing!  I
would like to move a window from my display/screen to your display/screen
with my window manager assuming permissions are OK.
					[ I think HP did something like this
						with X11 ]

>Similarly one could easily imagine opening a socket to a lisp which
>has CLX (Common Lisp X) pre-loaded and passing lisp structs much as
>above (I know, all together, "lisp is a memory pig", is postscript
>lightweight on memory? is this still a critical issue to most people?
>actually lisp doesn't have to be that much of a memory pig, that's an
>old wives tale borne mostly of non-paged 64KB/256KW machines.)

I would prefer some kind of interpreter.  Take your choice between
X10, X11, Lisp, PostScript, NeWS, ANSI C, Smalltalk, or next year's
language.

Also, I should be able to mount local window hierarchies and EXISTING
remote window hierarchies on my root window wherever I like.
			[ Some of this can be done under NeWS and X11 ]

>My prediction? (hmm, maybe shoulda included comp.society.futures)
>
>That something else will come along in the next coupla years making
>both X and NeWS obsolete, if I knew what it was I'd go ahead and
>implement it, make a coupla billion and leave the rest of y'all in the
>dust :-)

Drop a few million my way.  I won't mind.

"These aren't my ideas, they are old ideas rehashed."

John Carlson

warner%s3snorkel@S3DAWN.ARPA (Ken Warner) (07/07/88)

>My prediction? (hmm, maybe shoulda included comp.society.futures)

>That something else will come along in the next coupla years making
>both X and NeWS obsolete, if I knew what it was I'd go ahead and
>implement it, make a coupla billion and leave the rest of y'all in the
>dust :-)
 
Smalltalk-90 anyone?

Ken "Jus' Lookin' for Trouble" Warner

klee@daisy.UUCP (Ken Lee) (07/08/88)

There seem to be at least 2 very different sets of workstation users out
there.  Each has very different needs.

Academic users tend to write small, interesting programs.  For them,
NeWS is superior because it is more elegant and theoretically powerful.
Note that Sun only had to add a small number of features to graft X onto
the NeWS server for the X/NeWS merge.  Adding NeWS to an X server would
have been a major overhaul.  See the paper in the last USENIX
proceedings for details.

Industrial users, like myself, prefer X.  It is much more complete
(e.g., lots of toolkits and window managers), more robust, and, most
importantly, is (or soon will be) available for almost every engineering
workstation.  All the manufacturers are supporting X to some degree.
We do lose some functionality, but X is more than powerful enough for
most current applications programs.

The competition between the 2 systems is, of course, good.  Future
window systems will include the best features from both (if the lawyers
don't interfere).  The X/NeWS merge is still too kludgey for most
people, but it may mature into a very nice system.  Stay tuned.

Ken
-- 
uucp:  {atari, nsc, pyramid, imagen, uunet}!daisy!klee
arpanet:  atari!daisy!klee@ames.arc.nasa.gov

STOP CONTRA AID - BOYCOTT COCAINE

lantz@orc.olivetti.COM (07/08/88)

>> We should be able to share windows between servers (hosts).
>> What I type in a window on my display/screen will appear in the
>> same window on your display/screen without the application knowing!  I
>> would like to move a window from my display/screen to your display/screen
>> with my window manager assuming permissions are OK.
>> 					[ I think HP did something like this
>> 						with X11 ]
>> 
>> ...
>>
>> Also, I should be able to mount local window hierarchies and EXISTING
>> remote window hierarchies on my root window wherever I like.
>> 			[ Some of this can be done under NeWS and X11 ]

The group at HP is led by Phil Gust.  Several groups other than HP have
also implemented variations on these features by now -- including my own, a
group led by Phil Janssen at MCC, and a group led by Sid Ahuja at Bell
Labs.  These groups (and others) are even trying to work together somewhat,
hopefully to the greater glory of everyone.  Further information can
probably be obtained by sending to "sharedx@expo.lcs.mit.edu"; that list
could use some traffic!

Keith A. Lantz			    Phone: (415) 496-6235
Olivetti Research Center            Internet: lantz@orc.olivetti.com, or
2882 Sand Hill Road, Suite 210                lantz%orc.uucp@unix.sri.com
Menlo Park, CA 94025                UUCP: {acornrc,oliveb,sri-unix}!orc!lantz

janssen@titan.SW.MCC.COM (Bill Janssen) (07/12/88)

In article <8807071850.AA11774@tuscany.orc.olivetti.com>, lantz@orc.olivetti.COM writes:
> group led by Phil Janssen at MCC

That's Bill...

We have a nice pseudo-server running.  One of the things it can be used for
aside from the conferencing is to provide multiple X screens on a single
display device.  Quite handy.

Bill
--
 Bill Janssen, MCC Software Technology Program
 ARPA:  janssen@sw.mcc.com
 UUCP:  {seismo,harvard,gatech,pyramid}!ut-sally!im4u!milano!janssen