Falling off the wagon with DrScheme
Sunday, February 5, 2006
It's been ages since I last played around with
DrScheme (the integrated-IDE version of
PLT Scheme. When I first
started learning Scheme a few years ago, I used it for a
little while before switching over to using
Quack with Emacs (see
here for my blog
entry about setting up Emacs for Scheme). After a while, I pretty much
dropped Scheme and focused more on Common Lisp. However, every now and
then I
"fall off the wagon" and play around with Scheme again. ;-) With
Doug Williams due to give
his presentation to lispvan in a couple of weeks, I decided to
refresh some of the brain cells that used to know Scheme and
downloaded DrScheme again.
As I've
previously indicated, PLT Scheme has a lot going for it. The
PLT team just keeps plugging away, making the product even better
and better. The
DrScheme online tour provides a good illustration of a lot of the
features of the DrScheme IDE. Since I last played around with
DrScheme, they've added a
debugger that works much like
edebug in Emacs. The debugger functions at
the higher language levels in the IDE and complements the
stepper that is only available at some of the basic teaching
levels. Other neat new features are the
code profiler and the neat way they allow you to
embed test cases into your code. The PLT team consistently
come up with innovative new ideas that they incorporate into their IDE. The following snapshot gives
you an idea of what the IDE looks like (running one of
Doug's examples). Notice the graphical output in the REPL and the
arrows that graphically illustrate which symbols come from a
particular import in the source pane.

There are a
lot of good books around that you can learn Scheme
from. However, the problem with learning to use a Scheme
implementation (as opposed to Scheme itself) is that every
implementation has its own set of libraries and
extensions. Fortunately, the documentation for PLT Scheme is
excellent. In addition to the
standard documentation that comes with
the download, there are a number of other PLT Scheme-specific sources
of documentation:
- How to Design Programs (HtDP): This is the textbook for the TeachScheme! Project and is used in many High Schools and Colleges. It is an excellent book for learning how to program but it is also useful for reviewing good programming habits if you already know some programming. It is available online and from Amazon. If you are interested in using this book for teaching Scheme, you might also be interested in reading the TeachScheme! 10th Anniversary Workshop Proceedings - they contain a wealth of interesting material and ideas for using PLT Scheme in an academic environment.
- Programming Languages: Application and Interpretation: This is the book that Shriram Krishnamurthi (one of the PLT Team) is writing and has used to teach some of his CS programming languages courses at Brown. I had previously recommended a chapter from his book as a good introduction to Scheme macros and subsequently recommended it again for his coverage of DSL's.
- Teach Yourself Scheme in Fixnum Days: A good book if you know other programming languages and want to learn the basics of Scheme quickly. It is only available online and comes bundled with DrScheme (you can access it from the DrScheme Help).
- Schematics Scheme Cookbook: A web site that contains a lot of PLT Scheme tips and techniques. The contents cover quite a range of different topics. For a taste, have a look at the Web Programming Recipes.
- How to Use Scheme (HtUS): I think this book was meant to be what the Schematics Scheme Cookbook eventually wound up being - a collection of tips and techniques about different PLT Scheme topics. Still, HtUS provides some information that is not readily available from other sources. The HtUS web site contains an older version - you should also have a look at the newer draft that is on Matthias Felleisen's site.

