Beyond being functional and sharing a runtime I don't think Elixir and Gleam have much in common at all. Our recent developer survey showed that the majority of Gleam programmers were not Elixir users and largely were not attracted to that language.
> Our recent developer survey showed that the majority of Gleam programmers ... largely were not attracted to that language.
I must admit that I find that fairly bizarre. What do you imagine the source of that lack of desire is?
For context, my favorite language is F# and ML-dialects in general, but I also like what I call "principled" dynamically typed languages like Scheme, Racket, Erlang, and Elixir.
Gleam grows the BEAM ecosystem by bringing people in from elsewhere who were not interested in writing Elixir, Erlang, or LFE.
> I must admit that I find that fairly bizarre. What do you imagine the source of that lack of desire is?
They're just very different languages to work with. The programming experience is very different.
The point is that beyond some basic typing things, programs written in Erlang, Elixir, and Gleam will all have the same core structure. Immutable data plus pattern matching plus BEAM processes has a pretty strong affect on any BEAM language.
I dunno... Scala, Clojure, and Groovy users? Small user bases, but the languages are not dead.
I find the opposite more troubling, actually. Take the C# ecosystem and see how there's one de-facto application framework (.NET), one logging lib, one etc... It's usually Microsoft's way or the highway, and 3rd party libraries and frameworks struggle to get any adoption. Consequently, that ecosystem is much smaller, less diverse, and less innovative.
I don't particularly want to gatekeep "Rust fans who just want to write lots of Rust" off OTP. Let them have Gleam. Maybe they'll figure out how to lifetime-annotate binaries?
What do you mean by this, I know how lifetimes work in rust, but how would you do it on the binary level ?