2015-06-04
Linux evolution through de facto quiet standards
In my entry on why I was interested in moving to ext4, I said:
As time goes by, more and more software is likely to assume sub-second file timestamps basically by default (because the authors have never run it on a system without them) and not work quite right in various ways. I can fight a slow battle against what is effectively a new standard of sub-second file timestamps, [...]
Some people might bristle at the idea that we will drift into a world where sub-second file timestamps are a standard not because people sat down and thought about it but because it just kind of happened. I have pretty much the opposite reaction.
Linux (and Unix in general) has always evolved in part through a familiar process where common environments have something (such as sub-second file timestamps), people write code that tacitly assumes this thing because that's how people develop, and then this thing becomes basically mandatory in that if you try to use or push an environment without it, you wind up having a painful time. This is not a bad thing (or at least almost never a bad thing). Instead it is exactly how a de facto standard forms and how you want them to form. In many ways the best standards are the ones that arise organically because they're what everyone is doing and what everyone already has (for suitable values of 'everyone'). Arguably it's how standardization is supposed to work, where would-be standards are tested in the marketplace of code and either found useful or found wanting.
(Once you have a de facto standard like this, you can get some standards people to come and write it down for you if you want an actual formal document about it.)
If sub-second file timestamps become a real de facto standard for Linux (or even for Unix), it won't be anything exceptional. It will just be another bit in a long line of Linux (and Unix) evolution through what everyone just does.
(Where de facto standards like this tend to run into problems is situations where the world changes. After all, once upon a time everything was a 32-bit Vax and people wrote code accordingly. Then the situation changed repeatedly and, well, pain ensued.)
By the way, not everyone is happy with de facto standards forming this way. As to why, well, one way to put it is that Gnome and DBus and so on are currently de facto Linux standards and systemd may well be on the way to being one (the systemd people probably would like that). The possibility of de facto standards forming tacitly is undoubtedly one reason some people fought so hard against systemd in Debian.