New EEP draft: Pinning operator ^ in patterns
Fri Jan 29 11:11:16 CET 2021
On 2021/01/29 17:51, Richard Carlsson wrote:
> Den tors 28 jan. 2021 kl 10:57 skrev zxq9 <zxq9@REDACTED
> Using COBOL as an example is a bit hilarious. Have you actually written
> a project in it? Have you seen the "evolution" of this language?
> I haven't. But I wasn't comparing them on a technical basis. Both are
> surviving in their niche - Erlang's could be called "communication
> oriented applications" - because there are companies who rely so heavily
> on existing codebases that they don't really have another choice but to
> keep going with them. Cobol is backed by banks and can probably go on
> until cockroaches supplant humans on this earth. Erlang has only a few
> large sponsors, and it's still just Ericsson footing the bill for the
> OTP team. There is very little greenfield development in Erlang (and I
> hope there's practically none in Cobol), so the hope for more large
> sponsors is low. And in both cases, I'm sure that if management could
> wave a magic wand and replace the old system with a similar one (doesn't
> even have to be quite as good) in Java or Go, they would do it in an
Nearly everything is communication oriented now. Very few developers in
the wild even know how to program against a socket, though, and are
puzzled by the garbage nature of their JS code and npm madness and why
Node.js isn't everything it was buzzed up to be by ENORMOUS AMOUNTS OF
Think about that. Almost everything is networked. The majority of
developers don't know how to actually program a socket without some
framework in the middle.
But JS does have tooling! It is easy to "get your new web app up and
running in [insert cloudy application prison here] with just a few
commands I'll show you in this video!" There is an entire industry that
is based around fake programmers on YouTube talking literal nonsense
about how to do "NoCode" applications in AWS, Azure and Google compute
cloud offerings. This is a marketing juggernaut and all the money goes
into developing "framework for X" and "tooling for Y" both sets of which
will be dropped the next quarter so that new buzzy "influencer" videos
can be made. Very little actual language development going on in
concrete terms, and even less in terms of making things *better*. The
reason is simple: 99% of everything is utter garbage, but within that 1%
resides the next generation of web apps that AWS can tax into oblivion
if it actually catches on -- makes everything worth it.
You want Erlang to compete? Agitate for marketing money and tickle the
"influencer" scamline. That's how Java was born, actually -- everything
about it was tailor made to maximize marketing potential until long
after it had taken over much of the new coder mindshare (and then most
of the effort went into tooling and runtime). Same with "the cloud" that
delivers the precise opposite of what the original buzz stated.
My corollary to Ballmer's "Developers! Developers! Developers!" is
"Tooling! Tooling! Tooling!"
Erlang is already fully buzzword compliant. Spin its "differences" as
"language diversity" and magically it is a thing to be embraced rather
than stomped out on the never ending march toward a gray universe of
People stopped using COBOL because it sucked.
People hate using Java because it sucks.
People hate using C++ because it sucks.
Programmers who are stuck doing web-only nonsense and had to flee the
floundering trash barge that was RoR turned to Elixir because they
needed a better runtime but had little to no programming knowledge
outside of Ruby. That's a bad situation and should not be emulated. It
was a HUGE population, though, so in an absence of technical merit one
could conclude "this is better". It is "better" only in a "Worse is
Better" sense. That's not Erlang's thing, though, and isn't its market.
People are *attracted* to Erlang because it doesn't suck.
The arguments given here about adoption and language longevity put the
emphasis in the wrong place. Tooling, buzz, marketing, influencers.
That's how you popularize something. The technical merits of a language,
framework, environment, operating system or runtime have very little to
do with its adoption in a very similar way to how scams and vaporware
are much easier to get funded than new real things.
To be fair, I wrote easy on-ramp tooling in the form of ZX but hey,
look, no marketing juice, so it's just an oddity on my personal site and
will never be broadly adopted or probably even worked on beyond my own
personal needs. It is, however, an example of the kind of thing The Big
People With Money should direct their own efforts to emulate. Go-style
tooling that makes there be no difference between running for
development, running for testing, and running in production is the
ticket -- and makes a concrete decision about dependency handling (along
with trickle-down package replication, because stuff like that matters
when you get serious).
No greenfield development? I beg to differ. I've worked the better part
of the last decade doing almost exclusive greenfield development in
Erlang. Mostly for game companies, but also esports platforms, streaming
services, business data management, backup data services provision, etc.
Most of these are not public FOSS projects, sure, so may get little
visibility, but it is hard to see this concern as a real thing from my
Just as a troll I think I'll write an even more minimal, even more
strictly single-assigned flavor of Erlang called "Pythonic Erlang":
- Erlang with semantic whitespace
- Most of the ant-poop gone
- Source file extension ".perl" (an apt reminder...)
- Will merely re-write to normal .erl files
- Be implemented first in Erlang because I think it is funny
- Will insult your mother if you put some ^Nonsense in your code
- Will live inside ZX and "just work" because that's even more funny
(trapping a feature within a niche utility suite ftw! hahaha!)
The stupid thing is it would suck less, everyone actually knows it would
suck less, might even make the BEAM more accessible to the
fiddy-gajillion-jillion Python programmers in the world, and yet this
isn't the kind of thing we're discussing. Nope. We're talking about
adding some new garbage syntax and moving away from what Erlang is
supposed to be about. That's not how adoption works.
Oh, and it would be absolutely impossible for me to get this kind of
thing funded because it might work. That's just the world we live in.
This be where the GameStops.
More information about the erlang-questions