> - "X has defeated us by switching the meaning of client and server"
If you think in terms of network programming, "server" is the program that accepts incoming connections and handles requests from clients, and "client" is the program that initiates the connection and sends requests, it is not confusing at all.
The security part is true, though. X authentication sucks, and using ssh might make that usable (plus, encryption), but that is kind of like saying that eMail is not a secure communication channel, but PGP solved that.
But there is no alternative that solves the problems with X while keeping or improving upon its strengths (that I know of, I should add):
The "mechanism not policy" part is the reason it is possible to choose from several desktop environments.
Also, X has achieved something that no other current windowing environment can do: Transparent, cross-platform windowing. There are X servers available for all the free Unices, macOS, Windows, and once upon a time, I am told, for OpenVMS, too.
Indeed, X liberated us from expecting workstations to only be clients and servers to be some big iron where I go to get service. What X began, lightbulbs (with embedded servers) are now completing.
I am not an authority on designing network protocols by any standard, first using two separate connections for commands and data seems strange enough to begin with (at least to me). But I cannot imagine what possible reason the people who designed the protocol had.
To be clear, I am not certain if I would have done a better job.
Either way, I was very happy when I discovered sftp. :)
FTP always seemed to me to be a design that was never fully implemented. There's a hint that downloads should run in the background and in parallel while you look around the directories, but FTP clients and servers for a very long time were stubbornly single threaded.
One also has the impression that FTP was supposed to be integrated into your shell and avoid the clunky client entirely, but the design wasn't quite there to support it, so we got the worst of both worlds. A funky network protocol that ran into a lot of trouble when firewalls and NAT appeared and a primitive placeholder client that only downloads a single file at a time.
If you think in terms of network programming, "server" is the program that accepts incoming connections and handles requests from clients, and "client" is the program that initiates the connection and sends requests, it is not confusing at all.
The security part is true, though. X authentication sucks, and using ssh might make that usable (plus, encryption), but that is kind of like saying that eMail is not a secure communication channel, but PGP solved that.
But there is no alternative that solves the problems with X while keeping or improving upon its strengths (that I know of, I should add):
The "mechanism not policy" part is the reason it is possible to choose from several desktop environments.
Also, X has achieved something that no other current windowing environment can do: Transparent, cross-platform windowing. There are X servers available for all the free Unices, macOS, Windows, and once upon a time, I am told, for OpenVMS, too.