There was a story I heard that when working on the avionics for one of their planes, Boeing mandated three separate CPU architectures, with the code developed by three different, isolated, teams, using three different toolsets (languages and runtimes) to minimize the risk of some Unknown Unknown commonality taking them all out. Dunno what actually happened. Could be completely folklore.
Yes, it keeps userland code honest if you follow the published API and not a specific behaviour. See for example the fsync() saga on Linux:
* https://lwn.net/Articles/752063/
* https://news.ycombinator.com/item?id=19238121
* https://news.ycombinator.com/item?id=19119991
It's the same reason why porting to obscure CPUs can be useful: DEC Alpha was never popular, but supporting it kind of forced Linux to be 64-bit clean in some ways, so when amd64 came along there was already a bunch of infrastructure in place.
And having 'external parties' that are not part of the same 'tribal structures' and same zeitgeist / group think can allow for experimenting of ideas.
Dave Cutler(Windows NT) too found the DEC support to be a safety test for cleanliness.
Nitpick (and you didn't necessarily imply otherwise), but x86-64 was a latecomer to 64-bit ports in Linux. SPARC I think was next after Alpha, and MIPS, PARISC, IA64, PowerPC at least all came before x86-64 was merged.
eg:
What sort of argument is this. We need multiple political parties. Therefore, our existence is important even if we secure insignificant votes?Or does he mean BSD license vs GPL? In which case, I agree with his idea of diversified choices.