← Back to context

Comment by tcp_handshaker

9 hours ago

For the Airbus they used different CPUs because CPUs have bugs too...

Not just CPUs, they run a whole different (but also simpler) fallback program in case the main computers fail. I think they were more worried about programming errors but this should avoid all shared failures between the main computers (be it programming or hardware).

  • It does not.

    Even if different teams write software in different languages, they end up creating very similar bugs because the bugs crop up in the complexities of the domain and insufficiencies of the specification.

    N-version programming doesn't work as well as you think. See Knight and Leveson (1986).

    (N-version programming does guard against "random" errors like typos or accidentally swapping parameters to a subroutine call. But so does a good test suite and a powerful compiler.)