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

wayne@dsndata.uucp (Wayne Schlitt) (06/29/88)

I have been following both the news and x news groups for a fair while
now and lately i have noticed that there is about ten times the traffic
in the x news group.  are there that many more people developing under
x than news, or is the volume just skewed by all the universities on
the net?

our company has a specialized cad package that we will eventually port
to run under either news, x, or what ever becomes the standard.  it
will be about a year before we are ready to start, so for now i am
just watching both groups, trying to pick up all the info i can get.

--
Wayne Schlitt                                  |  Design Data Corporation
hplabs!hpfcla ----------\                      |  1033 "O" St.  Suite 324
ncar!handel!hpfcla ------>---> !dsndata!wayne  |  Lincoln Ne, 68508
ihnp4!upba -------------/                      |  (402) 476-8278

benoni@ssc-vax.UUCP (Charles L Ditzel) (07/03/88)

in article <WAYNE.88Jun29195537@dsndata.uucp>, wayne@dsndata.uucp (Wayne Schlitt) says:
> I have been following both the news and x news groups for a fair while
> now and lately i have noticed that there is about ten times the traffic
> in the x news group.  are there that many more people developing under
> x than news, or is the volume just skewed by all the universities on
> the net?
A couple of thoughts :
	1) X has a fairly significant lead on NeWS at the moment.  You
	   have to take into consideration that NeWS is only just
	   starting to come out for systems such as the Macintosh and
	   has yet to come out for PCs.  However, Silicon Graphics
	   has just released a window management system that includes
	   NeWS.  It is a NeWS/X window manager called 4sight (or
	   something like that).  Other computer vendors are also
	   working on ports...Sun itself will shortly be coming out
	   with its supported NeWS/X port...SCO is reportedly going
	   to have NeWS/X for their Xenix systems...

	2) The next questions are : what is the staying power of
	   X given NeWS' availability on similar platforms?  Will the
	   future simply be NeWS/X window managers or just one or the
	   other?  I don't think too many people are arguing that X11
	   is technically better ... rather more people tend to argue
	   the reverse (surprisingly even some of the X folks concede
	   the point) ...

> our company has a specialized cad package that we will eventually port
> to run under either news, x, or what ever becomes the standard.  it

	Actually the next year should be alot of fun to watch...
	there will be alot products out for X...NeWS action should
	be picking up in intensity also ... as it is supposedly
	included with Release 4 of Unix...new vendors should emerge.
	NeWS products should also be forthcoming...(recently Sun 
	announced it's first NeWS product - SNA 327? emulation)
	The recent schisms in the Unix world will make all this
	even more interesting...

	One more note : I tend to think that those companies that
	offer both systems are in a much better position than those
	companies only offering X...

------------------
Naturally these are MY own opinions and not those of my employers.

diamant@hpfclp.SDE.HP.COM (John Diamant) (07/05/88)

> 	2) The next questions are : what is the staying power of
> 	   X given NeWS' availability on similar platforms?  Will the
> 	   future simply be NeWS/X window managers or just one or the
> 	   other?  I don't think too many people are arguing that X11
> 	   is technically better ... rather more people tend to argue
> 	   the reverse (surprisingly even some of the X folks concede
> 	   the point) ...

Whoa, there.  Interesting that you chose to post this in a NeWS only group.
In an X group, I'm sure you'd get quite a bit of disagreement on this.
Before I begin, let me say that I'm in the X camp myself (I'm an experienced
X programmer, have seen NeWS and believe I understand the basic model, but
am not a NeWS programmer, so feel free to correct any technical errors
regarding NeWS -- which I'm sure you would even without an invitation :-)

Both NeWS and X have technical advantages, but I don't believe one is
fundamentally superior to the other.  However, X has from the beginning, been
a completely open system, whereas NeWS has been an expensive, licensed piece
of software until the introduction of the AT&T NeWS distribution.  Now that
NeWS will be more freely available, NeWS and X can compete on equal footing.
Until now, it was a simple choice:  do you want a proprietary system which one
vendor is trying to foist on the world (NeWS) or a multi-vendor, open system,
which has been freely available from the very start (X).

NeWS advantages over X:
high power imaging model (2D) using absolute dimensions, rather than pixels
non-rectangular windows
Postscript available
Toolkits can be interpreted in the server, and thus substituted out from under
	the application
mimimal traffic between client and server

disadvantages of NeWS relative to X:
requires relatively powerful NeWS server -- a NeWS terminal will be more
	expensive than an X terminal
