4 ms·
I mean libXaw ("X Athena Widgets", and its siblings Xaw3d, Xaw3dXft, neXtaw, etc.). I'd be very surprised if the total Athena project even still uses it for an
by groovy2shoes 10y ago
I mean libXaw ("X Athena Widgets", and its siblings Xaw3d, Xaw3dXft, neXtaw, etc.). I'd be very surprised if the total Athena project even still uses it for any new code given how old-skool it is.
- qwertyuiop924 10y agoI doubt they do either. I was just wondering how Athena runs over a network, given it's using GUIs with pixmap primitives.
- groovy2shoes 10y agolibXaw[3d[Xft]] don't use pixmap primitives, but geometric primitives. The X protocol has messages like: "draw a polygon with these vertices and this visual". Sometimes a bitmap or pixmap might be used to render an icon or something, but most of the window is drawn via these primitives. Contrast to GTK (for example, but most "modern" toolkits do this) everything is rendered to a pixmap (via, e.g., GDK or Cairo), and the final pixmap representing the entire window is handed off to X to display with a single message like: "draw this pixmap at (0, 0)". The primary reason Xaw and kin (along with Motif, Tk, and other toolkits that make good use of X's drawing primitives) get better network performance is perhaps obvious at this point: a handful of serialized polygon objects is smaller than a TrueColor pixmap. Basically, windows drawn with GTK and friends are practically streaming video with lossless compression (if any), while windows drawn with Xaw and friends are more like SVGs. The end result is that the X-primitive-based toolkits use much less bandwidth than the pixmap-based ones, and the difference is usability is often enormous.
- qwertyuiop924 10y agoI know. However, Project Athena itself isn't using Xaw. It seems to be running an awful lot of GTK apps. So I'm starting to wonder if it's really networked anymore.
- groovy2shoes 10y agoIt was using Xaw, way back when :) But you're right: it's probably not running X apps over the network anymore. Back when the X protocol was designed, it was still common that terminals were pretty spartan, whereas the servers they connected to were beefy machines. Nowadays, "terminals" with decent compute power are common (this has been the case for quite some time now), so it makes more sense to run the X clients locally in most cases. That being said, I for one still run X apps over the network fairly often, and would do so more often if many of the apps I used didn't suck so much over the network. For comparison, try running an xterm tunneled over ssh side-by-side with a gnome-terminal or something else GTK-based (also over an ssh tunnel). Play some emacs tetris or something in both. The difference is even larger when the clients in question make more use of various widgets, but I'm having a hard time coming up with a fair comparison (I'd suggest gvim compiled with Xaw or Motif versus gvim compiled with GTK2 or GTK3, but I gather you're an emacs user so that might be a poor exercise -- perhaps emacs's GUI has similar options?).