Hacker News new | ask | show | jobs
by kaba0 763 days ago
X being network transparent hasn’t been true for decades — no one uses xmotif and similar GUI libs, they just grab a buffer and paint stuff themselves, making the X protocol an inefficient format to carry bitmaps around.

Local-first is the correct approach as the end computers are significantly more powerful than 30 years ago. Plus, we can transport bitmaps far more efficiently with compression, so it’s quite obviously an improvement on every metric, it is pretty shortsighted to note it down as circular development.

2 comments

"no one uses xmotif and similar GUI libs, they just grab a buffer and paint stuff themselves, making the X protocol an inefficient format to carry bitmaps around."

While true for things like firefox, and GUI libs that think they know better than the host, its not ideal, and entirely dependent on the language/toolkit being used. And it's a side effect of X being too low level and not having a standard widget toolkit as one gets on Windows/mac. On those platforms, it's not just the widgets but file open dialogs provided by the OS, skinned consistently across applications, and things like global keyboard shortcuts (ex, copy/paste) tend to work close to 100% of the time.

If one goes back to the win3.x/macos7/etc timeframe it was almost unheard of for applications not to follow system wide color themes. WHich is why "dark mode" 1995 worked more reliably than it does on any platforms today. Today, doing something like inverting to a "dark" theme is suddenly something that each application hacks in, and when the OS provides a theme option, the applications frequently don't follow it correctly/etc.

I'm glad I found this thread, firefox really jumped the shark with remote x at some point, it always confused me why this happened all of a sudden. All I could find out from googling was the wayland thing and all of a sudden how x over the network wasn't cool anymore lol
I'm not sure this is true for apps that commonly forwarded though? My impression is tk for example uses xlib heavily and so has much better behaviour over the network than GTK, and the majority of apps I've seen where the audience uses X forwarding commonly seem to be using tk.
Somebody in a thread the other day lamented how almost always X clients are sensitive to network drops. And the suggestion is to use Xpra! (It’s “like tmux”) Xpra doesn’t forward X though, it is a rootless X server that then forwards everything as compressed bitmaps like VNC. It’s a nice homage to how awful X is even at its one oft purported benefit around here.

X11 network transparency is a pretty poor technology, one can go through each of the “Fallacies of Distributed Computing” document to understand why.

and instead of x12 modernizing the network and access layer, breaking backwards compatibility with x11, they dropped those two features, and rewrote everything else which worked, and broke backwards compatibility.

it's hard to defend.

I’m fairly sure the very maintainers of X11 knew more about the topic than you. And you get backwards compatibility with stuff like xwayland.