Motivation – Keli Language
When giving an example on how infix notation reads better:<p><pre><code>    &#x2F;&#x2F; This is obviously not too right
    &quot;,&quot;.splitBy(&quot;1,2,3,4,5&quot;)

    &#x2F;&#x2F; This should be right, because it reads out more naturally
    &quot;1,2,3,4,5&quot;.splitBy(&quot;,&quot;)
</code></pre>
It&#x27;s funny that in Python split works this way but join doesn&#x27;t. This is because in the case of split both arguments are strings, but for join one of the arguments is a Sequence, which is a general protocol rather than a class.<p>The proposed solution by Keli is to be inspired by the Smalltalk-style message syntax:<p><pre><code>    &#x27;Hello world&#x27; replace: &#x27;Hello&#x27; with: &#x27;Bye&#x27;
</code></pre>
I think, in general, requiring named arguments is a good thing. Swift does it, and in codebases with a decent amount of TLC, it looks great.<p>Function calls are one of the weird places were the syntax of the language rarely helps you figure out what is going on, and for the most part is just a sequence of human-written names one after another, and in languages with custom operators it could be even terser.<p>In comparison, if-statements, loops, pattern matching, etc. were (hopefully) designed to be expressive. I think by requiring named arguments, function calls will also be much more readable, relying less on an active human effort to do so.