Earlier quoted context omitted.
I don't think any of us know what: foo(1, 1, create = true) :is supposed to do. Please show a meaningful example so we can see whether the Smalltalk is overly verbose or your alternative is overly ambiguous.
I tried to pick up an example as generic as possible so you could understand my general point instead of focusing on this specific example, and you choose to focus on this specific example. . How about this: createWindowAtCoordinates(10, 10, redraw = true) vs createWindowAtCoordinates(x = 10, y = 10, redraw = true) Regardless of how you feel about this specific example, surely you can agree that it's not always neces…
However (the specifics always matter) if we're assuming that, and we're bothered about verbosity then why say:
createWindowAtCoordinates(10, 10, redraw = true)
:instead of assuming that it will be understand that the window will be created at a point: createWindowAt(10, 10, redraw = true)
:and something more like a Smalltalk method send: Window new openAt: 10@10 redraw: true
:where we've used the x then y convention, and a binary message @, to create a point (without mandatory parameter names).