Also, by their very nature, dynamic languages offer less information at development time about things such as types and function signatures, so very often IDEs can't even tell you the type associated with a name by hovering over it.
Also, by their very nature, dynamic languages offer less information at development time about things such as types and function signatures, so very often IDEs can't even tell you the type associated with a name by hovering over it.
It goes against the principle of "crash-only recovery" to try to recover from a bad state instead of being able to start over from the beginning.
Fair enough. I did say "some of the best debuggers I've used". I've never used Common Lisp. I have no idea what the debugging experience is like on it.
Incidentally, I don't find edit & continue to be a terribly useful feature.
>I'm not even sure they've caught up on class redefinition and instance upgrade at runtime yet, which has been supported in CL since the 1980s.
That has nothing to do with the tooling, though. C++ just doesn't support those features. You also say "caught up" as if committee members had been trying to add those features to C++ but just hadn't been able to. It's much more likely that there hasn't been enough (or any) interest to add them.
In principle I don't see how language definition not supporting this would make this entirely impossible. It's just not possible to ask for such a running program transition to be requested from within the language, but with some modest restrictions on program behavior this might be possible to request from within the IDE. The restrictions I imagine to be similar to the restrictions that would enable C++ code to be subject to code-agnostic tracing GC, such as no user-defined XOR-linked lists.
Visual Age for C++ v4, a Smalltalk like experience.
Live++ used by Unreal.
Edit-and-Continue has been replaced by hot reload on VS.