MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: UNDO and Mathematica - how useless is it?

  • To: mathgroup at
  • Subject: [mg97936] Re: UNDO and Mathematica - how useless is it?
  • From: AES <siegman at>
  • Date: Thu, 26 Mar 2009 05:20:33 -0500 (EST)
  • Organization: Stanford University
  • References: <gqd1p2$nrt$>

In article <gqd1p2$nrt$1 at>, Bob F <deepyogurt at> 

> So, hey Wolfram -- please fix the UNDO. Make it work like every other
> program on the face of the planet, even the entire Solar System, even
> the known and unknown universe!!!!!!!!!! Even one level of UNDO would
> have saved me hours of working, let alone a multiple level UNDO like
> you see in so many other programs.

I suspect this is a near impossible task logically -- and the inability 
to have a real UNDO is another (but only one) of the many reasons why 
Conrad Wolfram's concept of "Mathematica: The All-In-One System"

   The Wolfram Video Gallery 
   <>  ==>

is IMHO a *fundamentally* bad idea.

In many (most?) conventional software applications, you have a 
*program*, which operates (using operations implemented under user 
control) on a separate *document* of some sort.  

If you do a sequence of those operations, and then decide you want to 
reverse some or all them (because you made a mistake, or just changed 
your mind), in almost any conventional app you can back up at least one 
step using UNDO; and in many applications you can back up a 
near-unlimited number of steps, all the way to when you opened the 
document -- and then step back forward on the same chain if you want to.

In Mathematica, however, the notebook is typically both the program 
*and* your document.  Some steps you take, or operations you invoke, 
edit the "program" part of the notebook; some may edit "data" parts of 
the notebook (or even "results" parts); some may *execute* one or more 
program parts of the document -- which may well operate on, and modify, 
in multiple stages, any and all of the "program", "data", and "results" 
parts of the notebook.

At this point, is there a single obvious choice as to what is meant by 
UNDO?  You might want, but could you get, a complete massive 
"UN-EXECUTE" of the massive (but now unwanted) execution you just 

And suppose you suddenly realize this only after several you've invoked 
several more operations, edits, commands, whatever?

I don't have anywhere near enough depth in logical analysis or computer 
programming to know whether or not a complete multistep or even 
single-step UN-EXECUTE is always possible in a system like Mathematica, 
other than with some kind of brute force saving of the complete state of 
the system.  

Even if this is possible, having enough memory to do this for multiple 
steps back seems impossible -- not to mention taking into account 
various *outside* events (like computer clock time) that might 
influencing the evaluation, un-evaluation, and re-evaluation.

So, I continue to suspect that having any kind of user-comprehensible, 
multi-stage UNDO in Mathematica is a near impossible task, if not 
logically then realistically -- and this rather minor but non-trivial 
problem joins many other important more concerns (like unacceptable 
complexity of the user interface and syntax, and of the user 
documentation, not to mention suppression of software innovation) as 
reasons why the all-in-one model of Mathematica, while it may have a 
role in providing a massive all-in-one programming system for highly 
trained professional programmers, who are hired to write applications 
for others, is pretty likely to destroy Mathematica as a usable system 
for "ordinary" non-computer-expert users, who just want to use it to 
solve much smaller problems in their own field.

  • Prev by Date: Re: UNDO and Mathematica - how useless is it?
  • Next by Date: Re: coefficients but not from polynomial (variables does not work)
  • Previous by thread: Re: UNDO and Mathematica - how useless is it?
  • Next by thread: Bug in D (or Derivative) ( Was: Re: DSolve bug)