programming process context switching and partitioning between client and
	server is a PAIN for the progammer.
programming in Postscript is a pain (of course, Sun provides a C translator
	so this isn't that big a problem).

Now, let's examine the NeWS advantages for a moment and see how important they
are.  Regarding the imaging model, it is only 2D, and X is getting the
3D graphics extensions defined as a standard extensions, so any vendor with
good hardware for graphics will probably support it.  The issue of absolute
dimensions and font scaling is a real one, though, of course, there are
workarounds in a pixel based system (adjusting depending on the screen size).

Non-rectangular windows is "gee whiz," but frankly, I don't care about that
at all.  Other than having round clocks, I just don't see this as a big deal.

Postscript will be available on X as well, thanks to Display Postscript and
some public Postscript previewers.
(please note my distinction of the imaging model and just having Postscript --
this item addresses the display of Postscript and the output language only)

The ability to have interpretive toolkits which can be swapped is useful, but
there are other ways to accomplish this in X as well (using dynamic loading,
for instance).

Probably the most significant difference between X and NeWS is the traffic
between client and server.  First of all, Scheifler wrote a paper about why
the traffic breakdown wouldn't be as good as the claims (because the
communication for even simple operations like menus would be higher than
expected).  Second of all, it doesn't really matter!  I'm a network
administrator and I have some experience on this subject.  Lan bandwidth is
rarely the bottleneck in communications between two machines.  We run
diskless (including remote swap), remote X, etc. and the volume of traffic
is just never that high (typically under 5% of lan utilization).  Also, most
X servers run with Unix Domain sockets when running locally, so lan overhead
isn't a big issue.  The only issue that remains is the performance in terms
of throughput on the lan.  We are already at the point where lan performance
is within the same ballpark as disk transfer rates, so it isn't that big a
deal, and we're getting faster lan technology too.

The only time this will really matter is for non-local lans, like SLIP remote
links or over low-speed remote channels.  In that case, I concede that NeWS
has an advantage, but that is probably only a small percent of the use of
either NeWS or X, and running at 9600 baud over SLIP for X will still be
acceptable, I believe.

Basically, the assumptions that X used were that a high-speed byte stream
was available between client and server and that the client was a more powerful
machine than the display server.  NeWS uses a different set of assumptions
(or at least it shines in a different environment).  NeWS is best when the link
speed is low and the client and server are roughly the same power.  That means
if you have a Sun workstations at home, then you are probably best off running
NeWS remotely, but if you have a PC or a custom window terminal at your desk,
you're better off running X.

> 	One more note : I tend to think that those companies that
> 	offer both systems are in a much better position than those
> 	companies only offering X...

This is probably true, at least until things settle out.

Disclaimer: These opinions are my own and do not necessarily reflect those
	    of Hewlett-Packard.

John Diamant
Software Development Environments
Hewlett-Packard Co.		ARPA Internet: diamant@hpfclp.sde.hp.com
Fort Collins, CO		UUCP:  {hplabs,hpfcla}!hpfclp!diamant

hvr%kimba@Sun.COM (Heather Rose) (07/06/88)

In article <WAYNE.88Jun29195537@dsndata.uucp> wayne@dsndata.uucp (Wayne Schlitt) writes:
>I have been following both the news and x news groups for a fair while
>now and lately i have noticed that there is about ten times the traffic
>in the x news group.  are there that many more people developing under
>x than news, or is the volume just skewed by all the universities on
>the net?

From what I hear from customers, NeWS is confusing at first.  Just like
C was confusing at first, just like UNIX was confusing at first.  It takes
a while to get used to programming in a stack based language (Postscript).
It takes time to understand classes.  But the benefits it provides are 
worth it to me.  Besides, I like HP calculators ;-)

>our company has a specialized cad package that we will eventually port
>to run under either news, x, or what ever becomes the standard.  it
>will be about a year before we are ready to start, so for now i am
>just watching both groups, trying to pick up all the info i can get.

Try them out.  Only you know what is best for your application.  See what
NeWS can do versus what X11 can do.  You will most likely run into
limitations with both systems, so choose the one that is most cost effective.

If you're serious about investigating these systems, take some educational
classes.  Apollo offers one on X, Sun on NeWS.  It's all well and good to
read about what others are doing, but you really won't know until you
try to get some WORK[tm] done with either system.  And, writing a CAD
package seems to be alot of WORK[tm] to me.  Another big issue to me would
seem to be 3-D support if you need it.  How do the windowing systems deal
with that?  or do you have your own, how does the windowing system
interface with your routines?  What about other medium like video?  Input
from different types of devices like drawing pads, scanners?  How is that
handled?

