Hi Chris,
An extraordinary claim is like "DbC can improve *every single project*
on PyPI". That requires a TON of proof. Obviously we won't quibble if
you can only demonstrate that 99.95% of them can be improved, but you
have to at least show that the bulk of them can.
I tried to give the "proof" (not a formal one, though) in my previous message. The assumptions are that:
* There are always contracts, they can be either implicit or explicit. You need always to figure them out before you call a function or use its result.
* Figuring out contracts by trial-and-error and reading the code (the implementation or the test code) is time consuming and hard.
* The are tools for formal contracts.
* The contracts written in documentation as human text inevitably rot and they are much harder to maintain than automatically verified formal contracts.
* The reader is familiar with formal statements, and hence reading formal statements is faster than reading the code or trial-and-error.
I then went on to show why I think, under these assumptions, that formal contracts are superior as a documentation tool and hence beneficial. Do you think that any of these assumptions are wrong? Is there a hole in my logical reasoning presented in my previous message? I would be very grateful for any pointers!
If these assumptions hold and there is no mistake in my reasoning, wouldn't that qualify as a proof?
Cheers,
Marko