> For computer viruses, maybe we can have 10 operating systems, but you still don't want to be the unlucky one, and you also don't want to be stuck with the 10th best operating system or the 10th best browser. Diversity is how nature defends against corruption, but not how human engineers do.<p>Hold up. I'm not sure what "the 10th best browser" even means. There isn't some absolute scale of browser quality. The web browser that more than half the world uses is kind of lousy in my eyes. That's why these alternatives exist.<p>Even if there were a single "best", you'd be much less likely to "be the unlucky one", because if everyone is using a system with tiny market share, you're each much less appealing to attackers. And the distribution falls off really fast.<p>What's the 10th most popular OS today? NetBSD, maybe. I searched the CVE list for "Microsoft Windows", and see 61 issues in 2019. "macOS" has 44 this year, and NetBSD hasn't had any since 2017. The NetBSD developers are smart and careful, I'm sure, but at least part of that has got to be because they've got <0.1% market share. Nobody wants to spend time attacking NetBSD because then you've got the problem of <i>finding</i> a NetBSD system to actually attack! I wouldn't use obscurity as my only security, but I'm not going to discount its value, either.<p>> In fact, a major goal of modern engineering is to destroy diversity. As Deming would say, reduce variation. Find the "best" solution, then deploy it consistently everywhere, and keep improving it.<p>I disagree. Software engineering (real engineering, not "I built a webpage over the weekend") does indeed use diversity as a tactic. Avionics famously has multiple independent implementations, and checks results between the units.<p>"Find the best solution" is great for general problem solving strategies, but not good for sourcing implementations. When I'm building something, I don't want to use a hardware component that was only available from one supplier. Standardize the interfaces and requirements, but then make sure you can meet those in more than one way.