If you want the scoop on when products will be out etc for Sun, your local
Sun salesrep is your best bet.

--Heather Rose

elwell@ichthyosaur.cis.ohio-state.edu (Clayton M. Elwell) (07/07/88)

diamant@hpfclp.SDE.HP.COM (John Diamant) writes:
    Before I begin, let me say that I'm in the X camp myself (I'm an
    experienced X programmer, have seen NeWS and believe I understand
    the basic model, but am not a NeWS programmer, so feel free to
    correct any technical errors regarding NeWS -- which I'm sure you
    would even without an invitation :-)

Well, I'm in the NeWS camp.  I've used X a lot, but for programming
I've been using NeWS (I gave up on X after the third try...).  I
understand X pretty well, although I'm sure you (or, in fact my
coworkers) will correct me if I get confused :-).

    Both NeWS and X have technical advantages, but I don't believe one is
    fundamentally superior to the other.
Well, part of the difference between them, and part of why it's hard
to compare them, is that they are based on very different ideas of
"what a window system should be," and so some of the issues are more
religious than technical.

One, for example, is the whole issue of PostScript.  I actually don't
find PostScript any more obtuse to program in than C, and with the
class system that Sun provides as part of NeWS, doing user-interface
type stuff is in fact a lot easier.  Of course, I also find my HP
calculator perfectly easy to use :-).

    Now, let's examine the NeWS advantages for a moment and see how
    important they are.  Regarding the imaging model, it is only 2D,
    and X is getting the 3D graphics extensions defined as a standard
    extensions, [...]
I think this a straw man argument.

Most workstation displays I've seen are 2D...  Yeah, you can add
3D rendering primitives to X, but I can add 3D rendering operators to
NeWS, without (a) having to touch my binaries or (b) making
assumptions about the display itself.  If I'm a vendor, I can even
hack my version of the server to do it in hardware.

    Non-rectangular windows is "gee whiz," but frankly, I don't care
    about that at all.
Well, it's not just windows.  Anything can be non-rectangular.  Like
buttons and controls.  I agree that rectangular ones are good enough
for most simple interfaces, but it's nice to have the generality there
when you need it.
    
    Postscript will be available on X as well, thanks to Display
    Postscript and some public Postscript previewers.
And Display PostScript is evidently very nice and fast.  However,
previewing PostScript documents is a small portion of what I do with
my workstation.  PostScript itself isn't so much the issue as having a
well-defined way to extend the capabilities of the display server, on
the fly if necessary.  The simplest way to do this is to pick a simple
language with good graphics primitives.  Add popular to the
requirement, and PostScript seems the logical choice to me.  I'd
rather that than Interpress or HPGL :-).
    
    The ability to have interpretive toolkits which can be swapped is
    useful, but there are other ways to accomplish this in X as well
    (using dynamic loading, for instance).
Of course, dynamic loading is done differently on every flavor of
UNIX, so the client support routines have to be kept up to date.  With
NeWS, all you have to do is be able to talk to your display, which is
kind of a given.

    Probably the most significant difference between X and NeWS is the
    traffic between client and server.  First of all, Scheifler wrote
    a paper about why the traffic breakdown wouldn't be as good as the
    claims (because the communication for even simple operations like
    menus would be higher than expected).
Well, in most of the programs I've seen, most menu choices either
*don't send anything back to the client at all*, or send a byte as
part of the input stream.  Seems pretty low overhead to me.  But
that's probably not a good example.

    Second of all, it doesn't really matter!
I like that--the most significant difference doesn't really matter!  

    The only time this will really matter is for non-local lans, like
    SLIP remote links or over low-speed remote channels.
Which, of course, nobody ever really uses...  Take the ARPAnet, for
example... :-).

    Basically, the assumptions that X used were that a high-speed byte
    stream was available between client and server and that the client
    was a more powerful machine than the display server.  NeWS uses a
    different set of assumptions (or at least it shines in a different
    environment).
I'd say that NeWS is based on the display server knowing about the
details of the display hardware, so that the client didn't have to
worry about it, and that abstraction is a good thing.  X is one of the
least abstract systems I've ever used.  I like Bill Joy's
description--"rasterop on wheels".  I like PostScript on a window
system for the same reason I like it on a printer or a typesetter.
Most of the time, I don't want to have to worry about how to chisel
bits onto the screen.  I realize that things like Xtk and so on help,
but still, it's a virtual display at a lower level than I care to deal
with.


