[erlang-questions] Erlang vs Clojure

Yariv Sadan yarivsadan@REDACTED
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
easier.

Regards,
Yariv



On Nov 24, 2007 7:12 PM, Robin Bhattacharyya <robi123@REDACTED> 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
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list