Long story short; POSIX and SUS is really great.
Absolutely agree. About 25 years ago, when I started programming on a variety of Unix machines (NeXT, Sun, RS/6000, HP-UX, SVR4, later Linux...) simultaneously, I decided that the only way to stay sane is for my code to be programmed to the minimum standard, which was POSIX. So I stopped reading OS-specific man pages, and instead bought a series of POSIX textbooks, and I had printed copies of the standards in binders. I used those as my reference; suddenly, my porting hassles were much less bad.
I think standards should be followed (with minimal exceptions) but the certification itself is really just bureaucracy and red tape. It isn't like the Java certification where there is a test suite that you can run to test implementation conformity as part of the certification.
From a customer point of view, there is no difference between spending $$$ on a certified OS, versus spending $ or zero on an uncertified one. That's why the certification has become zero value, except for a small number of customers (who then buy AIX or HP-UX anyway).
I think the Open Group (or some POSIX organization?) actually has programmatic conformance test suites. I vaguely remember seeing them quite a few years ago, when I was a heavy user of AIX. I remember that the file system I was working on had to be run through a POSIX test suite as part of quality control acceptance testing, and that test suite was purchased (for lots of money) from some standards body.
My pet peeve with Linux is that they flippantly go against POSIX for no real reason. I.e useful tools like netcat (nc) are not present in many installs.
I don't think nc is in either POSIX or SUS standards. If some Linux distribution leaves it out, that may be a sensible choice, depending on their target audience. Remember, some Unixes were shipped without a C compiler, and while purists took umbrage to that, it was a sensible choice, given that the machine was being sold as an appliance to run canned programs on. And I just checked: nc is on all the Linux machines I logged in to.
You also see things like this:
bugs.debian.org
OK, so ed is now optional in Debian, even though it's required by POSIX and SUS. Fine. Do I have a problem with that? No.
If someone wants to run Debian as an appliance: great for them. In that case, removing ed is a good idea. Not every OS needs to be POSIX/SUS compliant. I've seen so many machines that have exactly one job (like running AutoCAD or running Synoptics), and on those, installing ed or insisting on standards compliance is a waste of time and money. Having an optional package (like ed) installed just means that the user of those machines will waste more time on upgrades.
Now on a development machine, or one that runs scripts shared with other architecture? There installing ed is obviously necessary. One would hope that an intelligent user would know that.
And vigole asked: Is Windows more POSIX compliant than Linux? Indeed, it is, if you consider certification to be compliance. You can install the "Windows services for Linux" (or some similar name), and that makes Windows POSIX.1 compliant, and certified to be so. While Linux is also POSIX.1 compliant, it is not certified. And what's even better: z/OS (the modern name of the old MVS mainframe operating system, which is still sold by IBM) is actually both POSIX and SUS certified, something that few versions of Linux or *BSD have ever accomplished. I don't see that as a shortcoming of Linux or BSD. There are good commercial reasons for z/OS to get that certification, so good for them. And for most Linux distributions and for FreeBSD, there is no need to waste money on certification (they seem to sell like hotcakes without), so this also makes sense.