How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!YouTube ↗
Further reading 3
Can two versions coexist under the same name? →A module name can force a choice between versions. Identifying content by its hash gives each version a separate address.When does an implementation detail become a promise? →Callers can depend on observable behavior that was never documented. Changing an interpreter or a library then becomes a compatibility decision.When does an implementation detail become a promise? →Interpreter behavior, hash tables and public APIs illustrate how callers come to rely on what they can observe. Observable behavior need not have been formally guaranteed.
Caption notes
CPython slots, optimized paths and extension APIs leak into observable behavior. These dependencies constrain changes to the runtime even as they enable debugging tools.
Original passages · 6
people actually depend in very bizarre ways on some of the internalswe would have to make S modules also have a version identifierwe can report every single local variable that was therescan character by character by character to figure out which one you want to accesshow low level the C API ismakes it hard for us to ever do