[plt-scheme] Help writing non-trivial applications.

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue May 3 23:29:16 EDT 2005

On May 3, 2005, at 7:50 PM, David Richards wrote:

>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Is there a book on using PLT-Scheme to write complex interactive 
> applications?
> Is PLT-Scheme source code to a complex application(s) available, such 
> as a usable web browser, word processor, etc?
> What is the best way for someone to learn to master the GUI aspects of 
> PLT-Scheme?
> Obviously example code is helpful, and the 'cookbook' stuff is great.  
> But there seems to be a big gap between the excellent technical 
> documentation and the kind of incremental tutorial that engenders 
> understanding and mastery.
> On a personal level, I'm very confident about using Scheme for 
> traditional academic exercises.  What I'm not too confident about are 
> the event-handing idioms, styles and 'best practices' that can mean 
> the difference between successful project architecture, and a 
> functional nightmare.
> Thanks for any advice and ideas, in advance.

0. Mea culpa. I am the non-author of the non-book HtUS, which I had 
hoped would answer this kind of question (well, the Scheme specific 
part). I agree: we need this kind of book but it has slipped down on my 
list of priorities.

1. Neil has given you a decent answer. A lot of what you're asking for 
is independent of Scheme. But having said this, I strongly believe that 
a lot of things can be done better exploiting Scheme's full power, 
especially macros.

2. While we're waiting to study this idea systematically, I am hoping 
to write HtDCH (HtD vol II) and one day HtDS (vol III). That last one 
will help you tackle things in principle.

3. If, like Neil, you happen to think UML has problems, take a look at 
the next OOPSLA proceedings and look for a paper whose last author is 
Daniel Jackson. It uses the so-called Design Structure Matrix, and I 
believe that this is a step forward for people who want to understand 
dependencies among system components.

-- Matthias

Posted on the users mailing list.