Portability Is Reliability
I don&#x27;t find the defence in depth approach appealing, because it&#x27;s never going to get you to 100% reliability. Rather than adding six swiss-cheese layers and hoping the holes don&#x27;t line up, it would be better to spend more time and effort on a single really solid layer.<p>For the same reason, I don&#x27;t find the argument for fixing bugs in C codebases at all compelling (at least if we&#x27;re talking about &quot;micro&quot; bugs rather than overall architecture issues that might carry over to a future rewrite). Sure, there&#x27;s a lot of C out there. Sure, a lot of the bugs in that C code are findable. But so what? However many bugs you uncover, you&#x27;re unlikely to find them all, and even if you did then how would you know? So isn&#x27;t fixing bugs in existing C codebases just throwing good money after bad? You know you&#x27;re inevitably going to have to rewrite it all eventually anyway.