Re: New EEP draft: Pinning operator ^ in patterns

Svilen Ivanov <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Organization Applicata Ltd.
Message-ID <[email protected]>
When I tried this on one of our projects with about 34000 lines of
Erlang code in 140 modules, there was 180 +warn_unpinned_vars warnings.
Vast majority - 160 of them in tests where matching was used as an
assertion, and 20 in production code where matching of already bind
variables was also used correctly.
I suspect that the results will be similar for the rest of our
projects.
So for me proposed annotation will not be an improvement, I certainly
can live with it but prefer not to.

Best regards
/ Svilen

On Fri, 2021-01-22 at 11:00 +0000, Karl Nilsson wrote:
> So I took the pinning branch for a spin and ran it against the Ra
> library (https://github.com/rabbitmq/ra/pull/209) I have worked a lot
> on the last few years. I found 2 bugs and at least a couple of places
> where I am not really sure about the intent of the match and where it
> could be done better. At some point I will run it against the
> RabbitMQ code. Who knows what I will find there! 
> So thank you Richard, I take my hat (pun intended) off to you for
> this feature and for standing up for it against the onslaught of
> negativity around it. For me this feature, ad-hoc or not, addresses a
> real problem and will result in fewer bugs which makes me prepared to
> deal with any syntactic overhead it may carry.
> 
> I'd like to also address the often mentioned idea that functions
> should be "small" (whatever constitutes small) as if that is some
> kind panacea for writing good code. It is not. Quite the opposite.
> Arbitrarily small, local, single-use functions can make code almost
> impossible to read and reason about. This is especially the case in a
> dynamic language where you can't even rely on editor type hints to
> work out what the function accepts as input and returns as output and
> then possibly derive roughly what the function does. Instead you have
> an indirection where you have to skip to some other location in the
> file whilst trying to maintain the context of where the function was
> called. This indirection makes reading/context building very hard and
> IMO the most important feature of successful code (code that remains
> in use) is that it can be read and understood with minimal bother.
> 
> Just my 2 öre though...
> 
> On Fri, 22 Jan 2021 at 10:32, Nicolas Martyanoff <[email protected]>
> wrote:
> > On 2021-01-22 11:02, Raimo Niskanen wrote:
> > > I am trying again, in hopefully a more civilized manner...
> > > 
> > > By constantly repeating that your opinion would not matter and
> > that someone
> > > has a plan to force this feature through you indirectly say:
> > > *) That the decision process for an EEP and the Technical Board
> > at Erlang/OTP
> > >     at Ericsson can not be trusted to make a good decision for
> > > the
> > Erlang
> > >     language and the community.
> > > *) That the community does not want this feature.
> > > 
> > > This is attacking the decision process itself instead of
> > contributing to
> > > the decision.  To me this feels like a way to force your point of
> > view
> > > through in this decision.
> > 
> > Try to put yourself in the shoes of those who reject the proposal:
> > 
> > - From the beginning, we are being told repeatedly that our answers
> > do not
> >   address the right part of the proposal, or are not valid
> > arguments, or are
> >   not the right way to argue. The last evolution of the debate is a
> > comparison
> >   to Trump...
> > 
> > - As I already asked, for all these messages we still have not
> > received any
> >   information about who has real authority on this type of change
> > to the
> >   language. You are talking about a "decision process", but for the
> > time being
> >   I see Richard and you trying really hard to make everyone believe
> > there is
> >   some kind of fair debate.
> > 
> > - The original proposal comes from someone who is not part of the
> > Erlang team.
> >   You, as part of the Erlang team, immediately sided with him and
> > started
> >   engaging with everyone in favor of the proposition. There has
> > been talks
> >   about going forward with making the operator mandatory, changing
> > scoping
> >   rules, still more changes... So yes, there is an agenda.
> > 
> > - As for "the community not wanting this feature", there are indeed
> > lots of
> >   developers here who believe that this kind of change is a mistake
> > (I'm
> >   obviously not talking about an optional warning, since it would
> > not modify
> >   the language), I'm saying it directly because it is true.
> > 
> > At the end of the day, this is about a proposition which, if
> > adopted, could
> > change a core aspect of the language in a non-backward compatible
> > way and
> > which would force all developers all around the world to eventually
> > change all
> > their code. And this is being discussed with you as single member
> > of the
> > Technical Board.
> > 
> > If you are the only one in charge of taking the final decision,
> > then it is
> > clear there is no real debate since you are obviously very much in
> > favour. If
> > you are not, then there is no real point in arguing for weeks
> > without an
> > official answer from the Erlang team.
> > 
> > -- 
> > Nicolas Martyanoff
> > http://snowsyn.net
> > [email protected]
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.