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

Steven D'Aprano steve at pearwood.info
Fri Sep 28 19:39:08 EDT 2018


On Fri, Sep 28, 2018 at 07:18:54PM +0200, 2qdxy4rzwzuuilue at potatochowder.com wrote:
> 
> On 9/28/18 12:45 PM, Steven D'Aprano wrote:
> >On Tue, Sep 25, 2018 at 09:59:53PM +1000, Hugh Fisher wrote:
> >
> >>C and Python (currently) are known as simple languages.
> >
> >o_O
> >
> >That's a usage of "simple" I haven't come across before. Especially in
> >the case of C, which is a minefield of *intentionally* underspecified
> >behaviour which makes it near to impossible for the developer to tell
> >what a piece of syntactically legal C code will actually do in practice.
> 
> s/C/Python/
> 
> s/underspecified/dynamic/
> 
> ;-)

I see the wink, but I don't see the relevance. Are you agreeing with me 
or disagreeing?

Python is "simple" in the sense that the execution model is *relatively* 
simple, but its not a minimalist language by any definition. And as you 
say, the execution model is dynamic: we can't be sure what legal code 
will do until you know the runtime state.

(Although we can often guess, based on assumptions about sensible, 
non-weird objects that don't do weird things.)

But none of that compares to C undefined behaviour. People who think 
that they are equivalent, don't understand C undefined behaviour.

https://blog.regehr.org/archives/213

http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html



-- 
Steve


More information about the Python-ideas mailing list