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

From: Erich Rast (erich at snafu.de)
Date: Wed May 4 04:13:13 EDT 2005

> 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.

I'm about to write my first larger, non-trivial real-world application 
in PLT scheme as well---very slowly, since I've got a rather demanding 
day-time stop. Of course, I don't have that much experience to give you 
any real advice, but for your interest, here is what I'm doing:

- I strictly separate the user-interface from the underlying 
application. (I'm not really strictly adhering to e.g. the 
Model-View-Controller  design pattern that Apple recommends, but at 
least strictly separate backend from frontend.)
- I code the whole  backend first. (This includes writing/saving to 
disk and all functions that may later be assigned to menu items or 
buttons---simply everything the app should be able to do except GUI 
user interaction.)
- I write a test suite for each module while I write the module. 
(SchemeUnit works fine for me.)

After this has been done, writing a GUI based on MrEd should be fairly 
trivial. My personal experience with MrEd so far is that it is not a 
very simple API and somewhat makes the impression of having been 
designed and augmented on-the-fly whenever something was needed for the 
DrScheme IDE. For example, working with snippets and fonts can be 
tricky. But the tricky part consists mainly in finding the right 
reference in the online help. I agre with the one who said that the 
best way to get into using MrEd is to just do it. MrEd is fairly 
advanced, and the only things I'm personally missing in it is multiple 
modifier keys in menu shortcuts (that are also visible in the menu) and 
a general-purpose multi-column listbox.

Sorry if all of this sounds too trivial and is no news to you. Some of 
the pros have already given you more advice.

Best regards,


Posted on the users mailing list.