This makes some very naïve assumptions about the relationships between entities in a program; in particular that you can make arbitrary assertions about the representation of already-allocated datastructures across multiple versions of a component, that the program's compositional structure morphs in understandable ways, and that you can pause a program in a state where a component can actually be replaced.
By the time you have addressed these, you'll find yourself building a microkernel system with a collection of independent servers and well-defined interaction protocols. Which isn't necessarily a terrible way to assemble something, but it's not quite where you're trying to go...
Worth reading his son @snakesofself's comment below that video for additional context.
As a fan of the show, and what it did to advance the art of visual storytelling, learning more (and understanding less!) about the artists just makes the whole thing more interesting and more human.
Part of the exercise, whether it be making an existing codebase amenable to verification, or standing up a new one designed for it from scratch, is to identify, contain, and comprehend sources of entropy within the system.
At test time, you explore (as much as possible) the state space by replacing these components with data-deterministic mocks. On a run-to-run basis you can then vary the characteristics of the data they return; either with a set of derived known-edgy values, or by fuzzing, or a variety of the two.
This sounds daunting, and for a pre-existing codebase it can be a lot of work, but the upside is very often a substantial improvement in the robustness of and achievable confidence in the implementation.
Viewing an ad is not “giving back” in any meaningful sense. Modern adtech primarily benefits the infrastructure providers, rather than providing a service to its “clients” or a revenue stream to site owners.
Adblocking is the only meaningful objection that the consuming public can raise to the inefficient and wasteful adtech situation. Depending on how you feel about your obligations with regards to civil society, you might view it as a moral imperative.
Your other option is not consuming ad-supported content. There's no natural entitlement you should be able to view all content in a form that suits you.
I’m not sure about the “sadly” part here. Whilst it proved that something could be done, it also taught us a lot about what doing it cost (a lot), how scalable it was (not), and whether it would be broadly applicable (no).
Any strategy for improving software resilience has to account for the scale and pace of software development, as well as accommodating the skill gradient and surrounding social factors. FV as currently practiced fails at all of this.
Doing the same thing and expecting a different result is either madness or stupidity. Rigor and correctness are lacking in most, if not all, software engineering and it's still not okay.