[erlang-questions] Erlang vs Clojure
Sun Nov 25 10:13:29 CET 2007
Smerl makes certain manipulations of an Erlang AST easier than doing
so manually, but it's not as powerful as Lisp macros. After doing
Smerl, I started working on a Lispy dialect for Erlang as an
experiment -- I wanted to see how advantageous it would be to have
Lisp's code generation capabilities in Erlang. Whether the resulting
language would be "better" than standard Erlang I can't say. I think
it would make some things easier but the main disadvantage is that it
would be less readable for programmers who haven't used Lisp much.
I think it would be easier for Erlang programmers to adopt a Lispy
dialect of Erlang than for Java programmers to adopt a Lisp that runs
on the JVM.
Although some of Erlang's concurrency principles could be adopted by
JVM languages, I think it will be some time before any of them will
provide the full capabilities of Erlang for building
concurrent/distributed systems: per-process heaps and garbage
collection, lightweight processes, preemptive scheduling, port-based
native code interface, transparent distribution, immutable data, hot
code swapping, fault tolerance, Mnesia, etc. If I were building a new
app, I'd rather use Erlang to do the heavy lifting and occasionally
outsource some tasks to Java using jinterface than a JVM language that
isn't as powerful as Erlang is for building scalable fault tolerant
systems just because it makes calling existing Java libraries a bit
On Nov 24, 2007 7:12 PM, Robin Bhattacharyya <> wrote:
> Smerl manipulates erlang at the abstract form, so smerl is kinda like
> a lisp macro. A lispy erlang would make erlang easier to manipulate.
> Paul Graham makes the case in his book On Lisp that some special forms
> are only possible by using macros.
> Rich Hickey, the author of Clojure, makes the case that in the past
> lisps failed to catch on because they were off on an "island" with
> their own runtimes. The legacy of Java will be the JVM not the Java
> language, as there are currently ~300 languages targeting the JVM.
> I think a lispy syntax, with the concurrency principles of Erlang,
> running on the JVM runtime, could be a powerful combination.
> erlang-questions mailing list
More information about the erlang-questions