5 ms·
I was a fan of DDD back in the day (long ago, when the Motif based UI was OK), but that was because I really didn't know how to use plain gdb. I'm actually sur
by reidrac 10y ago
I was a fan of DDD back in the day (long ago, when the Motif based UI was OK), but that was because I really didn't know how to use plain gdb.
I'm actually surprised that DDD continues (somewhat, there was a release in 2009).
- groovy2shoes 10y agoI still think the Motif GUI is OK. It's ugly by modern standards, but it's functional, fast, and works wayyyy faster over the network than anything GTK- or Qt-based. Any toolkit that renders with X primitives tends to actually be functional over the network; anything that renders with pixmaps not so much. That pretty much leaves Athena, Motif, Tk, and a handful of custom GUIs like the one you find in xv. They're mostly all ugly, but there's really no reason an Xlib/XCB/Xt-based GUI must be ugly -- it's just that at some point everyone decided to start rendering via pixmaps so the ones that don't are all old at this point. Personally, I'll deal with the ugliness if it means I have a responsive UI! Bonus points for small binary, small memory footprint, and stable API.
- qwertyuiop924 10y agoHeh. Given how Athena itself seems to be run atop ubuntu these days, I wonder how MIT gets all the GUIs working. Unless the architecture of Athena has changed radically, and it's no longer using networked X...
- groovy2shoes 10y agoI 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?).