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