Hacker News new | ask | show | jobs
by sadfklsjlkjwt 2137 days ago
> I spent a long time working on things like Wayland and next-generation graphics technology

This is really sad. You are insulting and dismissing technology which did something well over 20 years ago that you think is not possible today. And instead of thinking "hmm maybe I should look at the older technology and see how it did it" you just dismiss it as a "meme" and tell people that the actual technology they used is impossible. So much effort is wasted in our industry because of NIH syndrome...

I seriously hope that the Wayland people didn't just completely ignore the positives of Xwindows!

2 comments

I wrote the linked article explaining X11's internals and design goals in a neutral manner. I've worked on X11 and Xorg ecosystem, worked on the server, I worked on the window managers, the toolkits, applications, compositors, you name it.

I think I'm allowed to have opinions with 40-year hindsight saying that some design decisions have not aged well. I'm not saying X11 is a meme; I'm saying the words "network transparency" ( which never appears once in the documentation; seriously, try to find it https://www.x.org/releases/current/doc/xproto/x11protocol.ht... ) are unhelpful, have unclear motivations and goals, and have a massive restraining influence on what a modern protocol can look like and do.

Aaahh! I get it now.

Network transparency: you can run a process remotely and see the same interface that you would have seen if you had (or had been able to) run it locally. Nothing more, nothing less. Mostly marketing.

We're so desperate for network transparency that we're abusing hypertext web browsers as application platforms, because how else can a machine in a datacenter put a GUI on an end user's screen today?
That's not network transparency. A significant part of the application code is running on the local machine and even if the webserver/API server is turned off there are many applications that work offline and only need a remote connection to download the application itself and sync data periodically.

Your definition of network transparency is so weak even an email client would count as a network transparent application even though 100% of the email client is running on the local machine.

A definition of network transparency that is based around the current behavior of X11 would require you to fully own the remote machine. The remote machine is the real computer that is executing application code and all the display server does is output pixels to a screen and send inputs back to the real machine. When you're using a browser or an email client or a smartphone app the real machine is the device you are holding in your hand, not some server sitting in a data center.

Let me rephrase my point. sshing into a remote machine and running vim there would be considered network transparency. Running vim on your own machine on a mounted NFS share would not be an example of network transparency.

Now transfer this to your web browser argument: How many people are actively receiving control over a google server when they log into gmail? Zero.

> how else can a machine in a datacenter put a GUI on an end user's screen today?

A lot of companies are doing it with Citrix. That's a framework which provides Windows users with what 99% of the Unix users asking for X network transparency are really asking for: the ability to run an app or optionally an entire desktop on the server and have it render locally, where it can be used and controlled. There are some optional file sharing things as well, and audio, etc.

I'm sure the network protocols underneath are appalling, but the product does what people want.

> which did something well over 20 years ago

Not sure that was ever true. 20 years ago, MS remote desktop (called "terminal server" at that time) was vastly superior to X11 for remoting.

"RDS was first released as "Terminal Server" in "Windows NT Server 4.0 Terminal Server Edition" a stand-alone operating system including SP3 and fixes built in. Starting with Windows 2000, it was an optional role and became a mainstay of the Windows NT family of operating systems and was improved with each version of Windows. The rename to "Remote Desktop Services" occurred with Windows Server 2008 R2 in 2009."

X predates Windows NT by more than 10 years and is a completely different beast than remote desktop systems. (Disclaimer: I used to log into a local box, run an unpopular window manager on a remote server, and then spread my workload over a number of remote machines. Terminals, email, gui apps, and yes, the cheesy web browser of the time. Seamlessly. (No desktop-in-a-window. Same files everywhere (Thanks, NFS!), same apps (more work to set up than in Plan 9, but didn't have Plan 9's disadvantages, either) everywhere. And that was half a decade before Windows NT.)

> by more than 10 years

Good point. Still, from 2020 both “available for 21 years” and “available for 33 years” more or less equal to “available since forever”.

> is a completely different beast than remote desktop systems

Pretty much the same. I think you’re confusing remote desktop with VNC, TeamViewer and similar. RDP doesn’t just send bitmaps, it sends GDI draw commands, later versions supplemented them with DirectX9 and D3D11 draw calls. The server implements that by replacing GPU driver with a special version which sends draw commands to connected client, as opposed to rendering stuff on the display.