[Python-Dev] PEP 246: lossless and stateless
Clark C. Evans
cce at clarkevans.com
Fri Jan 14 06:00:52 CET 2005
On Thu, Jan 13, 2005 at 11:50:37PM -0500, Phillip J. Eby wrote:
| 'lossless' isn't really a good term for non-noisy. The key is that a
| "noisy" adapter is one that alters the precision of the information it
| provides, by either claiming greater precision than is actually present,
| or by losing precision that was present in the meaning of the data.
Noisy doesn't cut it -- my PC fan is noisy. In computer science,
noisy usually refers to a flag on an object that tells it to spew
debug output...
| 'statelessness', on the other hand, is primarily useful as a guide to
| whether what you're building is really an "as-a" adapter. If an adapter
| has per-adapter state, it's an extremely good indication that it's
| actually a *decorator* (in GoF pattern terminology).
GoF is very nice, but I'm using a much broader definition of 'adapt':
To make suitable to or fit for a specific use or situation
By this definition, decorators, facade are both kinds of adapters.
| Anyway, for type declaration, IMO statelessness is the key criterion.
| Type declaration "wants" to have true adapters (which can maintain object
| identity), not decorators (which are distinct objects from the things
| they add functionality to).
Stateful adapters are very useful, and the value of PEP 246 is
significantly reduced without alowing them.
| Unfortunately, in practice this will just lead to people ignoring the
| arguments, because 1) it's easier and 2) it will make their code work
| with type declarations! So, it won't actually produce any useful effect.
Hmm.
Best,
Clark
More information about the Python-Dev
mailing list