I wrote my first vaguely non-trivial LFE program as a macro in the REPL as a guess, and it worked on the first try.
If I need a lisp in BEAM, I would run with LFE on that alone.
If this is inferior in every way to lfe then it will remain a niche project. If not, perhaps it will encourage some improvements either in lfe or Erlang itself (though I think the latter is unlikely).
This list is pretty long: https://clojerl.github.io/differences-with-clojure/
For now, the JVM is the only way to get the full Clojure experience.
That being said they've made some concessions to the fact that it would be really nice to have portable Clojure code with `.cljc` files, but those are only portable Clojure code by matter of convention (the only technical thing `.cljc` files accomplish is allowing you to use reader conditionals).
Personally, I wish Clojure went further. Even with the commitment to being a hosted language, it still is clunkier at interop than Scala or Kotlin, two languages which nonetheless do have independent semantics as specified in their respective language specifications. It kind of seems you end up with the worst of both worlds (worse interop and no consistent semantics), although to be fair Clojure also commits far more heavily to the FP paradigm than Kotlin or even Scala, which makes it intrinsically more difficult to have seamless interop with Java (yes yes yes its interop with Java is already quite good, just not quite at the level of the others).
[1]: https://gist.github.com/macintux/6349828#alternative-languag...
If you're making a language and not targeting one of them, you're DOA.
If anyone wants something that feels a bit more vanilla-erlang-ish, one should also check out Lisp Flavoured Erlang. It is almost a direct one-to-one translation of Erlang into Lisp-land (actually made by one of Erlang's co-creators), but also provides Common-Lisp-Style macros, and a much more consistent, cleaner syntax than vanilla Erlang.
<frameset rows='100%, *' frameborder=no framespacing=0 border=0>
<frame src="https://clojerl.github.io/" name=mainwindow frameborder=no framespacing=0 marginheight=0 marginwidth=0></frame>
</frameset>
What...? Why...? I just can't...Haskerl, a subset of Haskell for the BEAM VM.
Alpaca, a version of ML.
A Purescript BEAM back end.
An Idris BEAM backend.
See https://github.com/llaisdy/beam_languages/blob/master/README...
https://medium.com/clojure-on-the-beam/agents-9de923017adf
that discusses why Clojure 'agents' haven't been implemented in BEAM yet. I think (and I'm not familiar with Erlang) that Clojure agents are very similar to Erlang actors.
[1] - http://lists.llvm.org/pipermail/llvm-dev/2011-December/04644...