While discussing with other developers about pros and cons of Python, one of the most common criticism I heard about the language syntax is the join method.

Indeed in python to join elements of an iterable you will do something like <separator>.join(<iterable>) while in other language it is more often something like <iterable>.join(<separator>).

The reason why Python syntax have been decided this way is that when joining iterable, what you want to achieve is to build a new string. Thus you don’t mind about the original type of the iterable.

Moreover the separator you define must be a string, so you start from a string to join elements into a string. This allow to define once (and only once) the join method instead of defining it in each iterable type.