Python Iceberg

21 points by aleyan


dutc

I think the gimmick makes this worse than if these were presented more traditionally. I think it also encouraged the inclusion of some extremely dubious entries, many of which do not demonstrate a particularly fluent understanding of the language semantics.

Is the implication that these are design mistakes, hidden but necessary knowledge, unavoidable complexities? It's not particularly clear how the entries were selected. (For example, it's surprising that PEP-578 audit hooks are represented more than once—they're a fairly niche feature, and I believe I may have worked on one of the only large-scale attempts to deploy these in a codebase—in fact, the one that motivated the PEP in the first place.)

Some of the entries (e.g., “Assertions disappear with -O”) are documented, expected, desired behaviour, so I suspect that these are intended to represent knowledge one must have to be effective, but the presentation does not encourage us to contextualise that knowledge into any system of meaning (e.g., that assertions are a programmatic documentation mechanism) or connect that knowledge to anything (e.g., that the compiler can perform dead-code elimination on statically-knowable unreachable branches like if __debug__; thus, assert can be used together with if __debug__ to support in-depth programmatic documentation approaches.)

The order in which these are presented should also be revisited. Why are obvious details of the subprocess module (e.g., the behaviour of shell=True) so deep? I'm led to believe that these items were selected without much (human?) thought…