This appears to just emit elixir code which means that any Erlang application wanting to interface with it still needs to have the Elixir application booted.
Yes & no - elixir is “just” another application that is included in the Erlang release (a collection of applications and optionally the runtime), so t’s all BEAM bytecode at the end, and there’s nothing special (at least from my perspective) about that.
Is it easy to target the Erlang VM? I’m really surprised at the number of languages targetting this machine given that it doesn’t seem to have nearly the same execution model as more classical languages (compared to something like the JVM)
Not so easy, no. However its not so different to JVM at a conceptual level, as it’s also a byte code interpreter with JIT-ish features. Erlang has an unusual feature, a per-process heap, specifically designed to enable soft-realtime systems guarantees. This is (IMO) the best introduction to the BEAM internals: https://happi.github.io/theBeamBook/ and a general JVM:BEAM comparison, albeit a few years old now http://ds.cs.ut.ee/courses/course-files/To303nis%20Pool%20.pdf
This appears to just emit elixir code which means that any Erlang application wanting to interface with it still needs to have the Elixir application booted.
Yes & no - elixir is “just” another application that is included in the Erlang release (a collection of applications and optionally the runtime), so t’s all BEAM bytecode at the end, and there’s nothing special (at least from my perspective) about that.
Is it easy to target the Erlang VM? I’m really surprised at the number of languages targetting this machine given that it doesn’t seem to have nearly the same execution model as more classical languages (compared to something like the JVM)
Not so easy, no. However its not so different to JVM at a conceptual level, as it’s also a byte code interpreter with JIT-ish features. Erlang has an unusual feature, a per-process heap, specifically designed to enable soft-realtime systems guarantees. This is (IMO) the best introduction to the BEAM internals: https://happi.github.io/theBeamBook/ and a general JVM:BEAM comparison, albeit a few years old now http://ds.cs.ut.ee/courses/course-files/To303nis%20Pool%20.pdf