There are a lot of programming languages on the BEAM

There are a lot of programming languages on the BEAM


– As you learn about Elixir and Erlang, you will discover that they run on runtime called the BEAM, that stands for Bogdan or Bjorn’s Erlang Abstract Machine, depending on who you ask. Bogdan and Bjorn are being two people who worked on it at
various points in time. The original language on
the BEAM was, of course, Erlang, and it was written by Joe Armstrong, Robert
Virding, and Mike Williams back in Ericsson in the 80s and 90s, and continues to be maintained by folks at Ericsson and
Erlang Solutions and others to this day. The next language you will
hear about on the BEAM is, of course, Elixir. These are being given, by the
way, in no particular order. Elixir was created by Jose Valim to solve issues he had with scaling Ruby, that he resolved with of Ruby, and it’s
something that keeps very common, you’ll hear a lot about it. However, in addition to those two, there are a bunch of other languages. This is not a complete
list, because quite frankly it’s hard to come up with, And I’m also excluding languages here like JOXA, which was a Lisp that was created on the BEAM that
has not been maintained, in some years, I think
the last commit on GitHub was six years ago, so. Ignore that. But you have a few interesting ones, so there’s, first of
all is LFE, which stands for Lisp Flavored Erlang. It’s exactly what it sounds like, it’s a Lisp that runs
on the BEAM in Erlang. You also have Clojerl, which is a Clojure implementation for Erlang. You have Luerl, which is implementation of Lua for Erlang. If you happen to be a Lua fan, claims to be a full implementation of Lua that runs on the BEAM. I’m not familiar with Lua personally, so I can’t say that I’ve ever
used it, but it’s out there. If you are interested,
you can take a look. Than we have Alpaca, which
is an ML family language. If you like that sort of functional style. There’s also purerl, which is a port of PureScript to the BEAM. So, you can run strictly-typed short script-style code
in the Erlang runtime. You have Fez, which is an implementation of F sharp, I don’t
know how complete it is. You have Cuneiform, which is for doing distributed data stuff. I hadn’t actually heard of it until I started researching this video, so I don’t know about it beyond that. There’s another favorite of mine is Erlog, which is another Robert
Virding Luerl and LFE. It’s an implementation of Prolog that runs in an Erlang process. I think that’s really cool, in that I’ve always liked Prolog, but one of the weaknesses
I’ve always seen in it is communicating between
Prolog and other stuff, so this basically lets you do all of the framework
stuff you’d wanna do in Elixir or Erlang or LFE or whatever, and then just do the logic stuff. Prolog, which is kinda cool. ‘Cause you can use Tuples, Erlang Tuples, as Prolog facts. We’ll do a video on that at
some point in the future. So those are some of the
languages that run on the BEAM, and they’re all interchangeable, they all base the same language, use the same data types. Take a look at them, find
something interesting, I suspect that you probably don’t want to use many of them in production. I don’t know how robust all of them are, if some of them are experimental, but I wouldn’t tell you not to, I just saying I don’t know enough. So, any rate, thank you very much, and if you’ve enjoyed this, please like and subscribe below, and you can feel free to reach out to me in comments or on Twitter.

3 thoughts on “There are a lot of programming languages on the BEAM”

  1. Thanks for the video and this channel. I'd like to just let you know that it seems there are some issues with the sound in some of your videos. Anyway, keep uploading videos about elixir!

Leave a Reply

Your email address will not be published. Required fields are marked *