

Ask YC: Scheme vs Common Lisp - power/expressivity comparison. - igorhvr

I would like to read your opinions about the comparison of power and expressivity of Scheme and Common Lisp. I currently only know Scheme, and I want to decide if I should spend more time and effort on this route, or if it is worth learning Common Lisp for me.<p>Specifically, I want to understand if there is anything that can be done in Common Lisp that can't be reasonably easily be expressed using a present-day Scheme system.<p>One thing I read somewhere is that reader macros (which I don't grasp yet) are such a thing.<p>Other thing would be low level macros - but there are Scheme systems that allow you to use define-macro and gensym (non-hygienic macros). Is this (even if more cumbersome) as powerful as the Common Lisp counterpart?<p>Finally, Common Lisp has dynamic scope - but to me it looks like everything that can be done using this could be done using macros that capture variables (which some Scheme systems also support). Am I wrong?
======
dmaclay
Common Lisp's main advantage over Scheme is that it has been used commercially
for years, and has thus accumulated a large number of libraries. Scheme was
created as a more consistent and concise Lisp, and is better suited to
experimentation.

~~~
igorhvr
I read things to this effect in the internet, but then you have more than one
Scheme system that runs (or is able to run) on top of the JVM - effectively
making this problem disappear.

So, I guess I am looking for other differences, things that are essential to
the languages - not just differences in libraries...

~~~
dmaclay
Don't use any of the JVM schemes (for one thing, none of them even satisfy
RSR5 in compiled mode), stick to Chicken or PLT.

