On Sun, Aug 25, 2024, at 18:21, Rowan Tommins [IMSoP] wrote:
> On 25/08/2024 16:54, Rob Landers wrote:
> > Hi Rowan, you went through a lot of trouble to write this out, and the
> > reasoning makes sense to me. However, all the nonsensical things you
> > say shouldn’t be allowed are already perfectly allowed today, you just
> > have to type a bunch of boilerplate reflection code. There is no new
> > behavior here, just new syntax.
>
>
> Firstly, your response to John was essentially "please give more
> details" [https://externals.io/message/125183#125214], and your response
> to me is "thanks for the details, but I'm not going to engage with
> them". That's a bit frustrating.
Oh, my apologies! That wasn’t my intention! With John and yourself, I do agree with you. I’m
just trying to understand the logic in limiting it. As in, “I intuitively feel the same way but I
don’t know why but maybe you do.” Intuition sucks sometimes.
>
> Secondly, I don't think "it's possible with half a dozen lines of
> reflection, so it's fine for it to be a first-class feature of the
> language syntax" is a strong argument. The Reflection API is a bit like
> the Advanced Settings panel in a piece of software, it comes with a big
> "Proceed with Caution" warning. You only move something from that
> Advanced Settings panel to the main UI when it's going to be commonly
> used, and generally safe to use. I don't think allowing arbitrary
> operations on a value that's declared as the default of some other
> function passes that test.
>
> Regards,
>
> --
> Rowan Tommins
> [IMSoP]
>
That makes sense, but is it uncommon because it is hard and slow, or because it is genuinely not a
common need?
— Rob