Clayton M. Elwell <elwell@tut.cis.ohio-state.edu>
Ohio State University CIS Dept. Research Computing Facility

"... there was a *third* possibility that we hadn't even counted
upon ..."		--Arlo Guthrie, "Alice's Restaurant"

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

bob@allosaur.cis.ohio-state.edu (Bob Sutterfield) (07/07/88)

In article <10250002@hpfclp.SDE.HP.COM> diamant@hpfclp.SDE.HP.COM (John Diamant) writes:
>Non-rectangular windows is "gee whiz," but frankly, I don't care about that
>at all.  Other than having round clocks, I just don't see this as a big deal.

Isn't there some famous quote from a few years ago of Tom Watson
saying that all the world would only need about eight computers?

The amazing thing is, even with that tradition of foresight, his
company is still selling computers.  There may be a future for window
systems that don't support arbitrarily-shaped objects, after all.
-=-
 Bob Sutterfield, Department of Computer and Information Science
 The Ohio State University; 2036 Neil Ave. Columbus OH USA 43210-1277
 bob@cis.ohio-state.edu or ...!{att,pyramid,killer}!cis.ohio-state.edu!bob

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

barnett@vdsvax.steinmetz.ge.com (Bruce G. Barnett) (07/08/88)

In article <10250002@hpfclp.SDE.HP.COM> diamant@hpfclp.SDE.HP.COM (John Diamant) writes:
>Non-rectangular windows is "gee whiz," but frankly, I don't care about that
>at all.  Other than having round clocks, I just don't see this as a big deal.

Perhaps you should think of objects instead of windows. I can see it
useful to have icons change shape and size according to function.
The fat trashcan on the Mac is an example. There is an lpqtool from
sunspots ( see Chuck Musciano's tooltool) that can be opened to
examine the queue. Perhaps the icon's image could change to a
LaserWriter with the lid open when the queue was jammed. However, this
would be ugly with a rectangular area for an icon. 

I would like the L-shape of this icon to have an L-shape clipping area
on the root menu.  In fact, with my constant battle of real estate, I
would like a more flexible organization of icons. Icons arranged like
a tree, a Rolodex, or a jigsaw might be useful at times. 
The new garden demo has an icon the shape of a flower!

I would like to display a complex system with an assortment of
connectors, dials, pipes, ducts, boxes, etc. (DataViews does this).
Pipes that change color, texture or size can provide better feedback
than simple lines with labels. This seems to be a natural use of NeWS.
(This could be done with X, I am sure. But the effort would be much
higher - I would guess.)

If you look at HyperText systems, or packages like FileVision on the
Mac, combining non-rectangular images can be much more useful.

I don't think the potential of a NeWS environment has been
demonstrated yet. We have been given a taste, but the Real System
hasn't been demonstrated yet.

I have had a couple of ideas that seem possible with NeWS, and
difficult with any other window system. Perhaps some enterprising
developer would like to implement these ideas:

1). Our LaserWriters frequently print screendumps. This is a real
    drag. I would like to take any window and print it. Because of the
    PostScript model, this should be easy to do, and improve printer
    thruput and quality.

2). I often work on several projects at once. With all of the
    interruptions I get, I would like to take the current window
    environment, and shrink the entire window to a smaller size and
    free up my screen for a new environment. When I want to switch
    back to the original environment, I would click on the miniature
    screen, which would change place with the current screen. This is
    something like the Picture in a Picture (PIP) feature of the new TV's.

3). Instead of text scrolling off the top of the window, I would like
    to have a "Star Wars"-like display where the text gets smaller the
    farther away it is from the immediate area of interest. Looking
    at a log file, with the older errors shrinking in size, as an example.
    The text would scroll off when it finally became illegible, with a
    user-defined lower limit.

We have already seen the pie menus for NeWS. This is one example of
something more radical in user interfaces. I believe this is just the
tip of the iceberg.
-- 
	Bruce G. Barnett 	<barnett@ge-crd.ARPA> <barnett@steinmetz.UUCP>
				uunet!steinmetz!barnett

mike@arizona.edu (Mike Coffin) (07/09/88)

