Systemd, Debian, and Hoare’s Turing Award Lecture
Recently the amount of flame-war discussions on debian-devel mailing list is again going up, due to the fact that systemd is finding (fighthing?) its way into all corners of the formerly peaceful Debian eco-system. In one of these threads a kind soul pointed the devs (systemd as well as Debian) at the Turing Award lecture of Antony Hoare, delivered in 1980.
And indeed, the lecture contains a collection of very interesting and important statements, not really surprising considering the importance of the Turing Award, as well as the influence Prof. Hoare had (and has!) in many areas of software development.
The quote that was sent to the debian-devel list, and hopefully be read and understood by both systemd and Debian/systemd devs, is the following:
I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
The full lecture can be found for example here. And indeed, yes, most of the discussion, and the aversion of many of those opposing systemd, is based on two facts:
- opaque and over-complicated design: many low-level hardware engineers know the pains of asynchronous state machines. There are timing issues, there is no way to verify, or at least halfway guarantee proper behaviour, far less correctness. And what is the answer to these complains? Here we go (link to the post on d-d by Matthias Urlichs):
[…] because PID1 knows perfectly well how to do it on its own and will give you a complete status […]
Huuuu? Wait, that is a joke? You are telling me that an asynchronous state machine consisting of tens (hundreds?) of intermixed deps, don’t want to count how many loc, is knowing what is going on. Wow, you managed to program the universal machine. Great. I hope nobody teaches you about Gödel.
- indifference of both upstream and Debian devs: Yes, we are always told that Gnome3 and Systemd are different. But then, why do the Debian-Devs of the two groups have sit-ins discussion future plans (take-over?)? It is a lie to say that the are independent. Most of the times it is due to Gnome software that systemd is pushed onto systems. And then, what do we here from one of the devs of Gnome (link to the post on d-d by Josselin Mouette):
As far as GDM is concerned, any bug reported with systemd-shim installed will be ignored.
Well, then, yes, that means that it is not a requirement anymore to support and interoperate with all (as far as possible) of the software. There is not even the will to support anything but systemd.
There are many more cases of ignorance, hostility, etc of systemd and Debian/systemd maintainers. I posted on this topic, and those reading the debian-devel mailing list can find countless (well, not in the mathematical sense) examples.
It is just another chapter in the very very painful development that Debian is going through at the moment. It would be so much easier if systemd wouldn’t be so idiosyncratic, and its developers, including the Debian representatives, would be reasonable instead of most of the time reckless and ignorant.
C.A.R.Hoare did understand what is important in system design. Unfortunately it seems that the young generation has lost/forgotten these qualities. Having a systemd uncountable-loc monster as PID1 is something that Hoare would not have considered a software design so simple that there are obviously no deficiencies. But this is a different generation.