Hi Jakob,

On Tue, 31 Mar 2020 at 02:58, Jakob Givoni <ja...@givoni.dk> wrote:

> - Will COPA pollute the symbol/syntax space? Very little
> - Does COPA have any implications for future language evolution? None
> that have been shown so far
>

COPA is by its nature a brand new syntax, and that does have implications
for the language; that syntax has to be supported by whatever parser we
might adopt, and in conjunction with any future syntax we add.

Even if it doesn't cause ambiguity to the parser, there are only so many
special syntaxes that users of the language will want to learn. As an
extreme example, imagine if we had named parameters using braces and equal
signs, object initialisers, and COPA:

$foo = new Bar({someParam = $someValue}) { someProperty = $initialValue }
-> [ someProperty = $newValue ];

I hope you agree that this combination would be horribly confusing, with
each part looking similar but having different semantics. It follows that
whichever of those syntaxes we accept first makes the others less likely,
and that is a real cost.

It is true that we sometimes risk making the perfect the enemy of the good,
but there is also a risk in adopting something hastily and then finding it
hard to improve later without breaking things.

Regards,
-- 
Rowan Tommins
[IMSoP]

Reply via email to