Igor Stasenko schrieb:
We need only minor changes to parser to add this syntax sugar, and no changes in complier because it don't breaks old syntax or message passing semantics.
That's not exactly true. #| is a perfectly valid binary selector, and is implemented in several classes (Boolean or and related operations). You might get away with ! which is a legal binary selector in current Smalltalk but is not used anywhere in a standard Squeak image.
I'm still not convinced that object someMessage ! message1: arg1 ! message2 is that much better readable than ((object someMessage) message1: arg1) message2 especially since more than one or two levels of parentheses are often a sign of code smell.
That does not mean that I'm absolutely against language evolution - but a new feature should carry its own weight. The {} collection constructor is Squeak is pretty usable, and I thought that the multi-assignment was also pretty neat even though it was rarely used and eventually got kicked out. Another thing is that code interchange between different Smalltalk implementations is something that should not be jeopardized lightly. When packages use implementation idiosyncrasies, they are less likely to be ported.
Cheers, Hans-Martin