[Guido] > ... > If you're saying that we should give users ample time for the > transition, I'm with you. Then we're with each other, for suitably large values of "ample" <wink>. > If you're saying that you think the string module is too prominent to > ever start deprecating its use, I'm afraid we have a problem. We may. Time will tell. It needs a conversion tool, else I think it's unsellable. > ... > I'd also like to note that using the string module's wrappers incurs > the overhead of a Python function call -- using string methods is > faster. > > Finally, I like the look of fields[i].strip().lower() much better than > that of string.lower(string.strip(fields[i])) -- an actual example > from mimetools.py. I happen to like string methods better myself; I don't think that's at issue (except that loads of people apparently don't like "join" as a string method -- idiots <wink>). The issue to me is purely breaking old code someday -- "string" is in very heavy use, and unlike as when deprecating regex in favor of re (either pre or especially sre), string methods aren't orders of magnitude better than the old way; and also unlike regex-vs-re it's not the case that the string module has become unmaintainable (to the contrary, string.py has become trivial). IOW, this one would be unprecedented fiddling. > ... > Note that I believe Java makes a useful distinction that PEP 5 misses: > it defines both deprecated features and obsolete features. > *Deprecated* features are simply features for which a better > alternative exists. *Obsolete* features are features that are only > being kept around for backwards compatibility. Deprecated features > may also be (and usually are) *obsolescent*, meaning they will become > obsolete in the future. I agree it would be useful to define these terms, although those particular definitions appear to be missing the most important point from the user's POV (not a one says "going away someday"). A Google search on "java obsolete obsolescent deprecated" doesn't turn up anything useful, so I doubt the usages you have in mind come from Java (it has "deprecated", but doesn't appear to have any well-defined meaning for the others). In keeping with the religious nature of the battle-- and religion offers precise terms for degrees of damnation! --I suggest: struggling -- a supported feature; the initial state of all features; may transition to Anathematized anathematized -- this feature is now cursed, but is supported; may transition to Condemned or Struggling; intimacy with Anathematized features is perilous condemned -- a feature scheduled for crucifixion; may transition to Crucified, Anathematized (this transition is called "a pardon"), or Struggling (this transition is called "a miracle"); intimacy with Condemned features is suicidal crucified -- a feature that is no longer supported; may transition to Resurrected resurrected -- a once-Crucified feature that is again supported; may transition to Condemned, Anathematized or Struggling; although since Resurrection is a state of grace, there may be no point in human time at which a feature is identifiably Resurrected (i.e., it may *appear*, to the unenlightened, that a feature moved directly from Crucified to Anathematized or Struggling or Condemned -- although saying so out loud is heresy).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4