On Tue, Feb 12, 2013 at 1:44 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
It's idiomatic because strings are immutable (by design, not because of
an optimization detail) and therefore concatenation *has* to imply
building a new string from scratch.

Not necessarily. It is totally possible to implement strings such they are immutable and  concatenation takes O(1): ropes are the canonical example of this.