Re: [Erlang Forums] [Erlang/OTP Proposals/Proposals: RFC] Re-visiting EEP-0055

Austin Ziegler <[email protected]> Mon, 25 Apr 2022 13:07:21 -0400
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CAJ4ekQtYSnjLecE-Foxgi1Wiad27nH+v26exm2_d6_MQPn63Cg@mail.gmail.com>
--000000000000f4411105dd7d9c3f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

No, Stansilav, I=E2=80=99m an engineer. I=E2=80=99ve shipped software in ~3=
5 different
languages, which means that I aim to get ship done.

If the only thing you can take away from my messages here is that I=E2=80=
=99m a
"fanboy", then it is not my judgement in question.

I will reiterate that this EEP was filed by someone who primarily writes in
Erlang and wishes to see it in Erlang because they believe it would be
beneficial in one of several different ways.

The main objections that I have seen over the last two years on this have
boiled down to:

- It makes Erlang look like Elixir
- It doesn=E2=80=99t add enough value
- It=E2=80=99s a new sigil, and new sigils are by definition bad

The first position, which is essentially what I have seen from you and
several others, can be disregarded as emotional hyperbole. The second and
third positions are worth discussing, but the level of emotion in the
thread have resulted in little productive discussion on them.

The first and third positions have ultimately precluded substantial
discussion on the second and have discouraged possible explorations to see
if the second position is, in fact, true. As I understand it, the Erlang
compiler has changed pretty substantially in OTP23, OTP24, and OTP25
(particularly with the introduction of the JIT in OTP24), which means that
the introduction of a new sigil *might* permit the compiler to emit better
(I=E2=80=99m being purposely vague here) code.

The OTP implementation team thinks that it=E2=80=99s interesting and while =
they may
not pick it up, they might. If they do, I hope that they look at Lo=C3=AFc=
=E2=80=99s
suggestion, because I *am* of the opinion that adding a sigil should be a
rare event, but adding a sigil that allows for greater future extensibility
just *might* be worth it, even at the cost of a little bit of verbosity.

In the end, you=E2=80=99re probably not going to listen and dismiss what I=
=E2=80=99ve said
as fanboyism, but that doesn=E2=80=99t actually affect me.

-a

On Mon, Apr 25, 2022 at 12:43 PM Stanislav Ledenev <[email protected]>
wrote:

> There were multiple arguments from a bunch of people.
> The principle of the main one is "Render unto Caesar the things that are
> Caesar's, and unto God the things that are God's".
>  If you like Elixir no one objects on this. Just leave Erlang alone.
>
> But you just could not or don't want to listen.
> Perhaps because you are a fanboy not an engineer if you can't see such
> simple arguments.
> And It's pointless to argue to argue with fanboys.
>
> =D0=BF=D0=BD, 25 =D0=B0=D0=BF=D1=80. 2022 =D0=B3. =D0=B2 18:14, Austin Zi=
egler <[email protected]>:
>
>> On Mon, Apr 25, 2022 at 10:58 AM Stanislav Ledenev <[email protected]>
>> wrote:
>>
>>> One question - why? Just because we can?
>>> Erlang is doomed, Sorry Joe, we f**d things up.
>>>
>>
>> I really can=E2=80=99t help but laugh at over the top reactions like thi=
s and
>> those who can=E2=80=99t help but bash Elixir because they don=E2=80=99t =
like the syntax.
>>
>> What if this syntax (or some other syntax) helps the compiler generate
>> better (safer, faster, *whatever*) code? How would anyone know unless it
>> gets tried? Why would anyone want to try it when they know that a certai=
n
>> vocal subset of the community are going to be pitching embarrassing fits
>> over it?
>>
>> If this is introduced in OTP 26, then stop upgrading. Seriously. Stay on
>> OTP 25 or before. But seriously, stop acting like children about this an=
d
>> saying that things are fucked up (because they=E2=80=99re not; you just =
don=E2=80=99t like
>> this because you don=E2=80=99t like it). The only *real* objection that =
I=E2=80=99ve
>> seen that makes sense to me is from Lo=C3=AFc, which is that it might be=
 better
