A peek at the roadmap for pattern matching and more
forax at univ-mlv.fr
forax at univ-mlv.fr
Thu Aug 13 23:53:57 UTC 2020
----- Mail original -----
> De: "John Rose" <john.r.rose at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "Guy Steele" <guy.steele at oracle.com>, "Brian Goetz" <brian.goetz at oracle.com>, "amber-spec-experts"
> <amber-spec-experts at openjdk.java.net>
> Envoyé: Vendredi 14 Août 2020 01:24:13
> Objet: Re: A peek at the roadmap for pattern matching and more
> On Aug 13, 2020, at 4:11 PM, forax at univ-mlv.fr wrote:
>>
>> For me it's like having a complex lock on the front door and wanting to have the
>> same mechanism on the opposite side of the front door (to go out) because you
>> already know how to unlock the front door.
>
> Ow! Tough crowd.
>
> As you may have noted from my previous note, I’m
> also concerned with managing, not single or double
> or triple doors, but cases where there are too many
> doors to go through all at once. This is where languages
> add optional and named arguments. And once having
> done so, I do admit that we could use such a new thing
> profitably to manage wide multi-component data flows
> both in and out of methods, if the symmetry argument
> holds. And we could leave constructor blocks where
> they always have been, in a corner.
>
> My proposals double down on the *asymmetric*
> way Java delivers multiple values out of blocks,
> compared to how they are sent into blocks by
> position-argument-to-parameter binding.
>
> Brian’s point about symmetry is that it can be
> a siren song: You put tuples in one place for
> symmetry (with argument lists) and suddenly
> you risk having a new kind of value, neither
> primitive nor class nor array. (Arrays are the
> old tuple; you really want to do that again?)
> Tuples incur technical debt which makes
> the symmetry proposal expensive, which is
> why we are looking at other options as well.
I'm a little disappointed by the current discussions, when Brian announced that a record will be immutable, I was flabbergasted how brilliant the idea was because not only you can use a record and do directly pattern destructuring on it but also you can use it as an anonymous carrier of values to transfer the values from a plain old class to a representation you can do destructuring on it.
It seems that that plan has been lost at some point.
An anonymous record is not a tuple, it's a plain Java class from the VM POV, so not a new kind of value (apart from the fact that it will be an inline most of the time) so i don't think it's a risky move.
>
> — John
Rémi
More information about the amber-spec-experts
mailing list