<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr">Hello,</div><div dir="ltr"><br></div><div dir="ltr">Just to give a flavour from a relative newcomer compared to others responding here, I think the simplicity of Erlang-the-language is a huge benefit, and I’d love to avoid what I can’t help seeing as ambiguities, even when intended to clarify.</div><div dir="ltr"><br></div><div dir="ltr">I’ve only been writing Erlang in anger for maybe 4 years spread over the last 10, and haven’t written large libraries myself, but I’ve never had an instance in my code where the kind of rebinding issue mentioned has been more than a temporary clash, usually easily solved by attending to compiler warnings, and I’ve never had an actual bug as a result of it.</div><div dir="ltr"><br></div><div dir="ltr">On top of that I personally would really like on principle to steer clear of new signs and symbols annotating variables. The lack (or restriction to its absolute minimum) of all that is one of the big benefits of Erlang, especially in combination with the immutability - like Craig says it just means you know what you’ve got and can trace it/“reason about it” more confidently, and in my experience at least the question of clashes/rebinding have been edge cases, easily trapped.</div><div dir="ltr"><br></div><div dir="ltr">I don’t know enough about Elixir to have an opinion on its use there, but to me personally, it just doesn’t seem necessary in Erlang, and for my purposes would serve mostly to add visual noise and complexity that don’t seem at home there.</div><div dir="ltr"><br></div><div dir="ltr">Of course, it’s just my holiday-time 2 cents, and I realise I’d be free not to use it if I chose not to - as someone who mostly writes erlang alone this would often be fine, but it would gradually start to crop up in libraries and deps.</div><div dir="ltr"><br></div><div dir="ltr">Happy holidays to all,</div><div dir="ltr">Igor</div><div dir="ltr"><br></div><div dir="ltr"><br><blockquote type="cite">On 25 Dec 2020, at 09:46, Eric Pailleau <eric.pailleau@wanadoo.fr> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><p dir="ltr" style="margin-top:0; margin-bottom:0;">💯 </p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0;">Envoyé depuis mon mobile </p><br><br>---- zxq9 a écrit ----<br><br>Looking at this from the perspective of having to read other people's <br><br>code quite a lot, I am pretty unexcited about any changes that would <br><br>introduce glyphy anotations to variable names or move even slightly in <br><br>the direction of allowing rebinding.<br><br><br><br>Few long-time Erlangers would ever feel a desire to use a feature like <br><br>this, but people who have no idea how the paradigm works are very likely <br><br>to overuse it to a fault, making code a nightmare to sort through. This <br><br>particular change with the ^ isn't so bad (but why not just use a new <br><br>name? Y becomes Y1 or NewY or NextY instead of ^Y? I usually prefer <br><br>something that is at least *descriptive* anyway like PopulatedY or <br><br>FilteredY or whatever. The keystrokes are free...) but again, moving in <br><br>the direction of rebinding is really pushing things in a crazy direction.<br><br><br><br>I find Erlang's approach to strict single assignment one of its greatest <br><br>benefits because I can sort through convoluted code written by newcomers <br><br>*much* faster than I can in most other languages specifically because I <br><br>can know for certain where a value came from at a glance.<br><br><br><br>-Craig<br><br><br><br>On 2020/12/25 7:36, Tristan Sloughter wrote:<br><br>> I'd much prefer if `^` was used to allow rebinding. But I know that <br><br>> would be too confusing since Elixir went with ^ to mean regular binding. <br><br>> So maybe `!`?<br><br>> <br><br>> But this change just lets you add the `^` while not changing how <br><br>> anything works? That sounds like it'll cause a lot of confusion when <br><br>> reading since sometimes a bind is using `^` and sometimes they aren't <br><br>> but it is doing the same thing...<br><br></div></blockquote></body></html>