[racket-dev] Experimenting with IDE

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Oct 2 22:08:11 EDT 2012

We have been discussing 'optimistic run' for at least a year. The idea has been around since the late 80's back then called 'optimistic make' (the OS ran Makefiles when triggering events occurred so that when you typed 'make', there was nothing to do). About 10 years ago, we discussed a related idea, turning DrS into an IDE for scripts with simulated effects, including file effects. 

As you note, it is difficult to do so for side-effecting programs. 

Sadly, even *SL < ASL have effects, via teachpacks and exns. It is not clear how to deal with them. 

We will keep thinking -- Matthias

On Oct 2, 2012, at 11:51 AM, Stephen Bloch wrote:

> An off-list discussion spurred by my previous post about IDE's for education led to the following blue-sky idea:
> Suppose there were another pane or window in DrRacket that showed essentially what we see in Interactions immediately after we click "Run" -- the values of all the top-level expressions in the Definitions pane -- but was "live", in the sense that every time you made an edit in the Definitions pane, it re-evaluated that expression and all other expressions that depended on it.  (If you make an edit that makes the Definitions pane no longer syntactically legal, it re-evaluates top-level expressions as far as it can, then gives up.)  This new pane would NOT be a full-fledged editing pane -- you shouldn't be able to type into it, delete anything from it, etc. but you should be able to copy and paste from it.
> This live-update window would only make sense for pure-functional programming -- I don't want things with side effects being re-evaluated every couple of keystrokes! -- but it could be a useful addition to BSL and ISL.  (Which raises another implementation question: how does a plug-in check that it's being used from BSL or ISL?  Or, alternatively, how does it check that there are no stateful constructs in the Definitions pane?)
> I think a naive version of this wouldn't be difficult to implement, if I knew where to get at the hooks for editing in the Definitions pane.  And if I knew anything about writing DrRacket plug-ins :-)
> Then we'd have to play with it and see whether it's actually pedagogically useful.
> Stephen Bloch
> sbloch at adelphi.edu
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev

Posted on the dev mailing list.