From article <WAYNE.88Jun29195537@dsndata.uucp>, by wayne@dsndata.uucp (Wayne Schlitt):
> I have been following both the news and x news groups for a fair while
> now and lately i have noticed that there is about ten times the traffic
> in the x news group.  are there that many more people developing under
> x than news, or is the volume just skewed by all the universities on
> the net?
Another explanation occurs to me.  Most of the traffic on the X news
group is (a) frustrated people trying to get around questionable
design decisions, (b) frustrated people trying to figure out
documentation,  (c) frustrated people trying to report and/or work
around bugs, and (d) frustrated people trying to decide if they have
found a bug.  Perhaps NeWS is bug-free, well documented, and easy to
understand.  :-)
-- 

Mike Coffin				mike@arizona.edu
Univ. of Ariz. Dept. of Comp. Sci.	{allegra,cmcl2,ihnp4}!arizona!mike
Tucson, AZ  85721			(602)621-4252

don@BRILLIG.UMD.EDU (Don Hopkins) (07/25/88)

First of all, let me point out that I think the question "Is NeWS
loosing the battle?" is totally meaningless. Right up there with
"Is NeWS tighting the war?" sic(-;

The X11/NeWS merge will be widely available as a standard part of AT&T
Unix.  A battle between X and NeWS is as pointless as a battle between
VT100 escape sequences and Tektronix control codes!  They're both
widely supported and emulated standards, each one best for certain
applications, and neither has destroyed the other. Terminal emulators
such as xterm support both standards, and I don't think DEC is out to
discourage people from using xterm's Tektronix features.

   Date: Thu, 7 Jul 88 19:52:37 EDT
   From: hpda!hp-sde!hpfcdc!hpfclp!diamant@ucbvax.Berkeley.EDU  (John Diamant)

   Non-rectangular windows is "gee whiz," but frankly, I don't care
   about that at all.  Other than having round clocks, I just don't
   see this as a big deal.

Sheez, some people are so stuck in the rut of rectangular windows,
that when I tell them that NeWS has arbitrarily shaped windows,
they assume I mean arbitrary rectangles ...

Non rectangular windows are invaluable for many applications! It's
the kind of thing that once you're used to, you'll never want to do
without!

The shape of a NeWS window ("canvas") is defined by a PostScript
path.  They can have lines, arcs, bezier curves, and conic splines as
edges.  They can even have holes in them, and disconnected regions!
You can use either the even-odd or the zero winding rule to define
what's inside and outside the path.

The shape of a canvas influences the clipping of graphical output,
and the distribution of input events.

Each canvas has its own default coordinate system, the one that
was in effect when it was reshaped.

Canvases can be used as arbitrarily shaped targets.  NeWS processes
can receive input events whenever the mouse enters, leaves, clicks,
or moves around in a canvas, and event coordinates are reported in
terms of the process's current coordinate system.

NeWS canvases are natural to use as animated "sprites", using
lightweight PostScript processes to periodically blink, move, or
paint them. (This is a great way to implement a cursor, or a space
invader!)

Transparent canvases are like opaque canvases in that they have
arbitrary shapes and coordinate systems, effecting clipping and
event distribution, except that they don't have their own image --
the image of their (first opaque) parent canvas shows through.
Graphical output on a transparent canvas gets clipped to its shape,
and drawn through into the parent's image.

A hypermedia browser that I'm porting to NeWS for Ben Shneiderman,
called HyperTIES, displays documents containing text and graphics
with "embedded menus" of links to other documents.  Embedded menu
buttons are overlayed on top of text and graphics, and highlight
when you move the cursor into them.

In NeWS HyperTIES, the embedded menu buttons are simply implemented
using transparent canvases.  Text buttons use canvases overlayed on
top of words in text, shaped like rounded rectangles. Graphical
buttons use canvases overlayed on top of parts of pictures, shaped
like the Hubble Space Telescope, a Faint Object Spectrograph, a
circle, a pie slice, Bill Joy's head, a rabbit, a mouse pad, or
whatever part of a picture you want to link to some document!

When the mouse moves into a button, there is some feedback to show
that it can be pressed, such as a color change, animation, or a
pop-up cut-out magnified image cookie with a shadow behind it. (Just
map a pre-fab opaque canvas with the translated and scaled image and
target shape!)

   The ability to have interpretive toolkits which can be swapped is
   useful, but there are other ways to accomplish this in X as well
   (using dynamic loading, for instance).

There is a big difference between dynamically loaded toolkits, and
toolkits written in an interactive interpretive environment. With
NeWS, I can interactively debug PostScript code running in the
server -- looking and and changing the values of variables,
calling and redefining functions, setting breakpoints, examining
and changing the execution state of lightweight NeWS processes,
etc...

The NeWS "Lite" user interface toolkit is based on Owen Densmore's
object oriented programming package, a smooth fitting extension to
the PostScript language. With Bruce Schwartz's class browser, you
can interactively examine all the classes defined in the server.

Toolkit hacking is *easy* to do in NeWS. For HyperTIES, I extended
the NeWS "Lite" toolkit by making a Target subclass of Item, that
highlights when the mouse moves into it. I then made subclasses of
Target to do the kinds of highlighting I wanted for my application.
When HyperTIES is run, it checks to see if the Target classes are
defined in the server, and loads them in if they're not.

I can hack on the pieces of the application interface and toolkit,
reload 'em into NeWS, test them out, fix a bug, load 'em back up
and try it out again, tweak a variable, play around some more,
stick in some debugging statements, frob it until I get that funny
condition, scrutinize a broken process's state, reach inside and
redefine a function, continue the process, frob it mercilessly,
sigh in relief, and then update the source code, iteration after
iteration after iteration, all without restarting the NeWS client
or recompiling anything at all!

   Probably the most significant difference between X and NeWS is the traffic
   between client and server.

No, EXTENSIBILITY is the most significant difference between X and
NeWS. Low client/server traffic is just one of the many advantages
that comes from it. X is just not extensible the way NeWS is.

An X11 client can ask the server if certain predefined extensions
are available, and if they're not, the client can either give up
or do without.

NeWS extensibility is much more finer grained and application
specific -- a client can load its own extensions into the server,
teaching NeWS to communicate in whatever protocol is most convenient
for the application.  It's a dynamic protocol -- clients can make
local or global extensions, on the fly!  For example, when a CAD
program needs to draw a particular integrated circuit for the first
time, it could send the IC's name and a function to draw it, then
extend the protocol by associating a token with the function.  From
then on, it can just send the token to draw the IC.

   First of all, Scheifler wrote a paper about why the traffic
   breakdown wouldn't be as good as the claims (because the
   communication for even simple operations like menus would be higher
   than expected).

