The thread started after reading all manner of stuff which was specific to some particular version of some particular distro neither of which was stated.
Yup; sometimes you just need to poke a bit to get an interesting discussion going.
The Gnu tools were much better quality 30 years ago than they are now.
I don't really know, considering how different the typical use cases and hardware is today. Some of them, like
make,
sed,
awk, and
m4, are only better; I don't recall encountering a bug in any of them. GCC and glibc are really hard to compare, because they've changed so much. (Should we compare the number of bugs, or their density? Number of issues? Users affected? Likelihood for a single developer to run into an issue? I do not know, and don't want to rely on my memory or "gut feeling": I'm too often wrong when I do that.) Just think about the amounts of data current computers shuffle around, on a near-constant basis. It is staggering, in terms of 30 years ago.
I feel fairly certain that very few of the current Gnu developers have read the seminal Unix papers from the 70's.
I'm certain they have not, because many devs now openly decry the
Unix philosophy and
KISS principle/software
minimalism.
The kernel developers are slightly different. Most of them haven't read any articles published before 2000, but at least there is some consistency and rules in place. (The kernel - userspace ABI is one thing that is considered sacred: extended yes, but only modified breaking backwards compatibility for really big reasons. Some subsystems like ALSA and graphics drivers don't play ball, but they're basically results of decisions made almost two decades ago, with no known fixes. Some stuff, like the
/sys pseudofile hierarchy, actually makes sense, and fits the Unix approach pretty nicely. As an example, you can read
/sys/bus/usb/*/idProduct and
/sys/bus/usb/*/idVendor to discover all USB-connected devices, or
/sys/class/input/event*/device/name to find out which human interface devices are connected to the kernel input event subsystem. You can even grab any one for yourself (or feed events back via uinput device), if you have the privileges. The input event subsystem has a stable kernel character device interface for all HID devices, from keyboards to mice to touchpads and joystics. Device privileges are easily managed via
udev service, an old Unix-style daemon, which manages the creation and deletion of device nodes and symlinks as the devices are connected/disconnected/discovered. Unfortunately udev it is now subsumed into systemd, so it might go wonky soon.)
Then, there is systemd, gnome, gdm, and just about all graphical desktop applications, that.. well. We could do better. Or at least not throw hard-earned knowledge to the wind, and redo known mistakes.