[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MzScheme vs MIT Scheme




MIT Scheme is older than MzScheme. It adheres to the philosophy of MIT
Scheme researchers, which says that almost everything should be accesible
to programmers (e.g., environments, closures, etc). 

MzScheme+ and MIT Scheme-

 * units (aka modules for components)
 * first-class classes (aka "object system")
 * generative structrues
 * exceptions 

MIT Scheme+ and MzScheme- 

 * control over run-time from within programs 
 * OS/2 port 
 * older and therefore more traditional libraries around

Both support r^5rs macros to some extent. In MzScheme, you load the library
synrules.ss and get a reasonably decent implementation of these macros. The 
port is due to Dorai Sitaram (GTE Labs) and Shriram Krishnamurthi (Rice,
still). 

;; --- 

The size of DrScheme is a small problem though I am running it on a similar
machine (right now) and experience no such size problems. 

Why is DrScheme so large (11Mb at start-up, 20 within a few runs)? 

 The best answer is "because you get so much more from DrScheme than from
 an ordinary Scheme repl". It gives you access and control over a huge GUI
 library, which basically means you get an OS.

 The worst answer is "because we use Hans Boehm's `conservative' garbage
 collector." It holds on to far more memory than necessary. Also, we
 haven't figure out a way to return pages to the OS on a cross-platform
 basis. 

There are several answers in-between those two. I can explain what DrScheme
provides in detail, too. 

Still, my experience is that for small programs (< 1000 loc) DrScheme poses
no memory problem. I develop them routinely in there, using two or three
windows. For larger programs, Robby should comment; he can [could?] run
DrScheme on DrScheme. 

-- Matthias