Re:Python at Scale: Strict Modules
by lmm on Friday December 18, 2020 @07:52AM
(#25466572)
> It's the static typing that couples because it introduces global behaviour through its types, which impose meaning from the top.
I don't think that's true; static typing on a local scale or at interface boundaries is useful precisely because it enables local reasoning. Without those constraints you have no chance of understanding any part of the system without understanding the whole thing. If you go so far as to expose all state manipulation in the type system then that becomes sort of global, but even then I'd argue what you're actually doing is not introducing global coupling but rather exposing the global coupling that was already there.
> But to say it's failed I think is not right, because nowadays people write dynamic languages basically like they'd write Java, they don't embrace the dynamic aspects.
I think that very fact is the proof that it has failed; even in languages that were designed for it, people prefer not to follow that paradigm.
I don't think that's true; static typing on a local scale or at interface boundaries is useful precisely because it enables local reasoning. Without those constraints you have no chance of understanding any part of the system without understanding the whole thing. If you go so far as to expose all state manipulation in the type system then that becomes sort of global, but even then I'd argue what you're actually doing is not introducing global coupling but rather exposing the global coupling that was already there.
> But to say it's failed I think is not right, because nowadays people write dynamic languages basically like they'd write Java, they don't embrace the dynamic aspects.
I think that very fact is the proof that it has failed; even in languages that were designed for it, people prefer not to follow that paradigm.