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.
Read on through a shared source
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.What does a repeated microbenchmark leave out? →Compare the costs visible in an isolated hash-table operation with the effect of workload and cache behavior. Microbenchmarks help answer a narrower question than end-to-end measurements.
Compare the passages
people actually depend in very bizarre ways on some of the internalsthey will rely upon
it, given enough users.not be able to take it out once you put it into an API.