[plt-scheme] handling user-breaks in MrEd app...

From: Jefferson Provost (jp at cs.utexas.edu)
Date: Thu Oct 31 20:05:02 EST 2002

Robert Bruce Findler wrote:
> At Wed, 30 Oct 2002 23:54:21 -0600, Jefferson Provost wrote:
>>- I don't want to have to press "check syntax" to get syntax coloring. 
>>I want it "always on".
 >
> and "mostly" right isn't a problem, I guess? 

Right.  After using so many different environments and languages with 
different syntax-coloring systems and other enhancements (CodeWarrior, 
VC++, Emacs C/C++/Lisp/Scheme, etc)  I've discovered that there are 
really only a few things that I really need to have colored: comments, 
string constants, and procedure definitions (i.e. the procedure name in 
the definition, or some visual indication of a new procedure 
definition).  Beyond that is gravy.

You know, I was just playing with Dr Scheme and I noticed that syntax 
coloring does stay while you edit, it just goes away when you hit 
"Execute".  If it didn't do that, it would be much better.  I've never 
understood why hitting execute leaves you with less syntax information 
than "check syntax" does.


The key-repeat backspace slowness is much worse when syntax coloring is 
on, though.


> Once you get used to the so-called "transparent" repl, it can be quite
> handy. As you develop, you are manually deciding which parts of your
> program need to be re-loaded each time you make a change and this is
> surprisingly tricky in Scheme. Instead, DrScheme makes sure that you
> never have these "ghosts of programs past" lying around to confuse your
> debugging.

Well, I'm a big boy and I know the risks. Gimme the gun and let me worry 
about whether I shoot myself in the foot. ;-)

Seriously though, I think the transparent repl is great for 
teaching/learning to program, and it's fine if what you're doing is 
developing a single program, which is going to run, do a bunch of stuff, 
and exit.  But doing research is often different -- the program itself 
usually isn't the end-product of my research.

I use Lisp or Scheme they way an engineer or physicist would use MatLab: 
as an environment for discovery.  I have a bunch of programs/procedures, 
and a bunch of data that I'm operating on, as well as other state (like 
the internal state of a robot, connected over the net via CORBA 
interfaces), and I need to be able to modify my procedures without 
having to reload the entire state of my environment.  Could you imagine 
having to reload your entire MatLab state, including all your data, 
every time you change a function?

Sure, with closures and other scheme stuff sometimes you'll need to just 
  punt and reload everything, but I don't want to do that if I don't 
have to.  If part of my state is a big network that took 2 hours to 
learn from data, I don't want to have to regenerate it (or even reload 
it from disk) just because I changed a format string somewhere.

> 
> Also, the meta-p history of expressions submitted to the REPL is still
> there, even tho it isn't visible.

Really?  How do I use it?

J.



Posted on the users mailing list.