
X Window System: Principles - lioeters
https://en.wikipedia.org/wiki/X_Window_System#Principles
======
lioeters
\- Do not add new functionality unless you know of some real application that
will require it.

\- It is as important to decide what a system is not as to decide what it is.
Do not serve all the world's needs; rather, make the system extensible so that
additional needs can be met in an upwardly compatible fashion.

\- The only thing worse than generalizing from one example is generalizing
from no examples at all.

\- If a problem is not completely understood, it is probably best to provide
no solution at all.

\- If you can get 90 percent of the desired effect for 10 percent of the work,
use the simpler solution. (See also worse is better.)

\- Isolate complexity as much as possible.

\- Provide _mechanism_ rather than policy. In particular, place user interface
policy in the clients' hands.

------
kubmit
X Window System programming principles in 2020: Use xcb.

------
Upvoter33
oh X windows, how you haunted my youth. Don't worry, you only need to buy like
11 manuals to make sense of it. :)

~~~
alxlaz
I used to hate those eleven bloody manuals back in the day and didn't lose a
single chance to complain about how the whole thing is a big designed-by-
committee mess.

Count your blessings though: Wayland has pretty much no up-to-date
documentation about anything except the most trivial concepts. The only reason
I can do anything with it today is that I had the chance to learn it as part
of my job, so I could invest 8+ hours/day in it for several weeks and read
heaps upon heaps of source code (of variable quality), ask stupid questions on
IRC and mailing lists, and not the least of all, attend some workshops that my
employer was glad to pay for (and thank God they were 'cause there's no way
I'd have spent that kind of money to learn about Wayland).

I mean, I definitely don't want to go back to writing code with the kind of
technology that you can write a 12-volume manual about. Just thinking about
Xlib makes me shudder. But I sure wish I had 12 volumes of information about
Wayland...

~~~
cycloptic
If you're interested, the author of Sway recently open-sourced the draft of
his book on Wayland: [https://wayland-book.com/](https://wayland-book.com/)

~~~
alxlaz
I know about that book, and it certainly fills a big void (but it is an early
draft -- 3-4 years ago, when I had to learn it, this wasn't around). It's good
introductory material, IMHO, and it says a lot about the priorities of the
companies involved in Wayland (and FOSS in general) that it's pretty much the
only one of its kind, and written by a volunteer. If Wayland ever really
becomes a successful desktop technology, Drew DeVault will have played an
extraordinarily important role in it.

It's nowhere near the kind of documentation that X11 had, but there is also no
way that is ever going to happen without serious commercial backing. The team
that worked on the The Definitive Guides to the X Window System book series
was probably larger than all the teams that worked on all FOSS Wayland
compositors in existence -- and could work on it full-time.

~~~
cycloptic
I know what you mean, I learned it around 1.5 years ago and there was almost
no written material at all. The way I did it was to source dive into
libwayland and weston for a couple weeks. There is no coalition of big Unix
vendors all putting money into it trying to build their own desktop platforms
this time. It's all the embedded people shipping small devices running mostly
static software stacks.

------
self_awareness
> Isolate complexity as much as possible.

ICCCM, where are you going, stop, stop now, you have no access he-

