[plt-scheme] Interacting w/ MzScheme

From: Felix Klock's PLT scheme proxy (pltscheme at pnkfx.org)
Date: Thu Dec 9 22:44:47 EST 2004

Well, only since you asked...

A list, covering the items that you mentioned first:

1. I don't miss tagging.  DrScheme has source browsing with 
goto-definition and what not, and I don't think I've seen Emacs do 
significantly better than DrScheme in that arena.  Then again, I 
generate my TAGS file in a pretty naive fashion, so it gets things 
wrong on occasion.  Neither Emacs nor DrScheme has a source browser 
that matches up to what the Green Hills Software MULTI debugger 
provides (of course, that's not for Scheme; its just an example of how 
good things could be).

2. I do miss version-control integration.  A lot.  I've shown you M-x 
ediff-revision and how pretty its output is (not to mention *useful*).  
I use that functionality all the time, and I believe in it as a 
fundamental tool in the software development process.

I think that diff has been short changed by both academics in Software 
Engineering and the industry, and that there is much room to grow here. 
  If someone put a tree-diff based algorithm for revision diff's of 
parse trees (or s-exp's) into DrScheme, it could be a real coup for PLT 
over GNU as a lisp editing environment.  But I've already tried to get 
funding for similar work; that particular brand of honey isn't catching 
any flies.  So that goes into the "when I have spare time to hack" 

3. I don't miss having a spell checker.  I do ispell-word on occasion, 
and when I TA, I prefer to see student code with less typos, but not 
enough to make a feature request here.

4. I do miss being able to write my scheme code in a latex file, and 
still being able to usefully evaluate subexpressions or even the whole 
file, not to mention switch between the different syntax coloring modes 
with M-x scheme-mode or M-x latex-mode.

(However, this is just a matter of defining an appropriate language for 
DrScheme.  I bet one could do it so that for the most common cases it 
would simultaneously syntax-color both the latex and the scheme 
"appropriately".  So this is a facetious argument; the real issue is 
that this already works in Emacs, so it has inertia on its side.  At 
some point I took the time to get stack traces that descend into scheme 
code embedded in latex files to work in DrScheme, so obviously I still 
find DrScheme useful enough that I'd make my latex-loader use 
READ-SYNTAX instead of READ.)

5. I do miss having an integrated shell terminal that I can switch to 
(and copy/paste from) using only the keyboard.  But this probably stems 
from my aversion to "fondling the rodent"; if you're happy working with 
a mouse (or temporary files) to move data in and out of scheme, then 
you probably don't care about this.  Same goes for an integrated file 
browser; either you love using it, or you don't care.  Maybe there's 
some way to get this functionality into DrScheme with an appropriate 
user-written REPL.

6.  I do miss the responsiveness.  But this has gotten better over 
time, and to be honest, emacs is not always sufficiently responsive 
either (especially since it can't spawn off sub-threads for certain 
utilities that really really could use it).  So I think this is a 
pretty silly point of argument; I only include it for completeness.

7. I do miss M-x kill-rectangle and M-x yank-rectangle.  There, I said 
it; I love using them!  I use them all the time!  (not as much as 
ediff-revision though).  I bet this would be an easy thing to graft 
onto DrScheme's editor% class, at least when the user is using a fixed 
width font...

So, I've listed five things I miss, but I noted that two of them are 
things that would probably be straightforward user-level modules to 
write, and another two are not deal breakers.  VC integration *is* a 
deal breaker for me.

However, the reality here is that I am not the average user of 
DrScheme.  I'm sure there are many outstanding issues with DrScheme 
that are actually relevant to the high school and undergraduate 
students using it, and I think those should take higher priority.  
You're better off leaving dinosaurs like me in the tar pits.

-Felix, who probably shouldn't have put anything next to his name in 
his last email, and now he's trying to make up for it.

On Dec 9, 2004, at 10:03 PM, Matthias Felleisen wrote:

>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Okay, I am not interested in random statements like "I like my Emacs 
> better." So do I. I know that DrScheme isn't Emacs. Something like "I 
> miss tagging" or "I miss a cvs mode" or "I miss a spell checker" is 
> useful.
> -- Matthias
> On Dec 9, 2004, at 9:53 PM, Felix Klock's PLT scheme proxy wrote:
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>> On Dec 9, 2004, at 9:36 PM, Daniel Hagerty wrote:
>>>     Try C-u M-x run-scheme and feed it "mred -z" as your scheme
>>> intepreter.  This should *probably* fit within the standard inferior
>>> scheme mode for emacs, but I haven't tried beating on it very hard.
>> I've tried the mred sequence suggested above.  When using mred for 
>> GUI development, I've found that it doesn't really work, due to how 
>> eventspaces interact by default with the terminal repl.
>> I instead recommend using [[ the name of a file holding ]] the 
>> following shell script as the argument to RUN-SCHEME
>> #!/bin/sh
>> ~/bin/PLT/bin/mred -e "(current-eventspace (make-eventspace))" -z $@
>> -Felix, who is keeping himself from commenting on the virtues of 
>> DrScheme versus those of Emacs.
>> ----
>> "The 6 quarts of cream of mushroom soup inside my
>>  wetsuit are still deliciously warm"
>>  -www.redmeat.com

Posted on the users mailing list.