[Info-vax] REST (was: Re: DECserver/LAT across DECnet areas?)

Richard legalize+jeeves at mail.xmission.com
Fri Jul 28 20:54:39 EDT 2023


[Please do not mail me a copy of your followup]

Stephen Hoffman <seaohveh at hoffmanlabs.invalid> spake the secret code
<u9prkf$18q1m$1 at dont-email.me> thusly:

>On 2023-07-25 12:19:30 +0000, Simon Clubley said:
>
>> On 2023-07-24, Stephen Hoffman <seaohveh at hoffmanlabs.invalid> wrote:
>>> 
>>> But these discussions all go back decades. Arguably, X is an RPC with 
>>> graphics support bolted on, for instance.
>>> 
>> 
>> And unlike its replacement, this means it 1) actually works, and 2) can 
>> be efficiently used across the network to display GUI applications 
>> running on another server.
>
>From a decade or so ago, a presentation by Daniel Stone on some of the 
>issues with X11: https://www.youtube.com/watch?v=RIctzAQOe44

I haven't watched the video, but if I recall the main argument is that
the UI loop invovles network round trips:

1. the "server" generates a mouse event from a locally attached device
2. the mouse event is transmitted across the network to the application
3. the application recognizes that the mouse event means "display a menu"
4. the application issues the commands to draw the menu
5. the application waits for another event, causing the local transmit
   buffer to be flushed (Xlib) and the drawing commands are
   transmitted across the network to the server which draws the menu.

If network latency is significant, the constant round trip of
event/response for common UI elements like popup-menus and
highlighting of the menu item that would be selected upon release of
the mouse button results in very sluggish interaction.

NeWS attempted to address this by letting the application upload
code into the server to handle location UI interaction.  The point of
this uploaded code was to perform the visual manipulation of the UI
and only transmit back to the application when some non-UI related
work needed to be performed, e.g. you selected a menu item or clicked
on a button.

Since the window manager is just another client in X, even moving the
windows around on the screen could be very sluggish if there was
significant round-trip delay between the server and the machine runing
the window manager.

While the NeWS approach has some elegance to it, in practice it was a
giant pain in the butt.  Debugging that uploaded code running in the
server was extremely tedious and difficult.  At least that was my
experience circa 1989 when using NeWS on an SGI workstation.

So, programmers being the lazy creatures we all know and love stuck
with traditional debugging and programming techniques like dbx and C
instead of learning PostScript and struggling to put their UI into the
server.
-- 
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
            The Terminals Wiki <http://terminals-wiki.org>
     The Computer Graphics Museum <http://computergraphicsmuseum.org>
  Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>



More information about the Info-vax mailing list