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

On Tue, 25 Sep 2018 at 21:43, Chris Angelico <rosuav@gmail.com> wrote:
On Wed, Sep 26, 2018 at 3:19 AM Marko Ristin-Kaufmann
<marko.ristin@gmail.com> wrote:
>> Claiming that DbC annotations will improve the documentation of every
>> single library on PyPI is an extraordinary claim, and such claims
>> require extraordinary proof.
>
>
> I don't know what you mean by "extraordinary" claim and "extraordinary" proof, respectively. I tried to show that DbC is a great tool and far superior to any other tools currently used to document contracts in a library, please see my message https://groups.google.com/d/msg/python-ideas/dmXz_7LH4GI/5A9jbpQ8CAAJ. Let me re-use the enumeration I used in the message and give you a short summary.
>

An ordinary claim is like "DbC can be used to improve code and/or
documentation", and requires about as much evidence as you can stuff
into a single email. Simple claim, low burden of proof.

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.

> There are 150K projects on pypi.org. Each one of them would benefit if annotated with the contracts.

This is the extraordinary claim. To justify it, you have to show that
virtually ANY project would benefit from contracts. So far, I haven't
seen any such proof.

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/