News for hackers. Stuff that matters.

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

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.

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.

One thing I read somewhere is that reader macros (which I don't grasp yet) are such a thing.

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?

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?

( 3 comments | 2 points | on HN )
Re:Ask YC: Scheme vs Common Lisp - power/expressivity compar... by dmaclay on Thursday November 27, 2008 @09:10AM (#378660)
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.
Re:Ask YC: Scheme vs Common Lisp - power/expressivity compar... by igorhvr on Thursday November 27, 2008 @01:04PM (#378807)
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...

Re:Ask YC: Scheme vs Common Lisp - power/expressivity compar... by dmaclay on Saturday November 29, 2008 @08:45PM (#380536)
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.