[plt-scheme] comments on drscheme

From: Shanon Fernald (sfernald at gmail.com)
Date: Wed Jul 21 11:33:37 EDT 2004

I meant to send this back to the list too...

On Tue, 20 Jul 2004 14:34:06 -0500, Robby Findler <robby at cs.uchicago.edu> wrote:
> At Tue, 20 Jul 2004 11:28:57 -0700, Shanon Fernald wrote:
> >   For list-related administrative tasks:
> >   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >
> > I have just discovered drscheme and find it to be a great interactive
> > tool. I'm going through SCIP and typing all the examples and doing all
> > the exercises in drscheme. This is really what an interactive
> > environment should be like. It really reminds of the 'Query Analyzer'
> > tool which I use for T-SQL development every day.
> >
> > I was thinking it might be nice to see the following additions to it though:
> >
> > 1. Have an option for automatic execute when focus is removed from the
> > source code window. Basically whenever I click down to the interactive
> > pane at the bottom I would like it to reload the source above. Then I
> > can run my tests in the interactive window.
> Have you tried using the shortcut (<menukey>-t)?

Yes, but I am that lazy. Have you seen the feature in ellipse where
you don't even have to click 'compile' any more? The thing just
compiles as you go. It is pretty slick. Basically I think that any
time I update something it should transparently compile.  This is used
when I switch back between the source and the interactive prompt while
experimenting with the functions I just finished editing.

Example would be:
1. I write a gcd function in the source pane. When I click down to the
interactive prompt it should compile and be ready to go. Then I can
type my various experiments: (gcd 1000)  (gcd 9993939) in the
interactive prompt and play around with variations for a while. Then
say I jump back to the souce, make a quick change and I tab back to
the interactive pane and run more tests. By the time I hit tab my
modified function has already recompiled.

The other way to do this would be to allow be to highlight and execute
a particular function in the source window. Right now when I hit
execute all the functions execute.  Now let's say I have 10 functions
in the source window and some tests. One test my be the line (gcd
1000). It would be great if I could highlight the line (gcd 1000) and
have it run just that function.  If you know the way query analyzer
works then you know what I'm talking about.

The thing it is I think ideally it is easier to have a source window
with all your functions. This will compile automatically. Then you
have another window for your tests. Instead of a - type command press
enter view result - command line pane, this could be a text box
similar to the source pane  with the ability to highlight a command
and execute it as I was talking about before.

Anyway, I hope you get the idea of what I'm talking about. It will
create a really interactive environment for iterative development.
> > 2. Break the interactive windows into a set of panes, like in query
> > analyzer. One would be the interactive prompt, one would be the
> > results, one would be error messages, maybe one for tasks,  one for
> > profiling / code analysis, etc.
> Something for us to think about, thanks.

comment above relates about perhap a way to separate my commands and
the results each in separate text boxes.
> > 3. The break / interrupt feature doesn't always seem to work well on
> > my laptop. Hitting the break button should stop the running
> > application smoothly and cleanly. Right now sometimes it is a
> > challenge just to click it and then it can take some time for the
> > interrupt to occur.
> If you don't care to continue after breaking (and before the next
> execute) use <menukey>-k to kill the execution. This works slightly
> better than break, but if you are allocating *lots* of memory, you
> still may have problems. We're working on that, tho.
> > 4. Have a high resolution clock (as in query analyzer) that measures
> > and displays the duration of a running function in milleseconds. Great
> > for optimizations and such things. I use it all the time when writing
> > t-sql queries. Why not for sorting algorithms too?
> (time ...) times things in milliseconds, I believe.

I was seeing that as something that automatically ran every time you
ran a function. And that display in a status pane somewhere as it does
every time you run a query in query analyzer. It's just something
automatic that the programmer doesn't have to think about that maybe
can be enabled or disabled.  Looking at query analyzer it only tracks
by seconds, but probably would want to have a higher resolution with

> > 5. Let the key bindings be customized. Some of the defaults are really
> > strange choices and I would like to be able to customize many of the
> > keys.
> This is something that has been in the plans for sometime (many many
> have asked for it) -- as soon as I get a rainy day, I'll do it..... I
> promise!


> Robby

Thanks. I never usually bother to make comments, but this product is a
dream. I have always wanted to achieve the iterative development
environment of query analyzer in a real programming language. Scheme
and DrScheme might just be it!

Posted on the users mailing list.