Re: [dev] client-server model

From: Markus Wichmann <nullplan_AT_gmx.net>
Date: Sun, 30 Jun 2013 11:05:41 +0200

On Sun, Jun 30, 2013 at 10:27:36AM +0200, Christoph Lohmann wrote:
> Greetings.
>
> On Sun, 30 Jun 2013 10:27:36 +0200 oneofthem <oneofthem_AT_lavabit.com> wrote:
> > Why doesn't any of the suckless software use a client-server model?
>
> Learn about X11. And then stop those stupid questions without any intro‐
> duction or greeting. You are disrespectuful and should not use other
> people’s time in such a parasitic way.
>
>
> Sincerely,
>
> Christoph Lohmann
>

Hi all,

speaking of X11, I've been meaning to ask for a while now, but why do
you dislike it? I have looked around on the Internet, but the only
criticisms of it I have seen, are either angrish (someone not capable of
explaining themselves) or some style arguments (i.e. it looks ugly).
None of these really applies to a desktop with DWM and assorted
software, anyway.

If the criticism is against the client-server model, then why do you
dislike that? Or would you like something like rio better? That would be
basically the same thing, only with RPC in the middle (and I thought you
guys despised that). For the uninitiated:

- X11 does its job by accepting connections via a socket and fulfilling
  requests as they come in. That way the program that handles user input
  and display output can be separate from the program that does
  something with those two. In essence, X11 is a way of sharing the
  driver code between processes without using the abomination called
  shared libraries.
- rio does its job by having client processes mount a network pseudo
  filesystem somewhere and detecting writes to the particular files
  within those filesystems. Every mount is a connection. However, due to
  the fact, that this process uses a network file system, a socket is
  still involved, and rio still accepts connections on it. Just this
  time this fact is hidden in the kernel code. Through that socket the
  processes simulate file access, only these are special files, so it
  boils down to RPC with arbitrary function names, even.

If the argument is against complexity: I cannot imagine rio being
simpler that X11. rio contains driver code for access to the display and
the inputs, window management code and a terminal emulator. I don't see
that being simpler than just the driver code for access to display and
inputs.

I can see, that Xorg is a very complex implementation of the X11
protocol, and that that protocoll is not very good, seeing as how it was
extended several times, the extensions oftentimes being incompatible
with each other (e.g. Xinerama + Xdbe) or even superseding another one
(Xrandr + Xinerama).

In short, would you still hate X11 if someone went and streamlined both
protocol and implementation? If so, why?

Ciao,
Markus
Received on Sun Jun 30 2013 - 11:05:41 CEST

This archive was generated by hypermail 2.3.0 : Sun Jun 30 2013 - 11:12:06 CEST