[plt-scheme] MIT Scheme vs. DrScheme
Ilya,
From a purely technical standpoint, both implementations are excellent and
both support full scheme. Also, both MIT scheme and DrScheme work under
Windows. Each implementation supports different language extensions, but
that shouldn't be relevant to you at this point.
From a student's perspective, the differences are mainly in the programming
environments the two scheme implementations offer. DrScheme is much more
user-friendly for most scheme beginners. MIT scheme provides edwin, which
is an emacs-like editor which has a few nice features, especially if you
already know emacs, but most people prefer the DrScheme environment (also,
the learning curve is much shallower). MIT scheme also has a stepper and a
debugger that work with full scheme; DrScheme's stepper currently doesn't
work with full scheme and the debugging support (though greatly improved
recently) is not as good. At Caltech we have used MIT scheme for the past
two years, but nobody really liked it. We went with it largely because of
the debugging support, but very few students used the debugger at all,
because the documentation is weak (we ended up writing a lot ourselves) and
the debugger does odd things that confuse students (like rewriting internal
defines into a nonstandard "named-lambda" expression). As a result, we
will probably switch to DrScheme next year (though we may continue to
support MIT scheme as well). Many of our students used DrScheme anyway,
and they liked it.
The only situation in which I can see MIT scheme being preferable in your
case is for those parts of SICP that use very specific MIT scheme features
(the section on the picture language is one). Note that even in this case,
getting MIT scheme to support the features takes a bit of work (I had to
email the MIT scheme maintainers for detailed directions). I doubt that
this will be a big issue. The only other point to be careful of is that if
you use DrScheme, make sure you use the correct language level (R5RS scheme
is a good choice), because DrScheme supports multiple scheme dialects,
which can get confusing if you accidentally use the wrong one.
Finally, there are some very trivial differences between the two
implementations, such as:
-- MIT scheme considers the empty list () and the boolean #f to be the same
thing; DrScheme doesn't. I prefer the DrScheme behavior.
-- DrScheme correctly prints out circular lists, MIT scheme doesn't.
There are probably a few other differences as well.
Hope this helps,
Mike
> From: mike111 at rcn.com
> Date: Thu, 6 Mar 2003 15:11:23 -0500
>
> Hi all,
>
> I just started using scheme for a college computer science
> course which is more concerned with fundamentals of
> programming rather than with language details. MIT Scheme is
> the implementation of scheme used in this course (which is
> based on the Sussman and Abelson book "The Structure and
> Interpretation of Computer Programs"). I am using a Windows
> machine, however, and so DrScheme is a much better
> environment. My question concerns the difference between MIT
> Scheme and DrScheme at a fairly beginner/introductory level.
> What are the differences or where can I find information
> regarding these differences?
>
> Thank You,
> Ilya
>