[Python-ideas] Why is design-by-contracts not widely adopted?

Steven D'Aprano steve at pearwood.info
Sat Sep 29 05:06:44 EDT 2018


On Wed, Sep 26, 2018 at 05:40:45AM +1000, Chris Angelico wrote:

> > 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.

As per my previous email, I think the extraordinary claim is that there 
exists even a single project which wouldn't benefit from at least one 
contract.

Honestly, you sound almost like somebody saying 

    "Projects would benefit from getting an automated test 
    suite? Ridiculous!"

But to give you a charitable interpretation, I'll grant that given the 
cost to benefit ratio of code churn, human effort, refactoring etc, it 
is certainly possible that adding contracts to some especially mature 
and high-quality projects, or quick-and-dirty low-quality projects where 
nobody cares about bugs, would cost more than the benefit gained. 
There's benefit, but not *nett* benefit.

That goes especially for Python code since the available interfaces for 
contracts are so poor. But that's why we're talking about this on 
Python-Ideas.

I just wish we didn't have to fight so hard to justify the very idea of 
contracts themselves. That's like having to justify the idea of test 
suites, documentation and error checking.


-- 
Steve


More information about the Python-ideas mailing list