Hacker News new | ask | show | jobs
by taeric 1373 days ago
This isn't quite right. Both have gotten arbitrarily faster. That some folks have gigabit fiber is proof of that. Graphics have just outpaced networking. Easily.
3 comments

The problem with X over the network is not bandwidth it is latency. The X11 protocol is very chatty so even very simple things will cause several roundtrips which makes X over the network so painful.
> The X11 protocol is very chatty so even very simple things will cause several roundtrips which makes X over the network so painful.

This simply isn't true. Some operations require roundtrips, drag and drop comes to mind, but very simple things absolutely don't. Events come one way, draw commands go the other.

Well that's not what the xorg website says: https://www.x.org/wiki/Development/Documentation/Performance...

Essentially xlib is latency limited because its a synchronous protocol. Xcb can help if you redesign your applications for it, but we are talking about old applications (motif...)

You know xcb and xlib are just different client libraries for accessing the exact same wire protocol, right?

Moreover, notice the example they gave there is atom interning, which is a roundtrip on the wire (though you can batch them even in xlib...), and they say "most real applications will see less benefit than this" since that's the worst case - most applications do atom work at startup, not in the main use cycle, which is famously both async and buffered (it used to be a FAQ on xlib tutorials reminding people to run the event loop, and error handling is complicated a bit by it).

Though, even there, networks are far faster than they used to be. Especially for the size is windows they used to push.
Latency hasn't really improved. Dial up or isdn to nearby cities was 25-50ms. Same as I get with hfc or 5g. Cable was slightly better where it was available. International pings got much worse from australia in the 2010s but since improved roughly back to where they were.

Bandwidth has increased by 3 orders of magnitude though.

Dial up latency was never that low. ISDN, yes, but traditional dialup modems were pretty bad. The analog-to-digital conversion introduced a couple hundred milliseconds of latency.
I remember having latency under 100 ms within the metro area, but I could easily be misremembering, and I don't have a PPP account anymore to test. (And I'd have to visit my MIL who has a real POTS line with it's low latency)... But I did find a reference mentioning 150 ms round trips regionally, which I think was US west/east/central, so I think this 150ms is including some intercity latency as well.

https://web.archive.org/web/20160305000336/http://www.thefre...

Hmm. Wikipedia is claiming 150 ms latency on dialup: https://en.wikipedia.org/wiki/Dial-up_Internet_access

I remember higher, but it's been over 20 years now (we got broadband pretty early here), so who knows.

Latency hasn't really improved. Dial up or isdn to nearby cities was 25-50ms. Same as I get with hfc or 5g.

Bandwidth has increased by 3 orders of magnitude though.

I think one thing that sort of disappeared was the vision of thin clients everywhere. X11 is an obvious thin-client solution.

Thin client for home use seems like a winning proposition. Rather than giving the kids a Raspberry Pi 400 or garage-sale P4 when they want their own computer, you could hook up another X terminal to a large shared Ryzen box. The hardware gets more efficiently used, files can easily be shared and centrally backed up, and nobody ends up being the guy with the cast-off or otherwise inferior PC.

I think quite the opposite happened, just not on X11 level. The web browser is essentially a thin client nowadays. The fact that you have full client-side scripting is one thing that was IMHO a bit underdeveloped in classical thin-client systems because with that you can mask network latency much easier (though, admitted, I don't know a lot about how X11 handles this).
Don't agree at all. The web browser is essentially a standardized computer on which to run your fat client systems like SPAs. The browser can run arbitrary computation locally.
The problem being that X thin clients back then were more powerful than desktop PCs at the time. Even now they're more expensive than a Raspberry Pi, so it's more economically efficient to buy one of those.
Also, network latency has a quite imminent physical limitation, the speed of light. Serial computations do also have a limit, and we are close to it with current technology, but parallel execution doesn’t really have any, and GPUs take massive advantage of that. We can continue to increase resolution /frame rate basically arbitrarily (of course with very diminishing returns after a point)