Here are some typical examples:
|/etc/init.d/httpd stop||/sbin/init.d/httpd stop||apachectl stop|
|/etc/init.d/dns stop||/sbin/init.d/named stop||svc -t /service/dnscache|
In short, UNIX integrators have thrown away the efficiencies of the mass market. Diehard UNIX fans adapt; most users and system administrators give up in disgust.
I'm not going to take this any more. I demand cross-platform compatibility:
|apachectl stop||apachectl stop||apachectl stop|
|svc -t /service/dnscache||svc -t /service/dnscache||svc -t /service/dnscache|
The tremendous benefits of cross-platform compatibility come from a package's interface being exactly the same on every system. It is a relatively minor benefit for different packages to have similar interfaces. Breaking cross-platform compatibility for the sake of cross-package similarity is a horrible idea.
I used to think that UNIX integrators introduced frivolous incompatibilities because they simply didn't understand the costs. But I've realized that the problem runs deeper: they like the costs. UNIX integrators are competing with each other for new UNIX users; each integrator wants its users to stick to its system. As in Garrett Hardin's ``Tragedy of the Commons,'' every integrator sees an immediate benefit in introducing an incompatibility, even though these benefits eventually add up to a giant loss.