This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pje
Recipients andreypopp, eric.araujo, exarkun, ods, pitrou, pje, r.david.murray, riffm
Date 2011-01-21.15:40:05
SpamBayes Score 7.1165514e-06
Marked as misclassified No
Message-id <1295624406.9.0.0482119953271.issue10935@psf.upfronthosting.co.za>
In-reply-to
Content
Implicit knowledge in your own head about what might or might not be a good idea to program is not the same thing as a specification.  "type(x) is str" is a good specification in this context, while "string subclasses, but only if they're really str" does not.

And the reason why that is, is because the first specification allows server implementers to say, "your type is not str, so you are not conformant; go fix your code."   The second "specification" is just an invitation to (number of server implementations)*(number of string implementations) arguments about what conformance is.

That makes the latter an objectively worse specification than the first, even if EVERYONE would prefer to be able to use their own string type.  Practicality beats purity, and explicit is better than implicit.  These principles are doubly true where interop protocol definitions are concerned.

To put it another way, the greater the social separation between parties, the more explicit and specific a contract between those two parties has to be in order to co-ordinate their actions, because they can't rely on having the same operating assumptions as the other party.  This situation is a terrific example of that principle in action.  ;-)
History
Date User Action Args
2011-01-21 15:40:06pjesetrecipients: + pje, exarkun, ods, pitrou, eric.araujo, r.david.murray, riffm, andreypopp
2011-01-21 15:40:06pjesetmessageid: <1295624406.9.0.0482119953271.issue10935@psf.upfronthosting.co.za>
2011-01-21 15:40:05pjelinkissue10935 messages
2011-01-21 15:40:05pjecreate