Hey everyone, I want to start using Scheme and I have two questions. First, would you recommend using an interpreter or a compiler for Scheme and why? Second, which interpreter or compiler for Scheme would you recommend and why? Thanks!
For a beginner, I would highly recommend Dr. Scheme, since it gives you a really nice environment to work in, supports many dialects of Scheme, and gives very good failure and debugging information. I believe most implementations of Scheme are interpreters, although it is possible that there is a compiler out there.
If you are a commandline junkie like me, an alternative you might consider is mzscheme, which is essentially the same thing as Dr. Scheme, but without the graphical environment and a commandline interface.
I'd recommend not being concerned about whether it's implemented as a compiler, interpreter, or combination thereof -- especially to start with, the quality of help files (for one example) will matter far more than exactly how it's implemented.
As far as which one, PLT Scheme is what I use (by far) the most often.
I know you already accepted the answer, but for future visitors to this question, I recommend Chicken Scheme. It tends to produce much smaller executables than mzscheme does. Take the following hello world application, for instance:
(define (say-hello name)
(print (string-append "Hello, " name))
(newline))
(say-hello "Earthling")
Compiled with mzc --exec mztest hello.scm: 3.3M
Compiled with csc hello.scm -o ctest: 16k
And if you're after library support, Chicken provides Eggs Unlimited, which is like PlaneT for mzscheme (or gems for ruby).