My understanding is that it's even relatively common, at least
for flight-critical components, to use totally different
implementations (of both hardware and software), not just sourced from
different vendors, resellers or batches, such that the same software
bug _cannot_ reasonably appear in both, reducing the scope of software
errors to _specification_ bugs, which an inherently engineering field
(physical engineering, fluid dynamics, ...) is better equipped to deal
with early. Recent events notwithstanding.