Portability and standard API are very good for users, but manufacturers hate them.  Unix portability was supported by AT&T in part because they were getting flak from non-DEC manufacturers about Unix running only on the PDP-11.   Once Unix was ported, applications could run on hardware that was cheapest and most appropriate to the application rather than where it was first written.  Users, much more than computer companies, benefited from portability.  And DARPA, with a similarly broad view, for the most part did things that helped users rather than specific manufacturers.

In fact, the first thing most manufacturers did with Unix was to change it.  The rot set in quickly, leading to long boring chaotic standards efforts over POSIX and C (remember OSF?).

On the other hand, manufacturers love open source.   There are no apparent limits on growth, and few guiding hands to prevent silly, or downright dangerous features from creeping into the endlessly bloating code bases.  Each company can get their own version at low cost and keep their customers happy, serene in the knowledge that if the customers try to use another system they will have to deal with the 100+ pages of incompatible GCC options and have to tame piles of poorly concieved and documented code.  None of the stakeholders in open source have anything to gain by being compatible, or even letting people know when they change something incompatibly without warning.  After all, it can only hurt the other stakeholders, not them...

Yes, I'm old and cynical, and yes there are some islands of sanity fighting the general trend.   And yes, I think this is a cyclical problem that will swing back towards sanity, hopefully soon.  But where is the AT&T or DARPA with enough smarts and resources to do things simply, and motivation to make users happy rather than increasing profits?

Steve



----- Original Message -----
From:
"Tim Bradshaw" <tfb@tfeb.org>
. . .

To bring this back to Unix history, I think this is an example of a place where Unix has failed (or, perhaps, where people have failed to make use of it properly).  Half the reason these things are such a trouble is that they aren't written to any really portable API, so the bit that runs on Solaris isn't going to run on AIX or Linux, and it only might run on the current version of Solaris in fact.