Perhaps this has been done, but I have been thinking about my ideal IDE for Python.
I like editors and have tried many. I also like interactive interpreters and have tried many. But my issue is that I often have to have both running at the same time (and yes, I know there are editors with interpreters running in them at the same time, but that's not what I'm thinking of).
But what about a dynamic editor/interpreter?
It sounds fanciful and I'm just beginning to think of the architecture but here is how it would work with Python.
You type some code in. It works interactively, so only executes when a block is entered. Or it may not. Each code block has a flag next to it that when activated causes the code to be marked as executable. When executed, only that code is run.
Ok, still fairly basic.
But what about if the user could also interactively run code separately from the stored blocks. So if I type in a large program, I can still type 'print "hi"' in the middle, click it, and it and only it will run.
But even better: what about if I can execute the code block by block or even line by line?
Again, this is not totally revolutionary. But what if you could change existing code and cause the program (assuming that it's still running and waiting for the user to enter the next code) to step back to a previous state? And then run up to the end with the new code?
And then when saving, the user can save a working version (with the interactive bits in place) and a "parade" version with all the interactive bits taken out.
I'm not sure this has been done (though if anything can, it's probably Eclipse or Emacs). I have probably described this idea poorly, but I think it could be a good thing that unifies the best of editor/IDE operation with the best of interpreters operation.
I'll have to work on a prototype and test it myself to see if it works.