The hope that 90% of mutants would be killed by a type-checker might be optimistic. We did a study on Python using before and after MyPy signatures were added (the study is rather tiny but useful as an indicator). – Look in Table II for the comparison between types and tests in killing mutants.
Great interview since the benefits are really clicking for me now. Highlighting one of them for real-world apps:
“It’s typically most fascinating for me how much “dead” code is hidden in code bases. Imagine a(b(c(d)))) style transforms / filters. Often enough, intermediate stages only have an effect in edge cases, but these either cannot reach that code anymore due to project history, or are totally unspecified. The totally unspecified case often lead to discovering semantic problems that reveal security issues.”
Robust tooling for doing this combined with analysis proving it won’t break main workloads could work wonders for getting the cruft out of legacy systems. I mean, the organization has to be willing to invest in improving them in the first place. Usually not likely. More might shift in that direction if effort and risk went down, though.