<div dir="ltr"><div dir="ltr">Hi Chris,<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">An extraordinary claim is like "DbC can improve *every single project*<br>
on PyPI". That requires a TON of proof. Obviously we won't quibble if<br>
you can only demonstrate that 99.95% of them can be improved, but you<br>
have to at least show that the bulk of them can.</blockquote><div><br></div><div>I tried to give the "proof" (not a formal one, though) in my previous message. The assumptions are that:<br></div><div>* 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.<br></div><div>* Figuring out contracts by trial-and-error and reading the code (the implementation or the test code) is time consuming and hard.<br></div><div>* The are tools for formal contracts.<br></div><div>* The contracts written in documentation as human text inevitably rot and they are much harder to maintain than automatically verified formal contracts.<br></div><div>* The reader is familiar with formal statements, and hence reading formal statements is faster than reading the code or trial-and-error.<br></div><div><br></div><div>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!<br><br></div><div>If these assumptions hold and there is no mistake in my reasoning, wouldn't that qualify as a proof?<br></div><div><br></div><div>Cheers,<br></div><div>Marko<br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, 25 Sep 2018 at 21:43, Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Sep 26, 2018 at 3:19 AM Marko Ristin-Kaufmann<br>
<<a href="mailto:marko.ristin@gmail.com" target="_blank">marko.ristin@gmail.com</a>> wrote:<br>
>> Claiming that DbC annotations will improve the documentation of every<br>
>> single library on PyPI is an extraordinary claim, and such claims<br>
>> require extraordinary proof.<br>
><br>
><br>
> 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 <a href="https://groups.google.com/d/msg/python-ideas/dmXz_7LH4GI/5A9jbpQ8CAAJ" rel="noreferrer" target="_blank">https://groups.google.com/d/msg/python-ideas/dmXz_7LH4GI/5A9jbpQ8CAAJ</a>. Let me re-use the enumeration I used in the message and give you a short summary.<br>
><br>
<br>
An ordinary claim is like "DbC can be used to improve code and/or<br>
documentation", and requires about as much evidence as you can stuff<br>
into a single email. Simple claim, low burden of proof.<br>
<br>
An extraordinary claim is like "DbC can improve *every single project*<br>
on PyPI". That requires a TON of proof. Obviously we won't quibble if<br>
you can only demonstrate that 99.95% of them can be improved, but you<br>
have to at least show that the bulk of them can.<br>
<br>
> There are 150K projects on <a href="http://pypi.org" rel="noreferrer" target="_blank">pypi.org</a>. Each one of them would benefit if annotated with the contracts.<br>
<br>
This is the extraordinary claim. To justify it, you have to show that<br>
virtually ANY project would benefit from contracts. So far, I haven't<br>
seen any such proof.<br>
<br>
ChrisA<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div>