Hacker News new | ask | show | jobs
by voicedYoda 973 days ago
I think it's that AtomVM is erlang specific, while nerves is elixir and erlang. I could be very wrong, but that's my initial read from the docs
3 comments

> I think it's that AtomVM is erlang specific

I see plenty of references to Elixir in the docs, and this official AtomVM project to provide some tooling to target AtomVM from Elixir

https://github.com/atomvm/ExAtomVM

As someone who's yet to play with Erlang and Elixir, is the bytecode lean or fluffy? Microcontrollers often have somewhat limited Flash storage, and I see they have 512kB as bare minimum with 1MB recommended for the VM itself.

Will that extra 512kB be enough for fun stuff?

Good question!

I'm not a BEAM developer, but a quick search found this [1] which was very informative. My classification would be "quite fluffy", but that's of course highly subjective and the language/platform has quite a lot of features that it needs to support so I wasn't expecting CHIP-8, exactly.

[1]: https://gomoripeti.github.io/beam_by_example/

It implements the BEAM, so any language that shares the runtime can be made to work (Elixir, Gleam, etc)
If I understand correctly, Elixir builds an Erlang syntax tree and then the erlang toolchain takes over. If it runs Erlang, it should be able to run elixir
I think you have it the other way around. Elixir is built on top of Erlang, no? So if it runs Elixir it can run Erlang in the same way React can run JavaScript, but not necessarily the other way around.
No, the GP is correct: Erlang and Elixir are 100% equivalent on the BEAM, because Elixir compiles to Erlang AST, then that is compiled with Erlang compiler to BEAM bytecode. I honestly don't know what you mean by the React example, but it's more like JavaScript and TypeScript, or Java and Kotlin. At runtime, there's no difference between the code compiled directly from Erlang and code compiled from Elixir.