I know Objective C uses ‘interleaved arguments’, and it is by design.
But I want to know why you think it makes life easier to merge the name of the first argument into the message name. See below:
Correct: [myRectangle setOriginX: 30.0 y: 50.0]
instead of
Wrong: [myRectangle setOrigin x: 30.0 y: 50.0]
[receiver message argument1:value1 argument2:value2...] <<< isn’t this one more clear and intuitive to you guys?
It’s easier to implement because then selectors really are just the method’s “name” as a string and the arguments can just be passed to the method in the order they were given. This allows Objective-C to be written easily as essentially a small preprocessor + set of runtime functions on top of C, which it originally was. To do it otherwise would be more complex.
It’s also simpler because Objective-C’s messaging syntax was derived from Smalltalk, which used the exact same way of doing selectors (though it was not a preprocessor to C), so this is zero change from the Smalltalk syntax.
You seem to be asking why Objective-C didn’t take its design cues from languages that came into vogue many decades later. The answer would be: Because they weren’t around yet. (I’m not sure if keyword arguments were common in Lisp by that time, but they weren’t in most programming languages.)