New EEP draft: Pinning operator ^ in patterns

zxq9 zxq9@REDACTED
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 
programming.

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.

-Craig


More information about the erlang-questions mailing list