I don't think that's true. With NeWS, all the clients share the
same menu code, which runs entirely in the server. There is no
network traffic at all involved with making a menu selection in
NeWS. The only communication that is required is informing the
client of the results of the selection (which could be as terse as
a one byte token -- who needs fixed size packets?). In many cases,
the selection can be acted upon entirely in the server!

One of the big advantages NeWS has over X in network utilization
is that for many applications, repainting a window can be handled
entirely in the server. Instead of the client responding to every
damage event (when the window is exposed or resized), it sends to
the server a program to paint the display (or a display list, and
a program to interpret it), which is executed whenever needed.

   Second of all, it doesn't really matter!  I'm a network
   administrator and I have some experience on this subject.  Lan
   bandwidth is rarely the bottleneck in communications between two
   machines.  We run diskless (including remote swap), remote X, etc.
   and the volume of traffic is just never that high (typically under
   5% of lan utilization).

That sure doesn't agree with the numbers I've heard for the % of lan
utilization on nets with with diskless workstations.  The way
diskless clients eat up the net severely limits the number of them
that can coexist on one piece of cable.  I think network utilization
is a very important factor. I want to be able to run clients over the
Internet, and over the phone!

   Also, most X servers run with Unix Domain sockets when running
   locally, so lan overhead isn't a big issue.

When you run clients locally, paging and context switching become big
issues. (Are you paging over the net? Even more fun!)  With X, if you
run your window manager locally, and it rubber-bands a rectangle when
you resize your window, there must be a Unix process context switch
from the server to the window manager, and back to the server, every
time you move the mouse. It's a big win to have the window manager
running in the same Unix process as the server. No frantic context
switching, and the WM does not need to keep its own copy of all those
data structures that live in the server. With NeWS, switching to a new
window manager is as easy as redefining the DefaultWindow class.  With
X11/NeWS, NeWS window managers can manage X windows, too!

   The only issue that remains is the performance in terms of
   throughput on the lan.  We are already at the point where lan
   performance is within the same ballpark as disk transfer rates, so
   it isn't that big a deal, and we're getting faster lan technology
   too.

Disk transfer rates just don't cut it when compared to memory
transfer rates. We're getting faster and faster processors, as
well! Do you really think that advances in lan speed are going to
be able to keep up with advances in processor speed? I doubt it!

	-Don

Don Hopkins
don@brillig.umd.edu
...!uunet!mimsy!don