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

Re: MzScheme for Embedding




  I do have a couple of concerns about MzScheme:

  (A) The Guile-list has lots of complaints that the MzScheme
  module system is very un-schemelike (whatever that means).  Can
  anyone here shed light on what this means?

I grew up in Germany and I have plenty of experience with statements such
as 

 "This is against the people's will" 

and 

 "This is un-American." [substitute your favorite country here]

The speaker typically has no rational argument, often has no true
counterpoint, and that's that. 

Our modules are first class, they are externally linked, and they 
are the only ones that support a model-view-controller architecture 
directly. No other module system can claim this. As one of the designers, I
couldn't care less whether its Scheme-ish, un-Scheme-ish, or whatever. It's
highly useful if you want to program with components, and that matters to a
small team that needs a high degree of reuse to get anywhere. 

  (B) MzScheme seems like it has a fairly large memory footprint.

Yes, it does. Matthew is working on a version that will use generational
copy collection in addition to Hans's "non-cooperative" collector. We're
testing it now. 

  (C) Focus on educational use might mean that its evolution will
  be towards lots of functionality at the cost of large size.  By
  this I mean it may not be possible to pare it down to just the
  pieces I want at a given time.  Perhaps the module system provides
  sufficient granularity that this is not a problem.

MzScheme is *not* focused on educational use. If we add functionality to
MzScheme it will be in response to people on this mailing list. All the
functional srfis will just become modules. 

DrScheme, the programming environment atop of MzScheme, was originally
designed for educational uses. In the meantime, it has evolved into an
adolesecent PDE. I am using it for all my Scheme programming tasks -- and
believe me, it took me many years to let go of Emacs. In the future, we
will fully support units, and then it will be what you need as an
individual programmer for almost everything. 

If you use MzScheme for your task, keep in mind its license. And keep in
mind that we are actively interested in helping people. 

I know this doesn't report on experience with embeddings, but it at least
answers your other concerns. 

-- Matthias