>> to enable *annotations*, even if the only annotation initially available
>> is for pinning. (My personal feeling on the annotation concept is that
>> `^pin Variable` doesn=E2=80=99t feel right to me, but maybe `^pin:Variab=
le` or
>> `^pin{Variable}` or `^{pin}Variable` or something else, although more
>> sigil-y, would be clearer.
>>
>> I mostly use Elixir, but often read Erlang codebases. On the Elixir core
>> mailing list, there are frequent redirects to approach something as a
>> possible PR to Erlang/OTP because it=E2=80=99s something that should ben=
efit all
>> BEAM languages.
>>
>> Telemetry started as an Elixir library, but was quickly changed to a pur=
e
>> Erlang approach because it makes more sense to be something that all BEA=
M
>> languages can use.
>>
>> Elixir has =E2=80=94 and I suspect both LFE and Gleam both have =E2=80=
=94 *enhanced *the
>> BEAM through wider exposure, code contributions, and other contributions=
.
>> If you can=E2=80=99t argue a feature request like in this EEP on its mer=
its (or
>> lack thereof) without trying to bash Elixir, then maybe you don=E2=80=99=
t actually
>> have an argument, but an emotional outburst, and should just *discard* y=
our
>> rant after writing it.
>>
>> -a
>> --
>> Austin Ziegler =E2=80=A2 [email protected] =E2=80=A2 austin@halostatu=
e.ca
>> http://www.halostatue.ca/ =E2=80=A2 http://twitter.com/halostatue
>>
>

--=20
Austin Ziegler =E2=80=A2 [email protected] =E2=80=A2 [email protected]=
a
http://www.halostatue.ca/ =E2=80=A2 http://twitter.com/halostatue

--000000000000f4411105dd7d9c3f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">No, Stansilav, I=E2=80=99m an engineer. I=E2=80=99ve shipp=
ed software in ~35 different languages, which means that I aim to get ship =
done.<div><br></div><div>If the only thing you can take away from my messag=
es here is that I=E2=80=99m a &quot;fanboy&quot;, then it is not my judgeme=
nt in question.</div><div><br></div><div>I will reiterate that this EEP was=
 filed by someone who primarily writes in Erlang and wishes to see it in Er=
lang because they believe it would be beneficial in one of several differen=
t ways.</div><div><br></div><div>The main objections that I have seen over =
the last two years on this have boiled down to:</div><div><br></div><div>- =
It makes Erlang look like Elixir</div><div>- It doesn=E2=80=99t add enough =
value</div><div>- It=E2=80=99s a new sigil, and new sigils are by definitio=
n bad</div><div><br></div><div>The first position, which is essentially wha=
t I have seen from you and several others, can be disregarded as emotional =
hyperbole. The second and third positions are worth discussing, but the lev=
el of emotion in the thread have resulted in little productive discussion o=
n them.</div><div><br></div><div>The first and third positions have ultimat=
ely precluded substantial discussion on the second and have discouraged pos=
sible explorations to see if the second position is, in fact, true. As I un=
derstand it, the Erlang compiler has changed pretty substantially in OTP23,=
 OTP24, and OTP25 (particularly with the introduction of the JIT in OTP24),=
 which means that the introduction of a new sigil <i>might</i>=C2=A0permit =
the compiler to emit better (I=E2=80=99m being purposely vague here) code.<=
/div><div><br></div><div>The OTP implementation team thinks that it=E2=80=
=99s interesting and while they may not pick it up, they might. If they do,=
 I hope that they look at Lo=C3=AFc=E2=80=99s suggestion, because I<span cl=
ass=3D"gmail-Apple-converted-space">=C2=A0</span><i>am</i>=C2=A0of the opin=
ion that adding a sigil should be a rare event, but adding a sigil that all=
ows for greater future extensibility just <i>might</i>=C2=A0be worth it, ev=
en at the cost of a little bit of verbosity.<br></div><div><br></div><div>I=
n the end, you=E2=80=99re probably not going to listen and dismiss what I=
=E2=80=99ve said as fanboyism, but that doesn=E2=80=99t actually affect me.=
</div><div><br></div><div>-a</div></div><br><div class=3D"gmail_quote"><div=
 dir=3D"ltr" class=3D"gmail_attr">On Mon, Apr 25, 2022 at 12:43 PM Stanisla=
v Ledenev &lt;<a href=3D"mailto:[email protected]">[email protected]</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-co=
lor:rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">There were multiple=
 arguments from a bunch of people. <br>The principle of the main one is &qu=
ot;Render unto Caesar the things that are Caesar&#39;s, and unto God the th=
ings that are God&#39;s&quot;.<div>=C2=A0If you like Elixir no one objects =
on this. Just leave Erlang alone.<br><br>But you just could not or don&#39;=
t want to listen.=C2=A0</div><div>Perhaps because you are a fanboy not an e=
ngineer if you can&#39;t see such simple arguments.=C2=A0</div><div>And It&=
#39;s pointless to argue=C2=A0to argue with fanboys.<br></div></div><br><di=
v class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">=D0=BF=D0=BD,=
 25 =D0=B0=D0=BF=D1=80. 2022 =D0=B3. =D0=B2 18:14, Austin Ziegler &lt;<a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">[email protected]</=
a>&gt;:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr">On Mon,=
 Apr 25, 2022 at 10:58 AM Stanislav Ledenev &lt;<a href=3D"mailto:s.ledenev=
@gmail.com" target=3D"_blank">[email protected]</a>&gt; wrote:<br></div><=
div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-lef=
t-color:rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>One questi=
on - why? Just because we can?</div><div>Erlang is doomed, Sorry Joe, we f*=
*d things up.</div></div></blockquote><div>=C2=A0</div></div>I really can=
=E2=80=99t help but laugh at over the top reactions like this and those who=
 can=E2=80=99t help but bash Elixir because=C2=A0they don=E2=80=99t like th=
e syntax.<div><br></div><div>What if this syntax (or some other syntax) hel=
ps the compiler generate better (safer, faster, <i>whatever</i>) code? How =
would anyone know unless it gets tried? Why would anyone want to try it whe=
n they know that a certain vocal subset of the community are going to be pi=
tching embarrassing fits over it?</div><div><br></div><div>If this is intro=
duced in OTP 26, then stop upgrading. Seriously. Stay on OTP 25 or before. =
But seriously, stop acting like children about this and saying that things =
are fucked up (because they=E2=80=99re not; you just don=E2=80=99t like thi=
s because you don=E2=80=99t like it). The only <i>real</i>=C2=A0objection t=
hat I=E2=80=99ve seen that makes sense to me is from Lo=C3=AFc, which is th=
at it might be better to enable <i>annotations</i>, even if the only annota=
tion initially available is for pinning. (My personal feeling on the annota=
tion concept is that `^pin Variable` doesn=E2=80=99t feel right to me, but =
maybe `^pin:Variable` or `^pin{Variable}` or `^{pin}Variable` or something =
else, although more sigil-y, would be clearer.</div><div><br></div><div>I m=
ostly use Elixir, but often read Erlang codebases. On the Elixir core maili=
ng list, there are frequent redirects to approach something as a possible P=
R to Erlang/OTP because it=E2=80=99s something that should benefit all BEAM=
 languages.</div><div><br></div><div>Telemetry started as an Elixir library=
, but was quickly changed to a pure Erlang approach because it makes more s=
ense to be something that all BEAM languages can use.</div><div><br></div><=
div>Elixir has =E2=80=94 and I suspect both LFE and Gleam both have =E2=80=
=94 <i>enhanced </i>the BEAM through wider exposure, code contributions, an=
d other contributions. If you can=E2=80=99t argue a feature request like in=
 this EEP on its merits (or lack thereof) without trying to bash Elixir, th=
en maybe you don=E2=80=99t actually have an argument, but an emotional outb=
urst, and should just <i>discard</i>=C2=A0your rant after writing it.<br><d=
iv><div><div><br></div><div>-a<br>-- <br><div dir=3D"ltr">Austin Ziegler =
=E2=80=A2 <a href=3D"mailto:[email protected]" target=3D"_blank">halosta=
[email protected]</a> =E2=80=A2 <a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a><br><a href=3D"http://www.halostatue.ca=
/" target=3D"_blank">http://www.halostatue.ca/</a> =E2=80=A2 <a href=3D"htt=
p://twitter.com/halostatue" target=3D"_blank">http://twitter.com/halostatue=
</a></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature">Austin Ziegler =E2=80=A2 <a href=3D"mailto:halos=
[email protected]" target=3D"_blank">[email protected]</a> =E2=80=A2 <a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">[email protected]</=
a><br><a href=3D"http://www.halostatue.ca/" target=3D"_blank">http://www.ha=
lostatue.ca/</a> =E2=80=A2 <a href=3D"http://twitter.com/halostatue" target=
=3D"_blank">http://twitter.com/halostatue</a></div>

--000000000000f4411105dd7d9c3f--