[Python-Dev] PEP 215 redux: toward a simplified consensus?
Barry A. Warsaw
Mon, 25 Feb 2002 17:16:18 -0500
>>>>> "SM" == Skip Montanaro <email@example.com> writes:
BAW> There's been no usability testing yet to know whether
BAW> $-strings actually will be easier to use <wink>, but I've got
BAW> plenty of anecdotal evidence that %-strings suck badly for
BAW> useability by non-Python programmers.
SM> I presume your anecdotal evidence comes from Mailman.
SM> If you have a pair of functions that implement the %-to-$-to-%
SM> transformation and can catch the missing 's' problem
SM> automatically (is that the biggest problem non- programmers
The biggest, yes, but not necessarily the only one.
SM> then why not just use this in Mailman and be done with the
That's what I plan on doing for MM2.1, except I won't force it down
people's throats yet. It'll be optional (but it'll be an either-or
option). I won't use it in Python code yet though (too disruptive),
just the thru-the-web template defining text-boxes.
SM> In fact, why not just document Mailman so that "%(var)" is the
SM> correct form and silently add the "missing" 's' in your
SM> transformation step?
SM> That %-strings suck for Mailman administrators does not mean
SM> they necessarily suck for programmers.
True, but who knows? I wouldn't necessarily classify python-dev as a
representative sample of users.
SM> The two populations obviously overlap somewhat, but not
SM> tremendously. I have never had a problem with %-strings,
SM> certainly not with omitting the trailing 's'. Past experience
SM> with printf() doesn't obviously pollute the sample population
SM> too much either, since the %(var)s type of format is not
SM> supported by printf().
BAW> Still, if $-strings are better for non-programmers, maybe
BAW> they're better for programmers too. There's certainly
BAW> evidence that translators get them wrong too.
SM> What do you mean by "translators"?
Someone who is fluent in a natural language other than English, and
translates a catalog of English source strings to a target non-English
natural language. E.g.
"No such list: %(listname)s" -> "Non esiste la lista: %(listname)s"