On Sat, Aug 9, 2014 at 1:08 AM, Steven D'Aprano <steve@pearwood.info> wrote:
We wouldn't be having
these interminable arguments about using sum() to concatenate strings
(and lists, and tuples) if the & operator was used for concatenation and
+ was only used for numeric addition.

But we would probably have a similar discussion about all(). :-)

Use of + is consistent with the use of * for repetition.  What would you use use for repetition if you use & instead?

Compare, for example

s + ' ' * (n - len(s))

and

s & ' ' * (n - len(s))

Which one is clearer?

It is sum() that need to be fixed, not +.  Not having sum([a, b]) equivalent to a + b for any a, b pair is hard to justify.