7 ms·
If X-windows wasn't complete garbage at actually providing remote applications then it may have had a chance.
by lazyier 7y ago
If X-windows wasn't complete garbage at actually providing remote applications then it may have had a chance.
- klodolph 7y agoBeing complete garbage didn’t stop JavaScript either :/ At least JS had the excuse of being designed and implemented by a single developer in three weeks. X Windows was part of Project Athena, a $50 million project from MIT, DEC, and IBM with a five-year schedule.
- kick 7y agoX worked great for what it was aiming to do. It's not even bad for really remote applications. It works really well, just don't use a dozen layers of poorly-designed abstraction. Write something with xcb or xlib, and you'll get instantaneous response from the other side of the planet. Here's a nice little article from 1989 telling just how great it was for the time: https://simson.net/clips/1989/1989.TechRev.Athena.pdf https://simson.net/clips/1989/1989.TechRev.Athena.pdf
- klodolph 7y agoEh, that’s a nice fluff piece but doesn’t match my understanding or experiences working with X. Once X had more widespread adoption in the 1990s you started to see a lot more hate. The layers of abstraction are there because X is such a godawful piece of shit. Sure, your application will be fast if you only use XCB or Xlib (and XCB is just a modern replacement for Xlib, made because of how deeply flawed Xlib is, and it can’t even fully replace Xlib). But few people are willing to put in the blood, sweat, and code to write something that is pure X. So if X worked great for what it was aiming to do, it was aiming to do the wrong thing.
- kick 7y agoX was hated when it got widespread adoption because people began using it for things it wasn't intended for. X was aiming to do the right thing. Sure, if you're using it to connect to a box in Canada over a satellite connection in Johannesburg during 1995 with countless abstractions, you're going to have a horrible time. Use the right tool for the job.
- DonHopkins 7y agoX-Windows IS a dozen layers of poorly-designed abstraction, itself. To the core. Most of which nobody even uses any more. But is still required to be there. And yes, it is extremely bad for remote applications. The X-Windows Disaster https://medium.com/@donhopkins/the-x-windows-disaster-128d398ebd47 https://medium.com/@donhopkins/the-x-windows-disaster-128d39... >X: The First Fully Modular Software Disaster https://news.ycombinator.com/item?id=17056516 https://news.ycombinator.com/item?id=17056516 John Steinhart wrote XTool, a nice snappy reimplementation of X11 on top of SunView! ;) https://web.archive.org/web/20171008204348/https://minnie.tuhs.org/pipermail/tuhs/2017-September/010471.html https://web.archive.org/web/20171008204348/https://minnie.tu... X and NeWS History https://news.ycombinator.com/item?id=15325226 https://news.ycombinator.com/item?id=15325226 Jon Steinhart wrote: >XTool was very small and fast compared to the X sample server because I wrote the server from scratch. I think that I'm the only person to write an X server outside of the X Consortium. One of the things that I learned by doing it was that the X Consortium folks were wrong when they said that the documentation was the standard, not the sample server. There were significant differences between the two. >The only really worthwhile thing about X was the distributed extension registration mechanism. All of the input, graphics and other crap should be moved to extension #1. That way, it won't be mandatory in conforming implementations once that stuff was obsolete. As you probably know, that's where we are today; nobody uses that stuff but it's like the corner of an Intel chip that implements the original instruction set. As an aside, I upset many when working on OpenDoc for Apple and saying the same thing there. >The atom/property mechanism allows clients to allocate memory in the server that can never be freed. Some way to free memory needs to be added. >The bit encodings should be part of a separate language binding, not part of the functional description. >Had he done some real design work and looked at what others were doing he might have realized that at its core, X was a distributed database system in which operations on some of the databases have visual side-effects. I forget the exact number, but X includes around 20 different databases: atoms, properties, contexts, selections, keymaps, etc. each with their own set of API calls. As a result, the X API is wide and shallow like the Mac, and full of interesting race conditions to boot. The whole thing could have been done with less than a dozen API calls.
- DonHopkins 7y agoThank you for saying "X-Windows". ;) Recommendation: People who like saying "X-Windows" also enjoy saying "Project Anathema".
- asveikau 7y agoI like it better than VNC or RDP, especially on a fast network. Those others I think get it wrong with their "whole desktop" sharing. The experience of having X clients streamed as they are launched and the local WM gets to manage decorations - I like that model a lot more, for say the scenario where I ssh into a machine and launch a GUI program. RDP is much faster than X. It had the benefit of being designed later I guess. VNC usually feels laggier than X to me somehow. As if there is a cursor sync issue. These are just my observations as a user.
- cryptonector 7y agoIt's been said that NeWS could have been the web.