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(a)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.