Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post or chat about non-Elixir/Erlang-specific BEAM news and topics here.
Don’t forget EFS is the best place for non-Elixir BEAM chat and for those who don’t want to venture there be sure to keep an eye on our Erlang News & Announcements thread where we automatically cross-post all official Erlang News and Announcements
Let’s kick this thread off with one of the BEAM’s most prolific language creators… @rvirding himself!
For those of you who don’t know, Robert is not only one of the original creators of Erlang but he has also created several other languages which run on the BEAM as well The most notable of these is probably LFE (Lisp-flavoured Erlang).
If you see this Robert how are things going with LFE/your other BEAM languages? Working on any new ones?
Maybe we need a beamforum.com? For all beam languages and interop?
I’d like to ask Robert a couple of questions.
Any chance structs will come to Erlang?
You have mentioned in the past that there are no custom types in Erlang (only composite types). Is there a reason for that? I’m guessing that types need to play nice with the schedulers?
I’d love to see more seem-less interop between beam languages. Any ideas how to do that?
That’s essentially what the Erlang Forums is (with dedicated forums for every language that runs on the Erlang VM as well as for BEAM interop etc). We do have plans to bring all the forums/communities closer together with things like easier cross-posting and cross-talk (while ensuring each community retains sovereignty) in our custom community platform… but you’ll have to keep an eye on our Forum Announcements for that
So things are going well for LFE which has an enthusiastic group using it for many things fun things like music. The latest thing added are structs which are completely compatible with Elixir structs, which means you can define structs in LFE and use them in Elixir and use Elixir structs in LFE. Yes, I know both are maps but we get the same support for them in LFE and we have in Elixir. Next on the list is implementing Elixir protocols in LFE. I am also looking at reworking the LFE repl so that it can be used in different ways, not just from the keyboard.
Luerl is being actively used by a number of businesses in the systems. The oldest I know of the OTP bank in Hungary. (Yes that is their real name) Part of their backend is written in Erlang and they are using Luerl for running scripts. Other companies have started looking at using Luerl in their systems as well. The last things I have been working with in Luerl is smaller internal stuff. Their is one user who has been writing a new interface in Elixir to run Luerl.
Erlog, my implementation of Prolog in Erlang, has been pretty dormant for a while but I will fix it so it runs well on the newer OTP versions.
There are both slack and discord workspaces for LFE and Luerl which I follow but at least for the LFE the traffic is moving over to discord. The link for LFE Aston gave contains links for both slack and discord and for Luerl the github page https://github.com/rvirding/luerl contains a link for slack and here is a link for discord Luerl
Forgot to mention here is that one of the reasons for adding structs and later protocols to LFE is make it easier to interact with Elixir. And of course it was a interesting and fun project
I know I’ve said it a million times before and I know you’ve said no a million times… but I would love to see you write a book about Erlang and the eco-system around it, perhaps a BEAM version of Seven Languages in Seven Weeks: Seven BEAM Languages in Seven Weeks
The Gleam compiler WASM API and JavaScript bindings.
The Gleam standard library and other packages maintained by the core team will be getting an accompanying v1 release shortly afterwards. Before these are released we will be making pull requests to popular community packages to relax their package manager version constraints to ensure that the update to v1 is as smooth as possible for all Gleam users.
What does v1 mean?
Version 1 is a statement about Gleam’s stability and readiness to be used in production systems. We believe Gleam is suitable for use in projects that matter, and Gleam will provide a stable and predictable foundation.
Gleam follows semantic versioning, so maintaining backwards compatibility is now a priority. We will be making every effort to ensure that Gleam does not introduce breaking changes. The exception to this is for security and soundness issues. Should a critical bug of this nature be discovered we reserve the right to fix the security issue, even if some programs were taking advantage of the bug.
What’s next for Gleam?
Gleam is a practical language intended for making real things, so our focus for Gleam post-v1 is to be split between productivity for Gleam users and sustainability for the Gleam project.
I was reading about it some time ago, and it looked really interesting, but after reading the docs I realized that there is one thing I absolutely love in Elixir and that is missing in Gleam is multicephalous functions. Not that I cannot go without them, maybe it’s just bias and I think that any Beam language should have it. Also, the ecosystem was not developed and it was not clear how to use existing Elixir/Erlang libraries
Are you currently using Gleam? What are your thoughts?
I love gleam. I’d love it even more if interacting between gleam and elixir had some better support. I mean it works well enough but the difference between records and structs is enough friction for me that it’s not a great experience