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

Austin Ziegler <[email protected]> Mon, 25 Apr 2022 11:14:22 -0400
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CAJ4ekQv0Go=wgLLWbGSLDpuWvY=d9hDR3keH7ASAiuMKAboLuw@mail.gmail.com>
--000000000000e3316405dd7c0831
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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 this a=
nd 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 certain
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 and
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:Variable` 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 benefi=
t all
BEAM languages.

Telemetry started as an Elixir library, but was quickly changed to a pure
Erlang approach because it makes more sense to be something that all BEAM
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 merits=
 (or
lack thereof) without trying to bash Elixir, then maybe you don=E2=80=99t a=
ctually
have an argument, but an emotional outburst, and should just *discard* your
rant after writing it.

-a
--=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

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

<div dir=3D"ltr"><div dir=3D"ltr">On Mon, Apr 25, 2022 at 10:58 AM Stanisla=
v Ledenev &lt;<a href=3D"mailto:[email protected]">[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-left-color:rgb(204,204,204);padding-left:1ex"><div dir=
=3D"ltr"><div>One question - 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 l=
ike this and those who can=E2=80=99t help but bash Elixir because=C2=A0they=
 don=E2=80=99t like the syntax.<div><br></div><div>What if this syntax (or =
some other syntax) helps the compiler generate better (safer, faster, <i>wh=
atever</i>) code? How would anyone know unless it gets tried? Why would any=
one want to try it when they know that a certain vocal subset of the commun=
ity are going to be pitching embarrassing fits over it?</div><div><br></div=
><div>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 a=
nd 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 <i>rea=
l</i>=C2=A0objection 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 <i>annotations</i>, e=
ven 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:Variable` or `^pin{Variable}` or `^{pin}V=
ariable` or something else, although more sigil-y, would be clearer.</div><=
div><br></div><div>I mostly use Elixir, but often read Erlang codebases. On=
 the Elixir core mailing list, there are frequent redirects to approach som=
ething as a possible PR to Erlang/OTP because it=E2=80=99s something that s=
hould benefit all BEAM languages.</div><div><br></div><div>Telemetry starte=
d as an Elixir library, but was quickly changed to a pure Erlang approach b=
ecause it makes more sense 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 G=
leam both have =E2=80=94 <i>enhanced </i>the BEAM through wider exposure, c=
ode contributions, and other contributions. If you can=E2=80=99t argue a fe=
ature request like in this EEP on its merits (or lack thereof) without tryi=
ng to bash Elixir, then maybe you don=E2=80=99t actually have an argument, =
but an emotional outburst, and should just <i>discard</i>=C2=A0your rant af=
ter writing it.<br><div><div><div><br></div><div>-a<br>-- <br><div dir=3D"l=
tr" class=3D"gmail_signature">Austin Ziegler =E2=80=A2 <a href=3D"mailto:ha=
[email protected]" target=3D"_blank">[email protected]</a> =E2=80=A2 <a=
 href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
a</a><br><a href=3D"http://www.halostatue.ca/" target=3D"_blank">http://www=
.halostatue.ca/</a> =E2=80=A2 <a href=3D"http://twitter.com/halostatue" tar=
get=3D"_blank">http://twitter.com/halostatue</a></div></div></div></div></d=
iv></div>

--000000000000e3316405dd7c0831--