New EEP draft: Pinning operator ^ in patterns
Sat Jan 23 09:36:29 CET 2021
On 2021/01/23 0:15, Eric Pailleau wrote:
> I agree,
>> do not let Erlang be the new Cobol,
> But please do not let Erlang be the new Java, too.
I absolutely agree with both sides of this sentiment.
I believe this has a lot less to do with the language and a lot more to
do with tooling, though.
For example: The continued and *exclusive* focus on making everything be
a release is damaging to adoption. It is just one more hurdle for
newcomers and makes some things nearly impossible to do. Releases are
very important for certain environments, but not a good fit for general
I've taken the opposite approach as an experiment and instead and
written tooling ("zx" and "zomp") that makes writing Erlang a bit more
familiar to people coming to Erlang from languages that have frameworks
that come with their own templaters and launch tooling. I've had a lot
of success so far teaching new Erlangers the language and getting them
on track just by making creation of a project easier and demystifying
the release stuff by eliminating it. Further, the tooling makes it
trivial for people to write end-user apps that can run cross-platform
immediately, so you can write a GUI game and run it on Windows or Linux
or whatever and everything is fine. Without that type of utility it was
a real pain to write and deploy GUI applications in Erlang to Windows,
and that was a critical gap.
Adding releases later where it is a good fit is a pretty easy step and
tooling in that area has improved a lot in the last few years.
A further stumbling block is the lack of audio and video bindings,
though having GUI bindings is really helpful (could be a bit better
documented, but more tutorials help a lot with this). People want to
play with pixels on the screen: write a game, graph something out, mess
with writing a trivial audio editor, etc. That's where a huge amount of
experimentation comes from and that's where languages with far less
capable runtimes and far more convoluted syntax actually excel because
they have tooling that provides an easy on-ramp and bindings or libs
that let you touch any feature of the system you're on.
To be clear: Language adoption is about encouraging productive play.
Tooling + Bindings > Language Details
I don't see the pinning operator really mattering much when thinking
about making Erlang attractive to people who want to be able to learn
one language and do *most* things in it relatively well. All I see there
is the potential for people to get a bit hung up on "huh? That's weird.
Why? What's that called so I can search for it?" etc. Every hangup of
that nature reduces adoption.
All of this is about context, capabilities, user-facing tooling, etc.
and none of it about the language itself. Erlang is already fully
buzzword compliant! That's amazing as it predates the plague of
buzzwords in computing.
More information about the erlang-questions