[plt-scheme] handling user-breaks in MrEd app...
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.