3 ms·
Making internals transparent is a very bad thing when it encourages users to write code that relies on implementation details. On the other hand, a certain amo
by jedbrown 17y ago
Making internals transparent is a very bad thing when it encourages users to write code that relies on implementation details. On the other hand, a certain amount of transparency is critical so that users can easily develop a mental performance model, and so that it is clear how they can extend the abstraction (e.g. by writing plugins) when necessary. One of the most difficult parts of library design is to have enough of the good transparency without ending up with a brittle system or a system that users have to wrap in order to break awkward dependencies.